0
КОРЗИНА
0 ТОВАРА
 NeoPixel кольцо, 60 светодиодов для Arduino ардуино
 NeoPixel кольцо, 60 светодиодов для Arduino ардуино
NeoPixel кольцо, 60 светодиодов

NeoPixel кольцо, 60 светодиодов

Подробнее...
Модификация
В наличии: 10 шт. Артикул: # 1388
1161 ₽
Возможен безналичный расчёт для юридических лиц при оформлении заказа
Сообщить о поставке на e-mail:
{{ status }}
  • В наличии и готов к отправке!
  • Доставка товаров по России, Белоруссии, Казахстану
  • Возможен безналичный расчёт для юридических лиц при оформлении заказа
Количество:
Перейти в корзину и оформить заказ.
Telegram
WhatsApp
Обсудить вопросы приобретения, не технические!
*Доступно общение только текстовыми сообщениями, звонки и аудио сообщения не обслуживаются
Онлайн
Описание товара
Подробное описание товара

Общие сведения

NeoPixel кольцо — это четыре модуля с 15-ю адресными RGB светодиодами в каждом, их «адресность» позволяет управлять цветом каждого светодиода на одной линии. Модули можно соединять друг с другом, используя только 1 вывод Arduino.

Характеристики

  • Входное напряжение питания модуля: 5 В
  • Количество светодиодов в модуле: 15
  • Ток, потребляемый модулем: <675 мА
  • Ток, потребляемый каждым светодиодом: < 45 мА (по 15 мА на полную яркость свечения каждого цвета светодиода)
  • Уровень логической «1» на входе IN: > 0,7 Vcc
  • Уровень логического «0» на входе IN: < 0,3 Vcc
  • Длина световой волны: 620 ... 630 нм (для красного цвета)
  • Длина световой волны: 515 ... 530 нм (для зелёного цвета)
  • Длина световой волны: 465 ... 470 нм (для синего цвета)
  • Рабочая температура: -25 ... 80 °C
  • Температура хранения: -55 ... 150 °C
  • Габариты: 111x27.5x3.3 мм
  • Внутренний диаметр: 145мм

Подключение

Модули NeoPixel подключаются входом (DIN) к любому выводу Arduino. При подключении нескольких модулей их можно соединить друг с другом (выход OUT каждого модуля со входом IN следующего), а вход IN первого модуля к любому выводу Arduino. Обратите внимание, что при соединении кольцом, последний OUT и первый IN не соединяются! (см. схему подключения ниже). Нумерация (адрес) светодиодов является сквозной и начинается от ближайшего к выводу Arduino.

Инструкция по установке.

Для работы с адресными светодиодами предлагаем воспользоваться библиотекой iarduino_NeoPixel.

Инструкция по установке библиотеки.

Питание:

Входное напряжение 5 В постоянного тока, подаётся на выводы Vcc и GND модуля. Источник питания должен быть рассчитан на 3 А и более, поскольку максимальное потребление модулей (в случае соединения кольцом) составляет 2,7 А.

Подробнее о модуле:

Адресные светодиоды WS2812B это три светодиода RGB (Red - красный, Green - зелёный и Blue - синий) и драйвер (микросхема) для управления этими светодиодами, в одном SMD (Surface Mounted Device - прибор монтируемый поверхностно) корпусе.

Корпус каждого светодиода имеет 4 вывода: два вывода данных (IN - вход и OUT - выход) и два вывода питания (Vcc и GND). В модулях NeoPixel выходы (OUT) предыдущих светодиодов соединены со входами (IN) следующих, создавая цепочку светодиодов. Каждый модуль кольца NeoPixel имеет 6 выводов: два вывода данных (IN, OUT) и четыре вывода питания (Vcc, GND) - по два с каждой стороны. Также модули можно соединять в цепочку (например, в кольцо).  Обратите внимание, что в таком случае крайние IN и OUT кольца не соединяются (см. рисунок с подключением). К одному выводу Arduino можно подключить «неограниченное» количество модулей NeoPixel.

