Типы RGB-светодиодов
Существует три основных типа RGB-светодиодов.
RGB-светодиод с общим анодом: в этом типе анодная (+) клемма красного, зеленого и синего светодиодов соединена вместе и используется как общий контакт. Каждая катодная (-) клемма отдельных светодиодов подключена к отдельному контакту. Для свечения определенного цвета общий вывод подключается к положительному напряжению, а нужные катоды светодиода подключаются к земле (GND) через соответствующие резисторы.
RGB-светодиод с общим катодом. В этом типе катодная (-) клемма красного, зеленого и синего светодиодов соединена вместе и используется как общий вывод. Каждая анодная (+) клемма отдельных светодиодов подключена к отдельному контакту. Для свечения определенного цвета общий вывод подключается к земле (GND), а аноды нужных светодиодов подключаются к положительному напряжению через соответствующие резисторы.
Адресный светодиод RGB: также известный как индивидуально адресуемый или цифровой светодиод RGB. Этот тип включает в себя встроенные микросхемы (интегральные схемы) в каждом корпусе светодиодов. Эти микросхемы позволяют управлять каждым светодиодом независимо, что позволяет создавать сложные световые эффекты и узоры. Адресные светодиоды RGB обычно управляются через линию передачи данных, например протоколы WS2811, WS2812 или APA102.
Turn LED on and off with button – using debounce
One thing you might notice with the previous experiment: sometimes when you press and release the button, the LED’s state doesn’t change, or blinks quickly multiple times.
This is because the button is physically bouncing when you press it. Thus, many false positives will be interpreted by the Arduino. What you can do to prevent that is to add a debounce delay in your code. For example, you can decide that when the program detects a change in the button’s state, it will wait 50 milliseconds before considering another change viable.
Let’s add a few lines to our previous code.
The improved code
#define LED_PIN 8 #define BUTTON_PIN 7 byte lastButtonState = LOW; byte ledState = LOW; unsigned long debounceDuration = 50; // millis unsigned long lastTimeButtonStateChanged = 0; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT); } void loop() { if (millis() - lastTimeButtonStateChanged > debounceDuration) { byte buttonState = digitalRead(BUTTON_PIN); if (buttonState != lastButtonState) { lastTimeButtonStateChanged = millis(); lastButtonState = buttonState; if (buttonState == LOW) { ledState = (ledState == HIGH) ? LOW: HIGH; digitalWrite(LED_PIN, ledState); } } } }
Now, if you run this program, you won’t have any problem with the LED’s state being changed quite randomly when you press/release the button.
And here is how we achieve that.
Debounce explained
unsigned long debounceDuration = 50; // millis unsigned long lastTimeButtonStateChanged = 0;
We create 2 new global variables:
- One to decide how long we want to wait before validating a second change in the button’s state. Here it means that if the state changes, any changes after that in the next 50 milliseconds will be ignored. 50 millis is a good value, you can experiment with lower and upper values to check the behavior.
- Another one to keep the last time the state was changed, so we have a starting point to compare to.
void loop() { if (millis() - lastTimeButtonStateChanged > debounceDuration) {
Then, in the loop, we only start the button/LED functionality if enough time has passed since the last time the button’s state was changed.
To do that it’s quite simple: we compare the duration since the last update time to the required debounce duration.
if (buttonState != lastButtonState) { lastTimeButtonStateChanged = millis();
Once the debounce delay has been passed, then we can do what we did before. And don’t forget to update the starting point for the “debounce timer” just after you detect a change in the button’s state. So, the next time the program enters the loop, it will wait for 50 milliseconds (or the value you’ve chosen) to detect new changes in the button’s state.
Что такое RGB светодиодная лента
RGB (Red, Green, Blue – красный, зеленый, синий) – это светодиодная лента, способная при работе менять свой цвет. В каждом LED модуле находятся три светодиода – красный, синий и зеленый. Изменяя отдельно яркость свечения каждого кристалла, вы получаете любой цвет видимого спектра.
Что такое rgb светодиод
Внешне RGB led отличается от моноцветной только количеством выводов. Здесь их 4 – три из них для питания каждого отдельного кристалла и один общий плюс.
Существуют особые led ленты с пятью выводами. Маркируются они как LED RGB W (W – white). Пятый вывод отвечает за белый свет. Дело в том, что в трехцветном диоде белый цвет получается смешивая все три цвета в равных пропорциях. Такой «белый» отличается от чистого моно- света. Поэтому появился тип led с четвертым кристаллом белого цвета.
Эти ленты (как и моноцветные) имеют несколько классов пыле- влагозащиты:
- IP20 – без защиты, боится влаги и пыли;
- IP67-69 – не боится пыли, может быть использована во влажной среде (ванна, аквариум).
Ардуино и адресная светодиодная лента
Этот проект — простой способ начать работу, но идеи, которые он охватывает, могут быть расширены для действительно эффектного освещения. С помощью всего лишь нескольких компонентов вы можете создать свой собственный восход солнца. Если у вас есть стартовый комплект с Arduino, вы можете использовать любую кнопку или датчик для запуска светодиодов при входе в комнату, например:
Теперь, когда мы рассмотрели схему с обычной светодиодной лентой, перейдем к адресным светодиодным лентам SPI RGB лента.
Ремонт системы освещения светодиодной RGB лентой
Светодиодная лента Ардуино — Яркие идеи.
Эти ленты требуют меньшего количества компонентов для запуска, и есть некоторая свобода в отношении именно того, какие значения компонентов вы можете использовать. Конденсатор в этой цепи гарантирует, что светодиоды 5v получают постоянный источник питания. Резистор становится гарантом того, что сигнал данных, полученный от Arduino, не загружен всяческими помехами.
Вам понадобится:
● Светодиодная лента 5v WS2811/12/12B; Все три модели имеют встроенные микросхемы и работают одинаково.
● 1 x Arduino Uno или аналогичная совместимая плата;
● 1 x резистор 220-440 Ом;
● 1 x конденсатор microFarad 100-1000 (все, что между этими двумя значениями, отлично подойдет);
● Макет и монтажные провода;
● Блок питания 5 В.
Настройте схему, как показано на рисунке:
Arduino для начинающих. Урок 1. Мигающий светодиод
Обратите внимание, что конденсатор должен быть правильной ориентации. Вы можете понять, какая сторона прикрепляется к рейке земля, ища знак минуса (-) на корпусе конденсатора. На этот раз мы задействуем Arduino, используя источник питания 5 В
Это позволит устройству работать автономно
На этот раз мы задействуем Arduino, используя источник питания 5 В. Это позволит устройству работать автономно
Вы можете понять, какая сторона прикрепляется к рейке земля, ища знак минуса (-) на корпусе конденсатора. На этот раз мы задействуем Arduino, используя источник питания 5 В. Это позволит устройству работать автономно.
Во-первых, убедитесь, что ваша плата может работать с 5 В, прежде чем присоединить ее к источнику питания. Почти все платы работают на 5V через USB-порт, но штыри питания на некоторых могут иногда пропускать регуляторы напряжения и превращать их в поджаренные тосты.
Кроме того, рекомендуется убедиться, что несколько отдельных источников питания не подключены к Arduino — отсоединяйте USB-кабель всякий раз, когда используете внешний источник питания.
Светодиодная лента Ардуино — Бегущий огонь или световая волна
Чтобы безопасно запрограммировать нашу плату, отсоедините линию VIN от линии электропередач. Вы подключите ее позже обратно.
Присоедините свой Arduino к компьютеру и откройте Arduino IDE. Убедитесь, что у вас правильный номер платы и порта, выбранный в меню «Сервис»> «Сервис и инструменты»> «Порт».
Мы будем использовать библиотеку FastLED для тестирования нашей установки. Вы можете добавить библиотеку, нажав на Эскиз> Включить библиотеку> Управление библиотеками и поиск FastLED. Нажмите «Установить», и библиотека будет добавлена в среду IDE.
В разделе «Файл»> «Примеры»> «FastLED» выберите эскиз DemoReel100. В этом эскизе задействованы различные эффекты, которые можно сделать с помощью светодиодных полос WS2812, и невероятно легко настроить.
Все, что вам нужно изменить, — это переменная DATA_PIN, чтобы она соответствовала значку 13 и переменной NUM_LEDS для определения количества светодиодов, находящихся в полосе, которую вы используете. В этом случае я применяю только небольшую линию из 10 светодиодов, вырезанных из более длинной полосы.
Используйте большее количество для красивейшего светового шоу!
Наконец, подключите VIN Arduino к линии электропередач и наслаждайтесь представлением.
Светодиодная лента Ардуино — Безграничные возможности
Учиться работать со светодиодными лентами — хороший способ познакомиться с базовым программированием на Arduino, но лучший способ учиться — изменять коды. Побалуйтесь с приведенным выше кодом и посмотрите, что вы можете сделать! Если все это слишком сложно для вас, подумайте о проектах Arduino для начинающих.
Адресная светодиодная лента – это украшение любого проекта Arduino. С ее помощью вы можете создавать светомузыку, умную подсветку для телевизора, бегущие строки и другие проекты, в которых требуется отобразить информацию на широком экране. Благодаря встроенным контроллерам, вы можете управлять каждым из светодиодов ленты в отдельности, управляя ими как пикселями на экране. В этой статье мы разберемся, как работает адресная светодиодная лента, как ее подключить к Ардуино и какие библиотеки лучше использовать для управления.
Управление RGB лентой с помощью Andurino
Кроме однокристальных светодиодов, Ардуино может работать и с цветными LED. Подключив выводы каждого цвета к аналоговым выходам Ардуино можно произвольно изменять яркость каждого кристалла, добиваясь необходимого цвета свечения.
Схема подключения к Arduino RGB светодиода:
Аналогично построено и управление RGB лентой Arduino:
Аrduino RGB контроллер лучше собирать на полевых транзисторах.
Для плавного управления яркостью
можно использовать две кнопки. Одна будет увеличивать яркость свечения, другая уменьшать.
Скетч управления яркостью светодиодной ленты Arduino
int led = 120;
устанавливаем средний уровень яркости
void setup() {
pinMode(4, OUTPUT);
устанавливаем 4й аналоговый порт на вывод
pinMode(2, INPUT);
pinMode(4, INPUT);
устанавливаем 2й и 4й цифровой порт на ввод для опроса кнопок
}
void loop(){
button1 = digitalRead(2);
button2 = digitalRead(4);
if (button1 == HIGH)
нажатие на первую кнопку увеличит яркость
{
led = led + 5;
analogWrite(4, led);
}
if (button2 == HIGH)
нажатие на вторую кнопку уменьшит яркость
{
led = led — 5;
analogWrite(4, led);
}
При удержании первой или второй кнопки плавно изменяется напряжение, подаваемое на управляющий контакт электронного ключа. Тогда и произойдет плавное изменение яркости.
Медленно изменяющие цвет RGB светодиоды и их применение для диайвая
Да-да, диайвая, сильно модное нынче слово в интернете. DIY или сделано руками по-нашему. Жизнь на муське, я смотрю, даже в новый год не затихает, ну и я решил тоже поделиться своим рукоблудием. Собственно, данные светодиоды я уже упоминал в своем обзоре гирлянд, но крайне удачно (как мне кажется) их применил, так что не грех написать и отдельный обзор. Сами светодиоды, собственно, ничего сверъестественного из себя не представляют — обычные на вид узконаправленные 5мм светодиоды в прозрачном корпусе. Но внутри там на самом деле три светодиода и микросхема управления, которая плавно их переключает, таким образом изменяя цвет свечения «по всей радуге»
видео как они работают тут:
Собственно, на этом обзор светодиодов закончен
После покупки 3д принтера я начал интересоваться готовыми моделями для печати. Ну и несомненно первым же делом нашел сайт thingiverse.com. А на нем, в частности, дивный ночник «Magic Mushrooms — a lighted decoration». Ну и в преддверии нового года — решил напечатать пару штук на подарочки. Несомненно, данного обзора бы не было, если б я не допилил слегонца ту модель. Точнее, я напечатал несколько новых деталей и одну взамен использовавшейся — а именно заднюю крышку.
К сожалению, в оригинальной модели крышка сделана как-то по-дурацки и мало того что неудобно закрывается, так еще и плохо держится, более того, в неё и держатель для батареек толком не поставить. А чтобы она не болталась и не проваливалась — я напечатал пару пластиночек 5х10х1мм которые приклеил дихлорэтаном изнутри корпуса чтобы крышка не проворачивалась. Кроме того, так как светодиоды у меня узконаправленные — я напечатал для них из прозрачного пластика колпачки, которые рассеивают свет.
Данные светодиоды можно питать и от 2 и от 3 АА/ААА батареек. Я, собственно, проверил оба варианта — всё работает, но при 2В уже тяжко. Но я не думаю, что данные светильники будут так часто включаться и подолгу работать, что это станет проблемой.
При разработке крышки я ориентировался на купленные в оффлайне держатели для 3*ААА батареек, ну и пришедшие из Китая по ошибке переключатели
Мои модели выложены тут: yadi.sk/d/KLTZkkDeN5xPpw
Ну и, собственно, приступаем к изготовлению ночника. Печатаем детали:
Пластинки уже вклеены в корпус, они видны в отверстии сверху и снизу. На них лежит крышка, они не дают ей провернуться на выступах которые вставлены в пазы. Крышка получилась забавная, «удивленный мальчик» называется
Колпачки для светодиодов:
По печати: не спрашивайте у меня о настройках принтера, я еще зеленый совсем.
Ножки грибов к пеньку клеим китайскими соплями термопистолетом (о правильном пистолете с клапаном я тоже писал), может потребоваться расточить отверстия и подобрать расположение, чтобы шляпки не сильно пересекались в пространстве. Предварительно можно фиксировать паяльником.
Далее паяем провода к светодиодам. Провода брать чем тоньше и мягче — тем лучше. Соблюдаем полярность, чтобы потом не путаться. Выводы светодиодов оставляем где-то 3-5мм, на один после пайки натягиваем термоусадку.
Для соединения всех проводов в кучу внутри пенька я использовал тонкую полоску 2-стороннего стеклотекстолита. на одну сторону припаиваем плюсы, на вторую минусы диодов, потом подключаем к батарее через выключатель. Выключатель, кстати, к крышке крепится путём расплавления штырьков.
На батарейки внимания не обращайте, для тестов воткнул что-то дешманское из фикспрайса.
Ну и результат:
Как видим, светодиоды не работают (да и не обязаны) работать строго синхронно, поэтому они через какое-то время рассинхронизируются, что идет только на пользу. Приятной особенностью является тот факт, что можно не заморачиваться качеством печати большинства деталей, потому что это только придает фактуру, которая тут весьма уместна. Теоретически можно добавить сенсорный выключатель, литиевый акум и зарядку от usb, но это уже каждый сам решает.
Лично я более чем доволен результатом. Рекомендую данные светодиоды для подобных поделок, ну и 3д принтер для подобных поделок
Пример программы
Платы Ардуино способны управлять светодиодными конструкциями по заранее заданным программам. Их библиотеки можно скачать с официально сайта, найти в интернете или написать новый sketch (code) самому. Собрать такое устройство можно своими руками.
Вот некоторые варианты использования подобных систем:
- Управление освещением. С помощью датчика освещения включается свет в комнате как сразу, так и с постепенным нарастанием яркости по мере захода солнца. Включение может также производиться через wi-fi, с интеграцией в систему «умный дом» или соединением по телефону.
- Включение света на лестнице или в длинном коридоре. Очень красиво смотрится диодная подсветка каждой ступеньки в отдельность. При подключении к плате датчика движения, его срабатывание вызовет последовательное, с задержкой времени включение подсветки ступеней или коридора, а отключение этого элемента приведет к обратному процессу.
- Цветомузыка. Подав на аналоговые входы звуковой сигнал через фильтры, на выходе получится цветомузыкальная установка.
- Моддинг компьютера. С помощью соответствующих датчиков и программ цвет светодиодов может зависеть от температуры или загрузки процессора или оперативной памяти. Работает такое устройство по протоколу dmx 512.
- Управление скоростью бегущих огней при помощи энкодера. Подобные установки собираются на микросхемах WS 2811, WS 2812 и WS 2812B.
Основы программного управления WS2812B
Уже упоминалось, что для управления микросхемами WS2812B надо сформировать импульсы с определенной длиной, выдерживая высокую точность. В языке Ардуино для формирования коротких импульсов есть команды delayMicroseconds и micros. Проблема в том, что разрешение этих команд составляет 4 микросекунды. То есть, сформировать временные задержки с заданной точностью не получится. Надо переходить к средствам С++ или Ассемблера. А можно организовать управление адресной светодиодной лентой через Arduino с помощью специально созданных для этого библиотек. Начать знакомство можно с программы Blink, заставляющей светоизлучающие элементы мигать.
FastLed
Эта библиотека универсальна. Помимо адресной ленты она поддерживает множество устройств, включая ленты с управлением по интерфейсу SPI. Обладает широкими возможностями.
Сначала библиотеку надо подключить. Это делается до блока setup, а строка выглядит так:
#include <FastLED.h>
Следующим шагом надо создать массив для хранения цветов каждого светоизлучающего диода. Он будет иметь наименование strip и размерность 15 – по числу элементов (этому параметру лучше назначить константу).
CRGB strip
В блоке setup надо указать, с какой лентой будет работать скетч:
void setup() {
FastLED.addLeds< WS2812B, 7, RGB>(strip, 15);
int g;
}
Параметр RGB устанавливает порядок чередования цветов, 15 означает количество светодиодов, 7 – номер вывода, назначенного для управления (последнему параметру тоже лучше назначить константу).
Блок loop начинается с цикла, который последовательно записывает в каждый раздел массива Red (красное свечение):
for (g=0; g< 15;g++)
{strip=CRGB::Red;}
Далее сформированный массив отправляется в светильник:
FastLED.show();
Задержка 1000 миллисекунд (секунда):
delay(1000);
Затем можно таким же способом выключить все элементы, записав в них черный цвет.
for (int g=0; g< 15;g++)
{strip=CRGB::Black;}
FastLED.show();
delay(1000);
Скетч для мигающей ленты на основе FastLed.
После компиляции и загрузки скетча лента будет мигать с периодом в 2 секунды. Если надо управлять каждой цветовой составляющей раздельно, то вместо строки {strip=CRGB::Red;} используется несколько строк:
{
strip.r=100;// устанавливается уровень свечения красного элемента
strip.g=11;// то же для зеленого
strip.b=250;// то же для синего
}
NeoPixel
Эта библиотека работает только с LED-кольцами NeoPixel Ring, но она менее ресурсоемка и содержит только самое необходимое. На языке Ардуино программа выглядит так:
#include <Adafruit_NeoPixel.h>
Как и в предыдущем случае подключается библиотека, и декларируется объект lenta:
Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// где 15 – количество элементов, а 6 – назначенный вывод
В блоке setup инициализируется лента:
void setup() {
lenta.begin ()
}
В блоке loop все элементы засвечиваются красным, переменная передается в ленту и создается задержка в 1 секунду:
for (int y=0; у<15;y++)// 15 – количество элементов в светильнике
{lenta.setPixelColor(y, lenta.Color(255,0,0))};
lenta.show();
delay(1000);
Прекращается свечение записью черного цвета:
for (int y=0; y< 15;y++)
{ lenta.setPixelColor(y, lenta.Color(0,0,0))};
lenta.show();
delay(1000);
Скетч для программы Blink на основе NeoPixel.
Видео-урок: Образцы визуальных эффектов с использованием адресных лент.
Научившись мигать светодиодами, можно продолжить занятия и научиться создавать цветовые эффекты, включая популярные «Радуга» и «Северное сияние» с плавными переходами. Адресные светодиоды WS2812B и Ардуино дают для этого практически безграничные возможности.
Выбор контроллера для адресной ленты
При выборе SPI контроллера для умных лент нужно рассчитывать не на мощность подсветки, как обычно это делается, а на количество пикселей.
Данные параметр всегда указывается на корпусе изделия.
Что касается выбора мощности блока питания, то здесь ориентируйтесь на следующий показатель. Один светодиод для моделей sw2812b – это примерно 60мА при белом свете.
Считайте их общее количество в ленте, берите запас в 30% и подбирайте подходящий блок.
От блока питания провода подключаются на контроллер, а с другой стороны контроллера запитывается сама лента.
Питание можно подать и напрямую, но наличие контроллера обязательно.
Выбор RGB ленты
Для этого проекта нам понадобится именно RGB светодиодная лента, та — что с четырьмя контактами.
Также существуют варианты RGB с тремя, пятью и даже шестью контактами, все они для нашего проекта без переделок не подойдут.
Вариант с тремя контактами – это адресная лента. Для управления такой лентой нужная другая схема и другой программный код, поэтому рассмотрим этот вариант в отдельной статье.
Вариант с пятью и шестью контактами это RGBW и RGBWW ленты. Как вы уже догадались, буква W обозначает дополнительно припаянный белый светодиод, а WW два белых светодиода, такие ленты используются в случаях, если белым нужно светить гораздо ярче чем остальными цветами.
Обычная четырехконтактная лента способна светить белым цветом и без дополнительных светодиодов, просто включив все три своих цвета в равных пропорциях.
Обзор лент
Лентами, завоевавшими наибольшую популярность у народа, послужили сборки на основе микросхем WS2812b и WS2811. Рассчитаны они на 5 и 12 вольт соответственно.
Пиксельная лента на основе микросхемы WS2811 характеризуется наличием у каждого из вспомогательных контроллеров не менее 8 выходов. Три из них отвечают за красный, зелёный и синий цвета, два – обеспечивают обмен данными, один – для включения нужного режима работы, один – на питание и последний – на «массу». Более «продвинутая» версия сборки WS2811 имеет существенное отличие от своего предшественника: точечный (местный) контроллер включается сразу с тремя светодиодами, что значительно повышает дешевизну и надёжность этой модели.
Обобщая закономерности функционирования, стоит отметить следующее. В составе смарт-лент используется ШИП-контроллер, размещённый непосредственно в корпусе SMD-светодиода. Серия 5050 располагает именно такой схемой управления. Единый блок – светоизлучающие диоды и простейший контроллер – позволяют набирать ленту любой длины на таком светодиоде. Число выводов такой сборки – от 4 до 8 на каждый светоэлемент.
Руководство по выбору светодиодных лент к Arduino
При покупке светодиодных лент следует учитывать несколько моментов. Первое — это функциональность. Если вы планируете использовать свои устройства в основном для внешнего освещения, правильным выбором будет простая диодная полоса 12 В RGB (SMD5050).
Многие устройства поставляются с инфракрасным пультом дистанционного управления для управления ими, хотя в этом проекте мы будем использовать Arduino. Проведите некоторое время за покупками. На момент написания этой статьи рулетку можно было купить всего за 1 доллар.
Если вам нужно что-то более технологичное, подумайте о ленте RGB SPI.
Эти полоски, иногда называемые неопикселями, имеют интегрированные наборы микросхем, которые позволяют им управлять каждым диодом по одному. Это означает, что они способны не только на дополнительное освещение. Вы можете использовать их для создания недорогого светодиодного дисплея с нуля. Вы даже можете построить свое собственное домашнее облако из молний, вырывающихся из лент. Или бегущая светодиодная лента.
Вы можете узнать больше о лентах RGB SPI здесь.
Эти полоски требуют только 5V для правильного питания. Хотя можно подавать небольшое количество энергии непосредственно с платы Arduino, обычно рекомендуется использовать отдельный источник питания 5 В для устранения запаха гари. Если вы ищете индивидуально программируемые светодиоды, светодиодная лента Arduino — лучший выбор. На данный момент стоимость 1 метра составляет порядка 4 — 270 рублей.
Еще одна вещь, которую следует учитывать, — это то, где, вероятно, будут использоваться ленты
Оба типа лент имеют разную длину, плотность светодиода — количество диодов на метр — и разную степень защиты от атмосферных воздействий.
Осматривая светодиодную ленту, обращайте внимание на цифры в списке. Обычно первое число — это количество светодиодов на метр, а буквы IP, за которыми следуют цифры, будут уровнем безопасности. Например, если в списке указано «30 IP67», это означает, что на метр будет приходиться 30 светодиодов
«6» — знак того, что устройство полностью защищено от пыли. «7» означает, что устройство не будет повреждено при кратковременном погружении в воду. После покупки светодиодной ленты самое время подключить ее к Arduino. Начнем с SMD5050
Например, если в списке указано «30 IP67», это означает, что на метр будет приходиться 30 светодиодов. «6» — знак того, что устройство полностью защищено от пыли. «7» означает, что устройство не будет повреждено при кратковременном погружении в воду. После покупки светодиодной ленты самое время подключить ее к Arduino. Начнем с SMD5050.
Это интересно: цветовое решение кварцевой лампы — рассматриваем досконально
Система управления светодиодным табло
Аппаратная часть – Arduino
В качестве основных мозгов устройства, естественно, выступил микроконтроллер Arduino с родным шилдом и некоторым навесным:
Во-первых, нужен оригинальный шилд (или его точная китайская копия) с USB-COM преобразователем на Atmega16u2, т.к. более простые аналоги обычно не поддерживают высокую скорость передачи данных (у меня – 2 мегабода в секунду) или работают на ней с большим количеством ошибок. Также, такую скорость должен поддерживать сам контроллер USB вашего компьютера и его драйвер.
Дополнительное оборудование
Так как основная функция моего табло – это часы, оно должно работать постоянно, независимо от компьютера. Для этого необходим резервный источник питания, для которого отлично подошёл адаптер питания для смартфона – HTC E250. Его номинал – 5V 1A, но по факту он и полторашку выдаёт без проблем. Также этот адаптер сертифицирован по пятому классу энергоэффективности, что говорит о его низком нагреве и высоком КПД при работе.
Для переключения между питанием от компьютера и этим устройством служит обычная релюха, правда я решил ничего не паять и просто приклеил к самому шилду термоклеем и подключил обычный пятивольтовый модуль реле для Arduino.
Фоторезистор – датчик освещённости. Разумеется, необходима мгновенная автоматическая регулировка яркости изображения на табло – включили свет в комнате – яркость выше, ночью – ниже.
Пара конденсаторов – для того, чтобы в момент выключения компьютера и перещёлкивания реле питание на контроллере не пропадало и часы, соответственно, не сбивались. Действительно, помогает, даже без диодов.
Схему подключения приводить не буду: всё и так понятно по фото, а если нет – изучение скетча окончательно прояснит ситуацию.
Адресные светодиодные ленты
Светодиодная лента – это набор связанных светодиодов, на которые может одновременно подаваться напряжение питания. Обычные ленты хорошо всем знакомы, они используются сегодня повсюду. В адресной светодиодной ленте так же используются светодиоды, но светоизлучающий диод может управляться отдельно и независимо от других. Таким образом, адресные ленты можно использовать для более интеллектуального управления световым потоком на отдельных участках ленты, включая или выключая подсветку в нужное время и в нужном месте.
Адресная светодиодная лента WS2811
Сегодня наибольшей популярностью пользуются разноцветные светодиодные ленты RGB-формата, позволяющие получать множество цветов. Благодаря конструкции есть возможность управления цветом каждого светодиода, что позволяет создавать оригинальные световые эффекты. Главное отличие адресной светодиодной ленты от обычной RGB ленты – это наличие специальных контроллеров (конструктивно выполненных в виде микросхем) возле каждого светодиода, что и дает возможность индивидуальной адресации и регулирования каждого оттенка.
Как правило,л ента содержит 3-4 контакта для подключения. Два вывода используются для питания – 5 Вольт и земля, остальные один или два – логический, для управления свечением.
Управление умной лентой производится по цифровому протоколу. Это значит, что без управляющего контроллера управлять устройством нельзя. Кстати, при прикосновении к цифровому входу может загореться несколько диодов – это связано с тем, что появляются помехи, которые контроллер принимает за команды.
Самыми популярными адресными светодиодными лентами являются устройства на чипах WS2812b и WS2811. В первом случае чип находится прямо внутри светодиода, то есть один прибор управляет свечением одного излучающего диода. Питание ленты составляет 5 вольт. Во втором случае чип помещается отдельно, и к нему подключаются 3 диода. Мощность – 12 вольт.