Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Модуль адресных светодиодов (х4) ====== ===== Описание ===== Адресный светодиод - разновидность светодиода, в котором в одном корпусе, помимо самого светодиода, заключен контроллер управления. Наличие индивидуального контроллера позволяет управлять каждым светодиодом по отдельности, используя всего один вывод контроллера. Модуль выполнен на базе светодиодов WS2812 - они являются RGB-светодиодами и каждый из них способен излучать три разных цвета: красный, зеленый, синий. С помощью модуля адресных светодиодов вы сможете создать многоцветную индикацию в различных вариациях для определенных событий, используя всего лишь один модуль, а также объединять их друг с другом для получения гирлянды или подсветки устройств. Каждым светодиодом, а так же каждым цветом отдельного светодиода можно управлять раздельно или смешивать их вместе, получая различные дополнительные цвета. А регулируя интенсивность цветов, можно получить практически любой оттенок цвета. Конструкция модулей позволяет использовать их не только как отдельные модули но и объединять их в длинные цепочки стандартным трехпроводным шлейфом "мама-мама" (1 шлейф входит в комплект 1 модуля), при этом для управления всей цепочкой модулей по-прежнему будет использоваться только один вывод контроллера. ==== Технические характеристики ==== * Рабочее напряжение: 3-5 В * Максимальный потребляемый ток одного светодиода: 20 мА * Максимальный потребляемый ток модуля: 80 мА * Видимый телесный угол: 120° ==== Физические размеры ==== * Модуль Д х Ш х В: 30 х 20 х 7 мм ==== Ресурсы для загрузки ==== * [[https://files.smartelements.ru/know_libs/Adafruit_NeoPixel.zip|Библиотека для работы с модулем]] ===== Примеры подключения и использования модуля ===== ==== Пример 1. Поочередное включение светодиодов на модуле ==== === Шаг 1. Соберите необходимые компоненты === ^ Что нужно ^ Количество ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-adresnyh-svetodiodov-h4|Модуль адресных светодиодов (х4)]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф "мама-мама" х3]] | 1 | === Шаг 2. Соедините компоненты === Соедините компоненты как показано на схеме ниже: {{ :главная:модули:адресный_св-д_х4.png?nolink |}} === Шаг 3. Загрузите на контроллер скетч === Загрузите скетч на контроллер: <file Arduino> #include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами #define PIN 8 //вывод, к которому подключен модуль #define NUMPIXELS 4 //количество светодиодов //объявление переменной pixels типа Adafruit_NeoPixel для //работы с модулем и светодиодами Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); #define DELAYVAL 500 //время для задержки между включениями светодиодов void setup() { pixels.begin(); //инициализация светодиодов } void loop() { pixels.clear(); //выключение всех цветов светодиодов pixels.show(); //отобразить "пустое" состояние светодиодов - они выключены delay(DELAYVAL); //пауза перед основным циклом //нумерация светодиодов начинается с 0 for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(0, 150, 0)); //установка цвета свечения для очередного светодиода pixels.show(); //показать цвет светодиода delay(DELAYVAL); //задержка перед очередным шагом цикла } } </file> === Шаг 4. Результат === После загрузки скетча вы увидите как на модуле поочередно загораются и гаснут светодиоды. ==== Пример 2. Случайный цвет ==== В этом примере мы добавим ещё один модуль, итого получим 8 светодиодов. Они, как и в прошлом примере, будут загораться поочерёдно. Только теперь цвет свечения будет случайным. === Шаг 1. Соберите необходимые компоненты === ^ Что нужно ^ Количество ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-adresnyh-svetodiodov-h4|Модуль адресных светодиодов (х4)]] | 2 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф "мама-мама" х3]] | 2 | === Шаг 2. Соедините компоненты === Соедините компоненты как показано на схеме ниже: {{ :главная:модули:адресный_св-д_х8.png?nolink |}} === Шаг 3. Загрузите на контроллер скетч === Загрузите скетч на контроллер: <file Arduino> #include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами #define PIN 8 //вывод, к которому подключен модуль #define NUMPIXELS 8 //количество светодиодов //объявление переменной pixels типа Adafruit_NeoPixel для //работы с модулем и светодиодами Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); #define DELAYVAL 500 //время для задержки между включениями светодиодов void setup() { pixels.begin(); //инициализация светодиодов } void loop() { pixels.clear(); //выключение всех цветов светодиодов pixels.show(); //отобразить "пустое" состояние светодиодов - они выключены delay(DELAYVAL); //пауза перед основным циклом //нумерация светодиодов начинается с 0 for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(random(256), random(256), random(256))); //установка цвета свечения для очередного светодиода pixels.show(); //показать цвет светодиода delay(DELAYVAL); //задержка перед очередным шагом цикла } } </file> === Шаг 4. Результат === После загрузки скетча вы увидите как светодиоды на модулях зажигаются поочерёдно со случайным цветом. ==== Пример 3. Светодиодная гирлянда ==== В этом примере мы подключим 4 модуля к контроллеру и сформируем гирлянду. Выберем самые яркие и распознаваемые цвета и поочередно будем зажигать светодиоды. В цикле будем зажигать светодиоды. Последний светодиод остаётся гореть, а цикл начинается сначала и так снова до последнего, который погашен. После того как все светодиоды будут зажжены, гирлянда гаснет и алгоритм начинает работать с самого начала. === Шаг 1. Соберите необходимые компоненты === ^ Что нужно ^ Количество ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-adresnyh-svetodiodov-h4|Модуль адресных светодиодов (х4)]] | 4 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф "мама-мама" х3]] | 4 | === Шаг 2. Соедините компоненты === Соедините компоненты как показано на схеме ниже: {{ :главная:модули:адресный_св-д_х16.png?nolink |}} === Шаг 3. Загрузите на контроллер скетч === Загрузите скетч на контроллер: <file Arduino> #include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами #define PIN 8 //вывод, к которому подключен модуль #define NUMPIXELS 16 //количество светодиодов //цвета R G B long int colors[] = { 0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF }; long int empty_color = 0x000000; //не горит //объявление переменной pixels типа Adafruit_NeoPixel для //работы с модулем и светодиодами Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); #define DELAYVAL 150 //время для задержки медлу включениями светодиодов //установить цвет светодиода void setColor(int& pixel, long int& color) { int r = ((color >> 16) & 0xFF); // Получить значение красного цвета int g = ((color >> 8) & 0xFF); // Значение зелёного цвета int b = ((color) & 0xFF); // Значение синего цвета pixels.setPixelColor(pixel, pixels.Color(r, g, b)); //установка цвета свечения для светодиода pixels.show(); //показать цвет светодиода delay(DELAYVAL); //задержка перед очередным шагом цикла } void setup() { pixels.begin(); //инициализация светодиодов } void loop() { pixels.clear(); //выключение всех цветов светодиодов pixels.show(); //отобразить "пустое" состояние светодиодов - они выключены delay(DELAYVAL); //пауза перед основным циклом //нумерация светодиодов начинается с 0 for (int last_pixel = NUMPIXELS - 1; last_pixel >= 0; last_pixel--) { for (int i = 0; i <= last_pixel; i++) { //вычисление цвета int k = i / 6; int color_index = i - (6 * k); setColor(i, colors[color_index]); //зажечь светодиод if (i < last_pixel) { //если он не последний на данный момент setColor(i, empty_color); //то его нужно погасить } } } } </file> === Шаг 4. Результат === После загрузки скетча вы увидите как на модуле поочередно загораются и гаснут светодиоды, последний на каждый момент остаётся зажжённым. После включения всех светодиодов, они гаснут и цикл начинается заново.