Цвет каждого адресного светодиода задаётся 3 байтами (каждый байт указывает яркость одного цвета: 1-G, 2-R, 3-B). После того как первый адресный светодиод получил на вход (IN) первые 3 байта, он сохраняет их в своей ОЗУ, а остальные байты пропускает со входа (IN) на выход (OUT). Второй адресный светодиод сохранит в своей ОЗУ следующие 3 байта а остальные пропустит и т.д. Если в линию данных перестали поступать биты (на линии установлен уровень логического «0» дольше 50 мкс), светодиоды установят свои цвета. Каждый бит данных имеет длительность 1,25 мкс и состоит из импульса и паузы. Бит «0» отличается от бита «1» длительностью импульса: • бит «0» - импульс 350 нс, пауза 900 нс; • бит «1» - импульс 900 нс, пауза 350 нс.

Для работы с модулем предлагаем воспользоваться библиотекой iarduino_NeoPixel, которая позволяет работать с модулями NeoPixel если суммарное количество адресных светодиодов WS2812B не превышает 65534 шт.

Подробнее про установку библиотеки читайте в нашей инструкции.

Примеры:

Во всех следующих примерах модули спаяны в кольцо и подключены к 5 выводу Arduino (см. схему подключения выше). При подключении платы контроллера к компьютеру для загрузки скетча, необходимо отключать NeoPixel кольцо от платы (достаточно отключить один из проводов питания), для того, чтобы модуль не начал работать от USB порта (кольцо потребляет до 2,7 А; USB порт не рассчитан на такой ток). 

Заливка кольца разными цветами:

#include <iarduino_NeoPixel.h>                       // подключаем библиотеку iarduino_NeoPixel для работы со светодиодами NeoPixel
iarduino_NeoPixel led(5,60);                         // указываем, что к 5 выводу подключено 60 светодиодов

uint8_t r=0; uint8_t g=1; uint8_t b=2; uint8_t w=3;  // Вводим переменные - порядковые номера светодиодов

void setup(){
    led.begin();                                     //  Инициируем работу с модулем NeoPixel
}

void loop(){
  for (uint8_t i=0; i<12; i++){       //  Повторяем 12 раз до зажжения всех светодиодов в конце
    led.setColor(r, 255,0,0);         //  Устанавливаем красный цвет для светодиода с номером r (r,R,G,B)
    led.write();                      //  Записываем
    delay(50);                        //  Ждём

    led.setColor(g, 0,255,0);         //  Устанавливаем красный цвет для светодиода с номером g (g,R,G,B)
    led.write();                      //  Записываем
    delay(50);                        //  Ждём
    
    led.setColor(b, 0,0,255);         //  Устанавливаем красный цвет для светодиода с номером b (b,R,G,B)
    led.write();                      //  Записываем
    delay(50);                        //  Ждём
    
    led.setColor(w, 255,255,255);     //  Устанавливаем красный цвет для светодиода с номером w (w,R,G,B)
    led.write();                      //  Записываем
    delay(50);                        //  Ждём
    
    r+=4; g+=4; b+=4; w+=4;           //  Увеличиваем значения, чтобы зажечь следующие светодиоды
  }
}

Заливка кольца разными цветами радуги:

#include <iarduino_NeoPixel.h>                       // подключаем библиотеку iarduino_NeoPixel для работы со светодиодами NeoPixel
iarduino_NeoPixel led(5,60);                         // указываем, что к 5 выводу подключено 60 светодиодов

uint8_t j;                                           //  Объявляем переменную для хранения значения сдвига спектра цветов для всех светодиодов (от 0 до 255)
uint8_t k;                                           //  Объявляем переменную для хранения положения сдвига спектра цвета для каждого светодиода на спектре j (зависит от количества светодиодов)
uint8_t r, g, b;                                     //  Объявляем переменную для хранения цветов RGB для каждого светодиода
const uint8_t z=5;                                   //  Определяем константу указывающую задержку в мс (чем выше значение, тем медленнее перелив цветов) 

void setup(){
    led.begin();                                     //  Инициируем работу с модулем NeoPixel
}

