Инструкция по подключению Arduino к адресной светодиодной ленте

В настоящее время адресные светодиодной ленты (NeoPixel LEDs) на базе светодиодов WS2812 находят широкое применение в различных областях. В данной статье мы рассмотрим подключение подобной ленты к плате Arduino и научимся управлять ею в различных режимах.

Ранее на нашем сайте применение адресной светодиодной ленты (NeoPixel LEDs) рассматривалось в следующих проектах:

  • комнатный термометр на Arduino Nano;
  • связь двух плат Arduino на расстоянии 3 км с помощью Lora E32.

Почему NeoPixel?

Способность управлять отдельно каждым светодиодом в адресной светодиодной ленте дает вам возможность создать уникальные визуальный эффекты для своих проектов. Но помните о том, что если вам требуются очень высокие скорости переключения светодиодов, то использование подобной адресной светодиодной ленты нежелательно. Еще одним достоинством адресной светодиодной ленты NeoPixel является ее низкая цена по сравнению с другими типами адресуемых светодиодов. Светодиоды NeoPixel доступны в форме колец, лент, прямоугольников и поверхностей круглой формы – вы можете выбрать любой ее тип для своих проектов.


Примечание: чем больше светодиодов NeoPixel вы используете, тем больше оперативной памяти и больше мощности необходимо для управления ими, также при этом увеличивается время обработки, поэтому выбирайте оптимальное количество светодиодов NeoPixel исходя из возможностей используемого вами микроконтроллера.

Список необходимого

  • Мозг устройства – Ардуино Нано – 1 шт. — 150 р.
  • Датчик движения — HC-SR505 – 1 шт. — 60 р.
  • Сенсорная кнопка TTP-223 – 1 шт. — 20 р.
  • Транзистор IRF-3205 — 3 шт. -150 р.
  • Резистор 10 К 0,25 Вт – 3 шт. – 6 р.
  • Резистор 20 Ом 0,25 Вт – 3 шт. – 6 р.
  • Макетная плата под пайку размерами 90х50 мм – 1 шт. 100 р.
  • Корпус 100х60 — 1 шт. 60 руб.

Итого 14 деталей на общую сумму примерно 600 рублей + сама светодиодная RGB лента в зависимости от формата планируемой подсветки.

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

Схема проекта

Схема подключения адресной светодиодной ленты WS2812 к плате Arduino представлена на следующем рисунке.


Резистор в схеме необходим для защиты от повреждений светодиодов NeoPixel и для корректной передачи данных. Наилучшее расстояние для связи между модулем светодиодов NeoPixel и микроконтроллерной платой составляет от 1 до 2 метров.

Примечание: если вы используете адресную светодиодную ленту с большим количеством светодиодов, то в этом случае рекомендуется подключать конденсатор большой емкости (приблизительно 1000 мкФ) параллельно + и – источника питающего напряжения.

Принцип управления нагрузкой через Ардуино

Плата Ардуино имеет два типа портов вывода: цифровой и аналоговый (ШИМ-контроллер). У цифрового порта возможно два состояния – логический ноль и логическая единица. Если подключить к нему светодиод он либо будет светиться, либо не будет.

Аналоговый выход представляет собой ШИМ-контроллер, на который подаётся сигнал частотой около 500Гц с регулируемой скважностью. Что такое ШИМ-контроллер и принцип его работы можно найти в интернете

Через аналоговый порт возможно не только включать и выключать нагрузку, а и изменять напряжение (ток) на ней.

Синтаксис команд

Цифровой вывод:

pinMode(12, OUTPUT); — задаём порт 12 портом вывода данных; digitalWrite(12, HIGH); — подаём на дискретный выход 12 логическую единицу, зажигая светодиод.

Аналоговый вывод:

analogOutPin = 3; – задаём порт 3 для вывода аналогового значения; analogWrite(3, значение); – формируем на выходе сигнал с напряжением от 0 до 5В

Значение – скважность сигнала от 0 до 255. При значении 255 максимальное напряжение

Способы управления светодиодами через Ардуино

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

Для более мощных нагрузок, в том числе светодиодных лент, используют электронный ключ – транзистор.

Объяснение программы Arduino для работы с адресной светодиодной лентой

Прежде чем начинать работу с адресной светодиодной лентой в Arduino необходимо скачать и установить библиотеку для нее — NeoPixel Adafruit library.

Arduino

1 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

Эта функция определяет число светодиодов и контакт Arduino для управления ими.

Arduino

1 pixels.begin();

Эта функция инициализирует адресную светодиодную ленту.

Arduino

1 pixel.setBrightness(b);

Функция, устанавливающая яркость свечения светодиодов. 1 – минимальная яркость, 255 – максимальная.

Arduino

1 pixels.setPixelColor(Wich LED,Wich color(Red,Green,Blue));

Эта функция задает цвет свечения светодиода с помощью системы RGB, при этом задается номер светодиода (от 0 до NUMPIXELS-1).

