Cветодиодная лента для Ардуино

28-05-2020, 16:29 0 комментариев
Адресная светодиодная лента на Arduino – отличное решение для создания SMART освещения в любом помещении либо создания цветомузыки ∕ эффекта декоративной подсветки. LED-ленты давно перестали быть роскошью в интерьерах, на сегодняшний момент этот сегмент рынка технологий активно развивается. И это совсем не удивительно, ведь такие модули экономны в потреблении энергии, безопасны, при этом достаточно надежны (не пожароопасные, тк. не нагреваются), да и стоят просто копейки.

Наш гайд мы решили посвятить подробному описанию базовых параметров этих устройств, их подключению, сборке и управлению. Все это можно легко проделать в домашних условиях своими руками, без привлечения специалистов.

Светодиодные ленты классифицируются на:
  • SPI RGB (стоят РГБ светодиоды);
  • адресная светодиодная лента (в народе "умная" с установленными адресными диодами и внутренним контроллером).
Мы рассмотрим именно второй вариант – он более интересен и универсален. Кроме того, такие устройства требуют меньшего количества аппаратных компонентов. В продолжение темы хотим напомнить нашим читателям, как выглядят LED-ленты. Они представляют собой неширокую ленту, на которой расположены диоды и резисторы, а также два провода.
Существует огромное количество адресных лент (они более-менее идентичны функционально), мы же рассмотрим одну из самых популярных модификаций - WS2812B. Обратите внимание на ее технические характеристики:
  • рабочее напряжение питания: 5 или 12В;
  • пиксельная адресация;
  • количество светодиодов: 60 шт./м;
  • потребление тока: 3,6 А/метр;
  • угол свечения: 120°;
  • срок службы:   30 тыс. часов;
  • диапазон рабочих температур: -40° … 60°C
  • размеры: 1000 х 10 х 2 мм.
Ну а теперь вашему вниманию предлагаем простую схему, в которой узнаем, как подключить ленту к Ардуино:
Аппаратные компоненты, которые мы использовали:
  1. плата расширения Ардуино Уно;
  2. модуль WS2812B;
  3. комплект соединительных проводов (шлейф «папа-папа»).
Пару моментов, которые следует учитывать при подключении. Первый - лента принимает команды в контакт DI, а контакт DO используют в основном для подключения соединения матриц. Второй - обязательно используем токоограничиваюший резистор (номинал 200-500 ом).
Подробнее остановимся на памятке о питании устройства. Тут чаще всего используют: павербанки на 5В, обычные батарейки (АА, 3 ед.), никелевые или литиевые аккумуляторы.

Важно! Для 5 и 12-вольтовых лент следует использовать блоки питания. Если источник ниже 5V, возможны перепады яркости свечения.

Вернемся к схеме. Для реализации выше обозначенного проекта понадобятся библиотеки. Тут выбор также есть: FastLED (поддержка всех Ардуино-платформ) или Adafruit NeoPixel (меньшее потребление памяти и др.ресурсов).

Напишем скетч с применением 1-ого софта:
#include "FastLED.h"
 
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 30
 
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 6
 
// Создаем переменную strip для управления нашей лентой.
CRGB strip[LED_COUNT];
 
void setup()
{
  // Добавляем ленту
  FastLED.addLeds<WS2812B, LED_PIN, RGB>(strip, LED_COUNT);
}
 
void loop()
{
  // Включаем все светодиоды
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip[i] = CRGB::Red; // Красный цвет.
  }
  // Передаем цвета ленте.
  FastLED.show();
  // Ждем 500 мс.
  delay(500);
  // Выключаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip[i] = CRGB::Black; // Черный цвет, т.е. выключено.
  }
  // Передаем цвета ленте.
  FastLED.show();
  // Ждем 500 мс.
  delay(500);
}
Задействуем 2-ую, более специализированную библиотеку. Коды прошивки:
#include "Adafruit_NeoPixel.h"
 
// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 30
 
// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 6
 
// Создаем переменную strip для управления нашей лентой.
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
 
void setup()
{
  // Инициализируем ленту.
  strip.begin();
}
 
void loop()
{
  // Включаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip.setPixelColor(i, strip.Color(255, 0, 0)); // Красный цвет.
  }
  // Передаем цвета ленте.
  strip.show();
  // Ждем 500 мс.
  delay(500);
  // Выключаем все светодиоды.
  for (int i = 0; i < LED_COUNT; i++)
  {
    strip.setPixelColor(i, strip.Color(0, 0, 0)); // Черный цвет, т.е. выключено.
  }
  // Передаем цвета ленте.
  strip.show();
  // Ждем 500 мс.
  delay(500);
}

Цветомузыка на Ардуино

Цвето- и светомузыку можно разместить как в доме ∕ квартире ∕ офисе, так и в автомобиле. Порадуйте домочадцев приятным сюрпризом, а мы расскажем, как мечту воплотить в жизнь!
Сборка показана на рисунке:
В данном случае используем иную программу – библиотеку ColorMusic: https://github.com/AlexGyver/ColorMusic
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

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

Что делать в ситуации, когда плата Arduino Uno не появляется в диспетчере устройств на Windows и компьютер ее не видит? Эта проблема довольно распространенная,...

Прошить Arduino с помощью USBasp не сложно, но нужно понимать, для чего необходима данная процедура и как ее произвести в домашних условиях...

Подключаем сервопривод к Ардуино, скетчи, библиотеки и все что для этого нужно...

Сегодня мы поговорим о том, как подключить ESP32 к Ардуино. Данная инструкция больше подходит для Windows девайсов (хотя и для других операционных систем типа...

Оставить комментарий