void loop(){
j++;                                                 //  Смещаем спектр цветов для всех светодиодов
  for(uint16_t i=0; i<60; i++){                      //  Проходим по всем светодиодам
      k=((uint16_t)(i*256/60)+j);                    //  Определяем положение очередного светодиода на смещённом спектре цветов
      if(k<85) {        b=0; r=k*3; g=255-r;}else    //  Перелив от зелёного к красному, через жёлтый
      if(k<170){k-=85;  g=0; b=k*3; r=255-b;}else    //  Перелив от красного к синему  , через фиолетовый
               {k-=170; r=0; g=k*3; b=255-g;}        //  Перелив от синего   к зелёному, через голубой
      led.setColor(i, r,g,b);                        //  Устанавливаем выбранный цвет для очередного светодиода
  }   led.write();                                   //  Записываем цвета всех светодиодов
  delay(z);                                          //  Устанавливаем задержку
}

Данный пример может работать как с большим, так и с меньшим количеством светодиодов, тогда Вам нужно указать их количество во второй строке скетча. Скорость перелива зависит от значения константы z, чем больше её значение, тем медленнее перелив.

Простой таймер:

В данном примере к 3 выводу контроллера подключена кнопка. Вторым выводом она подключена к GND.

#include <iarduino_NeoPixel.h>                                                         // подключаем библиотеку iarduino_NeoPixel для работы со светодиодами NeoPixel
iarduino_NeoPixel led(5,60);                                                           // указываем, что к 5 выводу подключено 60 светодиодов
#define buttonNextPin 3                                                                // пин кнопки "Далее"

bool btnNextFlag = false;                                                              // флаг нажатия кнопки
uint32_t btnNextTimer = 0;                                                             // таймер нажатия кнопки 
bool clickFlag = false;                                                                // флаг нажатия кнопки
uint8_t steps=0;                                                                       // шаг заливки таймера
uint8_t ledCount = 60;                                                                 // число светодиодов в круге
uint8_t colorRed, colorGreen;                                                          // цвета для заливки круга
uint32_t stepTime = 1000;                                                              // время задержки (мс) меду шагами. Меняя это значение, можно настраивать время работы таймера

void setup(){
    Serial.begin(9600);                                                                // инициируем передачу данных в монитор последовательного порта
    if(led.begin()) {Serial.println("Ok");}                                            // инициируем работу со светодиодами и выводим сообщение об успешной инициализации
    else            {Serial.println("Err");}                                           // если инициализация невозможна (не хватает памяти для хранения цветов всех светодиодов), то выводим сообщение об ошибке
    pinMode(buttonNextPin, INPUT_PULLUP);                                              // пин, к которому подключена кнопка - вход, подтиягивающий резистор полюкчен програмно 
}

void loop(){                                                                           
  randomSeed(analogRead(A0));                                                          // новая опорная точка для генератора случайных чисел (на "висящем в воздухе" выводе А0 присутствует случайный сигнал)
  bool buttonNextState = !digitalRead(buttonNextPin);                                  // состояние кнопки - сигнал с пина кнопки (инвертируем для удобства)
  if (buttonNextState && !btnNextFlag && millis() - btnNextTimer > 100) {              // если кнорка нажата И до этого нажата не была И она нажата уже 100мс (задержка от дребезга контактов)
    btnNextTimer = millis();                                                           // сбрасываем таймер
    Serial.println("press");                                                           // выводим инфомацию о том что кнопка нажата     
    btnNextFlag = true;                                                                // флаг нажатия кнопки - true
    clickFlag=true;                                                                    // флаг нажатия кнопки - true
  }
  if (!buttonNextState && btnNextFlag) {                                               // если кнопку отпустили
    btnNextFlag = false;                                                               // флаг нажатия кнопки false - теперь она отпущена
    btnNextTimer = millis();                                                           // сбрасываем таймер
  }
  if (clickFlag){                                                                      //если был клик кнопки
    colorRed = round(map(steps, 0, 60, 0, 200));                                       //перевод числа шагов steps в диапазон цвета 0...200
    colorGreen = round(map(steps, 0, 60, 100, 0));                                     //перевод числа шагов steps в диапазон цвета 0...100
    for (uint16_t i=0; i<=steps; i++){                                                 // зажигаем белым светодиоды от начала до текущего шага
      led.setColor(i, 255,255,255);                                                   
    }
    for (uint16_t i=steps+1; i<=ledCount; i++){                                        // зажигаем цвемтом оставщиеся светодиоды. Цвет меняется по мере приближения таймера к концу
      led.setColor(i, colorRed,colorGreen,0);              
    }
    led.write();                                                                       // записываем
    delay (stepTime);                                                                  // задержка (следующего шага)
    steps++;                                                                           // увеличиваем текущиё шаг на 1
    if (steps >= ledCount){                                                            // если дошли до конца
      for (uint8_t i=0; i<3; i++){                                                     // повторяем три раза:
        led.setColor(NeoPixelAll, 0,0,0);                                              // гасим все светодиоды
        led.write();                                                                   // записываем
        delay (500);                                                                   // ждём 500мс
        led.setColor(NeoPixelAll, 255,0,0);                                            // зажигаем все светодиоды
        led.write();                                                                   // записываем
        delay (500);                                                                   // ждём 500мс
      }
      delay (500);                                                                     // задержка 500мс
      led.setColor(NeoPixelAll, 0,0,0);                                                // гасим все светодиоды
      led.write();                                                                     // записываем
      steps = 0;
      clickFlag=false;                                                                 //меняем флаг
    }
  }
} 