Arduino

1 pixels.show();

Функция, которая активирует заданные настройки, то есть включает светодиоды с заданными ранее настройками.

Теперь рассмотрим примеры программ, позволяющие реализовать различные варианты управления светодиодами в адресной светодиодной ленте.

Лента на базе ws2812b


Лента на базе ws2812b
Лента на чипе ws2812b является более совершенствованной, чем ее предшественник. ШИМ драйвер в адресной ленте компактен, и размещается прямо в корпусе светоизлучающего диода.

Основные преимущества ленты на основе ws2812b:

  • компактные размеры;
  • легкость управления;
  • управление осуществляется всего по одной линии + провода питания;
  • количество включенных последовательно светодиодов не ограничено;
  • невысокая стоимость – покупка отдельно трех светодиодов и драйвера к ним выйдет значительно дороже.

Лента оснащена четырьмя выходами:

  • питание;
  • выход передачи данных;
  • общий контакт;
  • вход передачи данных.

Максимальный ток одного адресного светодиода равняется 60 миллиамперам. Рабочие температуры лежат в пределах от -25 до +80 градусов. Напряжение питания составляет 5 В +-0,5.

ШИМ драйверы ленты 8-мибитные – для каждого цвета возможно 256 градация яркости. Для установки яркости нужно 3 байта информации – по 8 бит с каждого светодиода. Информация передается по однолинейному протоколу с фиксированной скоростью. Нули и единицы кодируются высоким и низким уровнем сигнала по линии.

1 бит передается за 1,25 мкс. Весь пакет из 24 бит для одного светодиода передается за 30 мкс.

Режим радуги для светодиодов NeoPixel

В сети есть интересный инструмент для удобного создания различных эффектов для адресной светодиодной ленты NeoPixel — NeoPixel Effects Generator. В нем вы можете задать число светодиодов и контакт платы Arduino для управления ими и после создания в этом генераторе необходимых эффектов для вашей ленты вы можете в этом генераторе сформировать готовый код для платы Arduino.

Для этого выполните следующую последовательность шагов.

1. На сайте генератора нажмите Add Led Strip (добавить светодиодную ленту).

2. Задайте количество светодиодов в ленте и номер контакта Arduino, с которого будет осуществляться управление ими.

3. После этого нажмите на Add Effect (добавить эффект) и выберите желаемый эффект.

4. Задайте цвет свечения светодиодов.

5. Нажмите на “generate Arduino code” и после этого для вас будет сформирован код программы для Arduino, который вы можете непосредственно вставить в Arduino IDE.

Принцип управления нагрузкой через Ардуино


управление Arduino
На плате есть много выходов, как цифровых, имеющих два состояния – включено и выключено, так и аналоговых, управляемых через ШИМ-controller с частотой 500 Гц.

Но выходы рассчитаны на ток 20 – 40 мА с напряжением 5 В. Этого хватит для питания индикаторного RGB-светодиода или матричного светодиодного модуля 32×32 мм. Для более мощной нагрузки это недостаточно.

Для решения подобной проблемы во многих проектах нужно подключить дополнительные устройства:

  • Реле. Кроме отдельных реле с напряжением питания 5В есть целые сборки с разным количеством контактов, а также со встроенными пускателями.
  • Усилители на биполярных транзисторах. Мощность таких устройств ограничена током управления, но можно собрать схему из нескольких элементов или использовать транзисторную сборку.
  • Полевые или MOSFET-транзисторы. Они могут управлять нагрузкой с токами в несколько ампер и напряжением до 40 – 50 В. При подключении мосфета к ШИМ и электродвигателю или к другой индуктивной нагрузке, нужен защитный диод. При подключении к светодиодам или LED-лампам в этом нет необходимости.
  • Платы расширения.

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта? О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь? О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Компьютер никак не реагирует на подключение Ардуины! О: Возможно у тебя зарядный USB кабель, а нужен именно data-кабель, по которому можно данные передавать

В: Ошибка! Скетч не компилируется! О: Путь к скетчу не должен содержать кириллицу. Положи его в корень диска.

В: Сколько стоит? О: Ничего не продаю.

Варианты подсветки подвесного потолка

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

Виды

Для освещения подвесного потолка чаще всего используются:

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

Подсвечиваться конструкция может и устройствами, расположенными по краям гипсокартонного потолка. Устанавливать такие светильники проще, чем на натяжном полотне. А создают с их помощью не только подсветку, но и основное освещение.

Порядок установки

Подсветка подвесного потолка делается открытой или скрытой. Чаще всего выбирают второй вариант, основные этапы которого выглядят следующим образом:

  1. Прокладывают и подключают проводку. Один из способов подключения предусматривает использование кабель-канала, второй – прокладку провода в гофре.
  2. Если используется кабель-канал, проводку размещают внутри конструкции и крепится к стене.
  3. При прокладке в гофре проводку крепят крепёжными клипсами, кабель к каждому светильнику прокладывают в отдельной гофрированной трубке.
  4. Выполняют отверстия под светильники в соответствии с чертежом (для ленты таких действий не требуется).
  5. Устанавливают и подключают к питанию светильники или светодиодная лента.