Описание основных функций библиотеки:

Подключение библиотеки:

#include <iarduino_NeoPixel.h>                              //  Подключаем библиотеку iarduino_NeoPixel для работы с модулями NeoPixel
iarduino_NeoPixel led( №_ВЫВОДА , КОЛИЧЕСТВО_СВЕТОДИОДОВ ); //  Объявляем объект led для работы с модулями подключёнными к указанному выводу

Функция begin();

  • Назначение: Инициализация работы с модулями NeoPixel.
  • Синтаксис: begin();
  • Параметры: Нет.
  • Возвращаемые значения: bool, 1 (успешная инициализация) или 0 (отказ инициализации, не хватает памяти).
  • Примечание: Вызывается 1 раз в коде setup.
  • Пример:
if(led.begin()) {Serial.println("Ok" );} //  Инициируем работу с модулями NeoPixel и выводим сообщение об успешной инициализации
else            {Serial.println("Err");} //  Не хватает памяти для хранения цветов всех светодиодов, выводим сообщение об ошибке

Функция setColor();

  • Назначение: Указание цвета для адресного светодиода.
  • Синтаксис: setColor( №_СВЕТОДИОДА , ЦВЕТ [ , ЯРКОСТЬ ] );
  • Параметры:
    • №_СВЕТОДИОДА - число от 0 до 65534, или NeoPixelAll если требуется установить цвет сразу всем светодиодам.
    • ЦВЕТ - можно указать одним числом (как в графических редакторах), например: 0xFF00FF - фиолетовый. А можно указать тремя параметрами (числами) через запятую, R, G, B, например: 0xFF, 0xFF, 0x00 - жёлтый.
    • ЯРКОСТЬ - необязательный параметр от 0 до 255. Если указать 127 - то указанный цвет не претерпит изменений. Чем ближе число к 0, тем темнее будет указанный цвет, а чем ближе число к 255, тем светлее будет указанный цвет (вплоть до белого).
  • Возвращаемые значения: Нет.
  • Примечание: Функция устанавливает цвет в массиве цветов, но их запись в модули осуществляется функцией write().
  • Пример:
led.setColor(0, 0xFF00FF);              // Установить фиолетовый цвет для 0 светодиода
led.setColor(1, 0xFF, 0x00, 0xFF);      // Установить фиолетовый цвет для 1 светодиода
led.setColor(2, 0xFF, 0x00, 0xFF, 200); // Установить фиолетовый цвет для 2 светодиода, но сделать его более светлым
led.setColor(NeoPixelAll, 0, 255, 0);   // Установить зелёный цвет для всех светодиодов