Effects

  1. Static — No blinking. Just plain old static light.
  2. Blink — Normal blinking. 50% on/off time.
  3. Breath — Does the «standby-breathing» of well known i-Devices. Fixed Speed.
  4. Color Wipe — Lights all LEDs after each other up. Then turns them in that order off. Repeat.
  5. Color Wipe Inverse — Same as Color Wipe, except swaps on/off colors.
  6. Color Wipe Reverse — Lights all LEDs after each other up. Then turns them in reverse order off. Repeat.
  7. Color Wipe Reverse Inverse — Same as Color Wipe Reverse, except swaps on/off colors.
  8. Color Wipe Random — Turns all LEDs after each other to a random color. Then starts over with another color.
  9. Random Color — Lights all LEDs in one random color up. Then switches them to the next random color.
  10. Single Dynamic — Lights every LED in a random color. Changes one random LED after the other to a random color.
  11. Multi Dynamic — Lights every LED in a random color. Changes all LED at the same time to new random colors.
  12. Rainbow — Cycles all LEDs at once through a rainbow.
  13. Rainbow Cycle — Cycles a rainbow over the entire string of LEDs.
  14. Scan — Runs a single pixel back and forth.
  15. Dual Scan — Runs two pixel back and forth in opposite directions.
  16. Fade — Fades the LEDs on and (almost) off again.
  17. Theater Chase — Theatre-style crawling lights. Inspired by the Adafruit examples.
  18. Theater Chase Rainbow — Theatre-style crawling lights with rainbow effect. Inspired by the Adafruit examples.
  19. Running Lights — Running lights effect with smooth sine transition.
  20. Twinkle — Blink several LEDs on, reset, repeat.
  21. Twinkle Random — Blink several LEDs in random colors on, reset, repeat.
  22. Twinkle Fade — Blink several LEDs on, fading out.
  23. Twinkle Fade Random — Blink several LEDs in random colors on, fading out.
  24. Sparkle — Blinks one LED at a time.
  25. Flash Sparkle — Lights all LEDs in the selected color. Flashes single white pixels randomly.
  26. Hyper Sparkle — Like flash sparkle. With more flash.
  27. Strobe — Classic Strobe effect.
  28. Strobe Rainbow — Classic Strobe effect. Cycling through the rainbow.
  29. Multi Strobe — Strobe effect with different strobe count and pause, controlled by speed setting.
  30. Blink Rainbow — Classic Blink effect. Cycling through the rainbow.
  31. Chase White — Color running on white.
  32. Chase Color — White running on color.
  33. Chase Random — White running followed by random color.
  34. Chase Rainbow — White running on rainbow.
  35. Chase Flash — White flashes running on color.
  36. Chase Flash Random — White flashes running, followed by random color.
  37. Chase Rainbow White — Rainbow running on white.
  38. Chase Blackout — Black running on color.
  39. Chase Blackout Rainbow — Black running on rainbow.
  40. Color Sweep Random — Random color introduced alternating from start and end of strip.
  41. Running Color — Alternating color/white pixels running.
  42. Running Red Blue — Alternating red/blue pixels running.
  43. Running Random — Random colored pixels running.
  44. Larson Scanner — K.I.T.T.
  45. Comet — Firing comets from one end.
  46. Fireworks — Firework sparks.
  47. Fireworks Random — Random colored firework sparks.
  48. Merry Christmas — Alternating green/red pixels running.
  49. Fire Flicker — Fire flickering effect. Like in harsh wind.
  50. Fire Flicker (soft) — Fire flickering effect. Runs slower/softer.
  51. Fire Flicker (intense) — Fire flickering effect. More range of color.
  52. Circus Combustus — Alternating white/red/black pixels running.
  53. Halloween — Alternating orange/purple pixels running.
  54. Bicolor Chase — Two LEDs running on a background color.
  55. Tricolor Chase — Alternating three color pixels running.
  56. thru 62. Custom — Up to eight user created custom effects.

Готовимся к новому году: простая гирлянда на arduino

Где можно приобрести?

Адресную светодиодную лентe без труда можно найти в любом специализированном магазине. Из проверенного варианта, отличающегося не высокими ценниками и хорошим качеством продукта, можно посоветовать интернет-магазин www.giant4.ru. Также адресную LED-ленты можно приобрести и на всем известной площадки AliExpress.com.

Чтобы избежать проблем с некачественной продукцией, при покупке товара на AliExpress стоит внимательно изучать товар и отзывы покупателей.

Используемые источники:

  • https://alexgyver.ru/ws2812_guide/
  • https://arduinomaster.ru/datchiki-arduino/adresnaya-svetodiodnaya-lenta/
  • https://ledjournal.info/spravochnik/adresnaja-svetodiodnaja-lenta.html
Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]