Функция write();

  • Назначение: Запись (применение) всех установленных цветов в модули NeoPixel.
  • Синтаксис: write();
  • Параметры: Нет.
  • Возвращаемые значения: Нет.
  • Примечание: Если для светодиода новый цвет не установлен, то он сохранит старый цвет.
  • Пример:
led.write(); // Запись всех установленных цветов в модули NeoPixel

Функция count();

  • Назначение: Получение количества используемых светодиодов.
  • Синтаксис: count();
  • Параметры: Нет.
  • Возвращаемые значения: Количество светодиодов, от 0 до 65534.
  • Примечание: Функция возвращает число светодиодов, которое было указано при объявлении объекта библиотеки. Эту функцию можно использовать для создания циклов. Если Вы пожелаете изменить количество светодиодов, то Вам будет достаточно сделать это в строке объявления объекта, а не править весь скетч.
  • Пример:
for(uint16_t i=0; i<led.count(); i++){ // Цикл для прохода по всем светодиодам
...
}

Необязательная функция getPointer();

  • Назначение: Получение указателя на массив цветов светодиодов.
  • Синтаксис: getPointer();
  • Параметры: Нет.
  • Возвращаемые значения: uint8_t*, Указатель на массив цветов светодиодов.
  • Примечание: Это необязательная функция которая возвращает указатель на массив цветов светодиодов. Используя этот массив Вы сами можете формировать цвета в обход функции setColor(). А так же можете считывать ранее установленные цвета.
    • байты 0, 1, 2 массива, это цвета 0 светодиода (G-зелёный, R-красный, B-синий).
    • байты 3, 4, 5 массива, это цвета 1 светодиода (G-зелёный, R-красный, B-синий) и т.д.
    • размер массива зависит от количества светодиодов указанных при объявлении объекта библиотеки.
  • Пример:
uint8_t *ptrLED = led.getPointer();          // Получаем указатель на массив цветов светодиодов
ptrLED[0]=255; ptrLED[1]=0;   ptrLED[2]=0;   // Устанавливаем зелёный цвет для 0 светодиода
ptrLED[3]=0;   ptrLED[4]=255; ptrLED[5]=0;   // Устанавливаем красный цвет для 1 светодиода
ptrLED[6]=0;   ptrLED[7]=0;   ptrLED[8]=255; // Устанавливаем синий   цвет для 2 светодиода
led.write();                                 // Записываем установленные цвета в модули.

Применение:

  • Декоративное освещение;
  • Создание игр;

Ссылки:

Товары
Первой необходимости и другие вещи, которые могут пригодиться!
В наличии
Trema Shield: Плата расширения для удобного подключения периферийных устройств Подробнее
460
660
В наличии
Силиконовый провод 20AWG (1 м / Жёлтый): Многожильный мягкий жёлтый провод сечением 0,5 мм² и длиной 1 м Подробнее
82
В наличии
Силиконовый провод 20AWG (1 м / Чёрный): Многожильный мягкий чёрный провод сечением 0,5 мм² и длиной 1 м Подробнее
82
В наличии
NeoPixel (Trema-модуль): Модуль с четырьмя адресными RGB светодиодами, их «адресность» позволяет управлять цветом каждого светодиода Подробнее
216
В наличии осталось 7 шт.
81
В наличии
USB паяльник, 5В: Подробнее
711
В наличии
Силиконовый провод 20AWG (1 м / Красный): Многожильный мягкий красный провод сечением 0,5 мм² и длиной 1 м Подробнее
82
Скоро в продаже
441
В наличии осталось 4 шт.
990
В наличии
684
В наличии
90
В наличии
Часы реального времени RTC DS1307Z (Trema-модуль): Электронный энергонезависимый хронометр на чипе DS1307Z Подробнее
280
В наличии
GY-GPS6mv2 GPS Модуль: Подробнее
1336
1412
В наличии
Double Shield: Тройник для Shield'ов, которые невозможно установить друг на друга или которые перекрывают доступ к выводам для другого Shield'а. Подробнее
351
590
Или перейти в корзину и оформить заказ.
Гарантии и возврат Используя сайт Вы соглашаетесь с условями
Есть вопрос?