Адресная RGB-лента WS2812B: как подключить к Arduino

Почему NeoPixel?

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

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




Подключение ws2128 к Arduino


как выбрать контроллер для светодиодной ленты

Сфера применения

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

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

Или создайте неповторимый облик своему дому, закрепив его по периметру фасада. Промышленность производит ленты не только для внутреннего использования, но и для внешнего использования. Для этого подходят изделия со степенью защиты IP65-IP68. Часто светодиодные ленты используются для создания цветного освещения в автомобиле.

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

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

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







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

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

Ардуино

1 Пиксель Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

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

Ардуино

1 pixel.begin();

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

Ардуино

1 pixel.set Яркость (б);

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

Ардуино

1 pixelColor (какой светодиод, какой цвет (красный, зеленый, синий));

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

Ардуино

1 pixel.show();

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

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






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


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

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

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

Лента имеет четыре выхода:

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

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

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

1 бит передается за 1,25 мкс. Полный 24-битный пакет для светодиода передается за 30 мкс.

122-Эффектор с выходом на умную ленту WS2812

После переноса старого Effector на платформу Arduino (ATmega328P) появилась возможность дальнейшего развития проекта. А теперь подключил к Эффектору смарт-ленту (NeoPixels) WS2812. В то же время новый Effector WS2812 не только демонстрирует свои эффекты на смарт-ленте вместо обычных светодиодов, но и приобрел впечатляющее количество новых функций. Новые вкусности: — переработан алгоритм формирования уровней, теперь яркость каналов имеет 255 градаций (против 8 в предыдущей версии)

— встроенные эффекты переработаны, теперь они стали плавнее — количество встроенных эффектов увеличено с 8 до 16.

правда, из управляющей программы Effector-12 доступно всего 8, как и в предыдущей версии

— как и в предыдущем эффекторе, управление с ИК-пульта дистанционного управления осталось, но были добавлены новые команды управления, связанные с интеллектуальной лентой — поскольку интеллектуальная лента окрашена, цветовые палитры использовались для генерации разных цветов из монохромных сигналов уровня канала . Вы можете выбрать одну из 8 палитр (включая динамическую палитру переливающихся цветов) — теперь Effector может быть членом сети ZiCip в качестве сателлита

Эффектор может предоставлять информацию о канале другим спутникам или управляться другим устройством в сети. Я собираюсь использовать его, чтобы модернизировать свою супер-гирлянду, подружить с программой Effector 12 (об этом будет отдельная статья)

— количество пикселей, отображаемых на смарт-ленте, может быть произвольным, до 255 пикселей — общая яркость ленты может регулироваться — 12-канальный рисунок не только на 12 пикселей ленты, но может масштабироваться (растягиваться)) на любое количество пикселей — рисунок на ленте длиннее 12 пикселей, повторяются циклически — большинство генерируемых эффектов цикличны и на ленте создается непрерывное изображение эффекта (невозможно определить границы области эффектов) — для нециклических эффектов предусмотрен зеркальный вариант повторяющихся каналов, что создает непрерывное изображение, и в этом случае — изображение на ленте можно перемещать по произвольному количеству пикселей — контрольные линии (те к которому подключаются кнопки) реализованы по принципу «монтажное ИЛИ» — это означает, что, управляя устройством с помощью пульта ДУ, можно принимать управляющие сигналы по этим линиям (нажав на землю), которые можно использовать, например, для управления вашими устройствами.

Как это выглядит вживую.

Как вы можете видеть на видео, по сравнению с предыдущим Arduffector, где все эффекты быстрые и четкие, новый Effector создает плавное и неторопливое изображение с эффектами. В общем, данная модификация эффектора была сделана под девизом «Smooth».

Сборка

Поскольку устройство работает на готовой плате Arduino Nano (или Uno), собирать / паять что-то особенное не нужно. Просто подключите смарт-ленту к Arduin (к контакту 13), скомпилируйте прошивку (через стандартный USB-кабель Arduin) и устройство заработает.

Если у вас WS2812 не более 2-3 десятков пикселей, отдельный блок питания вам не понадобится — все будет работать от одного USB-порта. Если лента длинная, порт USB не сможет обеспечить необходимый ток. В этом случае вам понадобится мощный внешний блок питания на 5 вольт.

Для демонстрационного видео на YouTube я собрал на макете необходимый минимум и уложил ленту в пластиковый кабельный канал (он светится изнутри и создает связное изображение, скрывая свечение отдельных пикселей).



Если вы хотите получить от устройства больше, добавьте переменные резисторы, кнопки, TSOP и т.д.

Магазин DiyLab.com.ua предоставил мне тестовую ленту.Если прибор вам понравился и вы хотите его повторить, ленту в Украине можно купить в том же магазине — ссылка на ленты. Для России можно купить у другого моего партнера — TIXER.RU (обещали в ближайшее время пополнить ассортимент).

Описание работы

Устройство работает как и его предшественник, но есть и нововведения. Пройду чеки. Кнопки: — 0 All Off — отключает все эффекты и выключает кассету — 1 серия EE — запускает последовательность эффектов, хранящихся в EEPROM (их 4, их можно изменить с помощью программы Effector-12) — 2 Flash-серии — запускает случайную последовательность встроенных в устройство эффектов (их 16, изменить их невозможно, период смены эффекта 10 секунд) — 3 Next — запускает следующий эффект, при этом продолжая работать постоянно, причем , после перезапуска Эффекта этот эффект будет продолжать работать — 4 полосы_Зеркало — при удерживании на земле »В этой строке 12 каналов Эффекта начинают периодически позиционироваться в зеркале на ленте (например, AL, LA, AL ,…) вместо предопределенной периодической позиции (т.е. AL, AL, AL,…) — 5strip_R, 6strip_G, 7strip_B — эти три строки определяют текущую палитру, в которой отображается причина воздействия на ленту; цвет радуги непрерывно циклически меняется

— 8strip_IROut — при прижатии этой линии к «земле» информация о состоянии канала начинает передаваться в ИК-сеть (ИК-излучатель светодиода) (более подробно об этом будет рассказано в отдельной статье).

Аналоговые входы (АЦП) — новый метод управления в этом устройстве. Через протекающее через них напряжение (в пределах 0-5 вольт) можно изменить изображение, отображаемое на ленте. Линии АЦП подтянуты до 5 вольт, то есть, если к линии ничего не подключено, прибор воспринимает это как максимальный уровень.

— Strip_PixelsNumber — количество пикселей в ленте, воспроизводящих изображение (5 вольт — 255 шт., 0 — 0) — strip_Scale — масштабирование изображения на ленте (5 вольт — масштаб 1 канала: 1 пиксель, 0 — 1 канал проецируется на всю ленту) — strip_Offset — смещение рисунка на ленте — strip_Bright — общая яркость ленты (5 вольт — максимум, 0 — минимум)

Проверка уровня напряжения открывает новые возможности использования устройства. Например, если вы подключите аналоговый сигнал от усилителя к входу strip_Pixels Number, мы получим измеритель линейного уровня. Также, используя палитру огня и подключив сигнал от термометра к strip_Bright, вы можете просматривать температуру и т.д.

Управление устройством с домашнего пульта ДУ.

Для управления устройством подойдет любой домашний пульт (могут быть проблемы с конкретными пультами с обратной связью, например, с пультом для кондиционера).

Для изучения кнопок необходимо: 1 — нажать (и удерживать) кнопку «Learn» 2 — сбросить Arduino с помощью кнопки сброса (светодиодный индикатор должен мигнуть несколько раз) 3 — отпустить кнопку «Learn».

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

4 — последовательно нажать 9 кнопок пульта ДУ в последовательности функций (кнопки прибора 0 All Off… 8 strip_IR Out) 5 — после чего прибор автоматически перейдет в нормальный режим работы

Каждое нажатие кнопки на пульте дистанционного управления будет подтверждаться сигнальным светодиодом.

Если вам в устройстве не нужны никакие кнопки (например, советую пока не использовать 8 strip_IR Out), то в процессе обучения нужно нажимать ранее изученную клавишу.

Как я уже писал выше, новой особенностью этого устройства является то, что управляющие входы для кнопок также являются выходами одновременно, если управление осуществляется с пульта. При нажатии кнопки на пульте дистанционного управления соответствующая линия управления будет прижата к земле. Это можно использовать для управления нажатиями клавиш на пульте дистанционного управления или для управления вашими устройствами. Строки от «0 All Off» до «3 Next» при нажатии кнопок на пульте дистанционного управления будут на короткое время прижаты к земле, а строки от «4 strip_Mirror» до «8 strip_IR Out» работают как триггер (нажатие один раз — нажал, снова нажал — отпустил)

Управление устройством с помощью программы Effector-12.

Несмотря на незначительные изменения, устройство оставалось совместимым с программой Effector-12 (за исключением некоторых нюансов, связанных с палитрами и дополнительными функциями). Встроенный в Arduin USB-UART позволяет подключать устройство к компьютеру и легко управлять им. Напомню, что управляющая программа способна управлять каналами и эффектами устройства в ручном режиме, просматривать музыку (с возможностью самостоятельно создавать различные способы отображения), выполнять различные действия с течением времени и т.д.

КАК ДЕЛАТЬ НЕЛЬЗЯ

Как мы уже поняли, для питания ленты требуется источник на 5 Вольт с достаточным запасом тока, а именно: один цвет качественного светодиода на максимальной яркости потребляет 0,012 А (12 мА) соответственно, весь светодиод — 0,036 А (36 мА) на максимальной яркости… У китайцев есть «китайские» ленты, которые меньше потребляют и тускло светятся. Всегда покупаю в магазине осветительных приборов БТФ (ссылка в начале статьи), там ленты качественные. Я понимаю, что иногда мне очень хочется запитать ленту напрямую от Arduino через USB или с помощью встроенного стабилизатора платы. Ты не сможешь это сделать. В первом случае есть риск сжечь защитный диод на плате Arduino (в худшем случае — сжечь порт USB), во втором из стабилизатора на плате выйдет синий дым. Если очень хочется, есть два варианта:

  • Не подключайте больше того количества светодиодов, при котором ток потребления будет больше 500мА, то есть 500/32 ~ 16шт
  • Напишите код на основе библиотеки FastLED, где вы можете ограничить ток специальной функцией. НО! Если отсоединить вывод Din от источника сигнала, есть риск случайно включить ленту и никакие программные ограничения не спасут вас от прожига утюга.

Вы можете спросить: а как я могу затем прошить проект на магнитную ленту? Ведь судя по первой картинке так подключиться не получится! Все очень просто: если в прошивку сразу после загрузки не входит магнитная лента, просто прошейте ее. Если он включается и есть риск перегрузки по току, подключаем внешний блок питания на 5В и GND.

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

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

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

  1. На сайте генератора нажмите Добавить светодиодную ленту).
  2. Установите количество светодиодов в полосе и номер вывода Arduino, с которого они будут управляться.
  3. Затем нажмите «Добавить эффект» и выберите желаемый эффект.
  4. Установите цвет светодиодов.
  5. Нажмите «сгенерировать код Arduino», и будет сгенерирован программный код Arduino, который вы можете вставить прямо в IDE Arduino.

БИБЛИОТЕКА GYVERRGB

Мощная библиотека для легкого управления светодиодами RGB и полосами Arduino

  • 1530 значений для colorWheel
  • Работа в пространстве RGB
  • Работа в пространстве HSV
  • Настройка цвета в формате HEX
  • Установка цветовой температуры
  • 16 предустановленных цветов
  • Настройка полярности ШИМ
  • Функция плавного изменения цвета
  • Ограничение по току (рассчитано)
  • Общая регулировка яркости
  • Сохранение яркости светодиодной ленты при низком заряде аккумулятора
  • Возможность управления 6 диодами / полосками RGB с помощью Arduino (генератор ШИМ, интегрированный на ВСЕ 20 контактов atmega328)
  • Режим настройки частоты ШИМ
  • Матрица коррекции LUT
  • Минимальная коррекция сигнала ШИМ
  • Коррекция гамма-яркости ЭЛТ

Поддерживаемые платформы: все Arduino (использует стандартные функции подключения)

Подключение ленты на базе WS2812B к Arduino Uno (Nano)

На первом этапе достаточно простых плат Arduino Uno или Arduino Nano. В будущем более сложные платы можно будет использовать для построения более сложных систем. При физическом подключении адресуемой светодиодной ленты к плате Arduino необходимо соблюдать несколько условий:

  • из-за малой помехозащищенности соединительные провода линии передачи данных должны быть как можно короче (старайтесь проложить их в пределах 10 см);
  • необходимо подключить провод данных к свободному цифровому выходу платы Arduino — тогда он будет указан программно;
  • из-за большого энергопотребления нет необходимости подавать ленту с карты — для этого предусмотрены отдельные блоки питания.

Общий кабель питания лампы и Arduino должен быть подключен.

Схема подключения WS2812B.
Схема подключения ленты WS2812B.

Как подключить светодиод к плате Arduino

программы и загрузка скетча на контроллер

На этом этапе необходимо загрузить и установить бесплатную программу ARDUINO

выберите программу для вашей операционной системы.

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

Загрузите и установите драйверы для китайского USB-конвертера CH341 для Windows

Загрузите библиотеку и скетч для установки на контроллер, файлы библиотеки (папка FastLED-master) необходимо разархивировать или скопировать в папку библиотек программ ARDUINO — у меня путь к папке следующий — C: Program Files (x86) Библиотеки Arduino

Провода и разъемы

Цифровая лента имеет как минимум три нитки на конце, а не две.

  • V + (5 В или 12 В)
  • V- (земля)
  • провод управления

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

  • DI (цифровой вход) или цифровой вход в начале ленты

  • Цифровой выход DO (цифровой выход

Если такие разъемы есть, соединить ленту изнанкой не получится. Второй конец DO нужен при увеличении длины световой конструкции.

Ошибка №4

Но без таких разъемов начало и конец ленты могут сбивать с толку.

В этом случае вам будет нечем ни гореть, ни светить.

Ошибка №5

Кабели питания от контроллера слишком длинные.

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

В этом случае попробуйте скрутить их в косичку. Это помогает в некоторых ситуациях.

Лампа на светодиодной ленте с красивыми эффектами

Сразу скажу, что это не мой проект, а немного измененная версия лампы Алекса Гайвера, огромное ему спасибо!

Вот ссылка на оригинальный проект: костровая лампа.

Из изменений:

  • тело напечатано на 3D-принтере (файл для печати ниже)
  • разъем питания
  • не сенсорная кнопка, а обычная кнопка, расположенная на нижней стороне

Сделал лампу не для доработки, а в подарок, но решил добавить на сайт описание — и пригодится ли оно.

Подготовка

Поэтому для реализации проекта был использован такой же потолок «цилиндрического потолка» Леруа-Мерлена»:

Все остальное можно заказать у китайцев:

  • Ардуино Нано:
  • Лента WS2812B с адресуемой RGB-подсветкой:
  • Блок питания 5 вольт (3А, но достаточно 2А):
  • Кнопка (используется более крупная):
  • Резистор 220 Ом:
  • Разъем питания использовал это:

Использовались следующие инструменты:

  • Паяльник (пользуюсь давно, идеальный по соотношению цена / качество):
  • 3D-принтер (закрытый корпус, без проблем можно распечатать как PLA, так и ABS): ,
  • Инструмент для зачистки проводов и обжимные клещи (китайский бренд LAOA): ,

Сборка

Верхний и нижний распечатанный файл: lamp.zip.

При печати следует учитывать, что, хотя размер был скорректирован для определенного оттенка, все же могут быть небольшие расхождения в размере. Это зависит от того, на каком 3D-принтере вы печатаете, с какими настройками и из какого пластика. Поэтому для идеального прилегания плафона к распечатанным деталям может потребоваться небольшая корректировка размеров моделей и перепечатка, либо использование изоленты / файла.

Для лампы я использовал 4 отрезка светодиодной ленты по 10 светодиодов в каждой. Количество светодиодов может быть разным в зависимости от типа ленты. Главное — лента должна быть адресуемой именно WS2812B.

Распечатав дно, можно приступать к сборке. В модели есть гнездо для кнопки. Кладем туда, приклеивая на любой подходящий клей (я использовал клеевой пистолет). Сначала необходимо прервать 2 из 4 ножек, а оставшиеся 2 должны пропускать ток при нажатии (они расположены рядом друг с другом). Вставляем их в отверстие над выемкой. И вставляем разъем питания.

Что ж, давайте приклеим кусочки малярного скотча

Обратите внимание, что они должны быть склеены таким же образом, контактами DO вниз. Так как при использовании ленты нагревается, то после остальной сборки я закрепил ленту маленькими зажимами, через каждые 2 светодиода, чтобы она не оторвалась

Далее припаиваем 4 части адресной ленты: 5в, заземление и сигнальные контакты. Как именно подробно показано в видео на странице исходного проекта. Если вы только учитесь паять, не бойтесь паять адресную ленту, она все паяется очень легко. Единственный совет — я использую жидкостный поток ЛТИ-120. Это во много раз лучше, чем твердая канифоль. Лучше всего наносить кистью для лака. Он также не активен, поэтому после его использования нет необходимости чистить контакты.
Все об адресной светодиодной ленте
Фоторезистор и датчик освещенности Arduino: подключение к Arduino
Сделай сам Arduino Ambilight для ТВ всего за несколько шагов
Подключение светодиода к ардуино. Встроенный светодиод

В остальном сборка проводится по инструкции оригинального проекта, там все подробно показано, а также есть схема, что и как сваривать. Единственное отличие заключается в использовании механической кнопки, ее нужно припаять к разъемам gnd (заземление) и к любому цифровому выводу на плате.

WS2811 (WS2818) и WS2812

Сейчас популярны два типа лент: на микросхемах WS2812b и WS2811 (и на новом WS2818). В чем разница между ними? Микросхема WS2812 расположена внутри светодиода, поэтому микросхема контролирует цвет диода, а мощность ленты составляет 5 вольт. Микросхема WS2811 и WS2818 размещена отдельно и от нее одновременно питаются 3 светодиода, поэтому управлять цветом можно только сегментами по 3 диода в каждом. Но напряжение питания для таких лент 12-24 Вольт!


Устройство элемента светильника

Каждый адресный светодиод содержит минимальное количество контактов:

  • Блок питания U (VDD);
  • общий провод (GND);
  • ввод данных (DIN);
  • вывод данных (DOUT).

Это позволяет размещать элементы со встроенными эмиттерами в 4-контактных корпусах (WS2812B).


Распиновка WS2812B.

Для микросхем с внешним подключением светодиодов требуется еще как минимум три контакта для подключения светодиодов. В результате у стандартного 8-контактного корпуса есть свободная ножка, которую разработчики могут использовать для других нужд.

Распиновка WS2818 с дополнительным выводом данных.

Следовательно, разработчики микросхемы WS2811 использовали свободный выход для переключателя скорости и WS2818 для ввода резервных данных (BIN).

Протокол

Теперь, когда мы понимаем, как подключить нашу ленту к Arduino, нам нужно понять, как ею управлять, для этого в даташите есть описание протокола, которое мы сейчас рассмотрим. Каждый светодиод WS2812B имеет один вход (DIN) и один выход (DO). Выход каждого светодиода подключен к входу следующего. Сигналы должны быть отправлены на вход самого первого светодиода, это запустит схему, и данные будут передаваться от первого ко второму, со второго к третьему и т.д. Команды на светодиоды передаются пакетами 24 бита (3 байта, по одному байту на каждый цвет, сначала передается байт для зеленого, затем для красного, и заканчивается байт для синего светодиода.


Знак светодиодной ленты.

Порядок битов является наиболее значимым). Каждому пакету предшествует пауза продолжительностью 50 мкс. Пауза более 100 мкс воспринимается как конец передачи. Все биты, как 0, так и 1, имеют фиксированное время 1,25 мкс. Бит 1 кодируется импульсом 0,8 мкс, за которым следует пауза 0,45 мкс. Бит 0 кодируется импульсом 0,4 мкс, за которым следует пауза 0,85 мкс. Собственно, наглядная схема на фото ниже. Для каждого фронта также допускаются небольшие ошибки в 0–150 нс. Что ж, следует учитывать, что это нужно повторять для каждого светодиода на ленте, поэтому сделайте перерыв не менее 100 мкс. Затем вы можете повторить перенос.

Глядя на все эти цифры, становится понятно, что сделать все это с помощью стандартных функций digitalWrite, delay и подобных им просто невозможно из-за их долгой работы и неточности. Этот протокол можно реализовать только с использованием специальных библиотек, таких как CyberLib, или написав свою собственную на чистом C или, что еще хуже для текущего программиста, на Assembler. Но все не так плохо, как кажется. Светодиоды WS2812B довольно популярны в сообществе Arduino, а значит, нам не приходится сталкиваться с такими трудностями, и достаточно выбрать одно из понравившихся нам решений.

Принцип работы транзистора для плавного управления светодиодной лентой

Транзистор работает как водопроводный кран, только для электронов. Чем выше напряжение, приложенное к базе биполярного транзистора или стоку с полевым эффектом, тем меньше сопротивление в цепи эмиттер-коллектор, тем больше ток, протекающий через нагрузку.

После подключения транзистора к аналоговому порту Arduino присваиваем ему значение от 0 до 255, меняем напряжение, подаваемое на коллектор или сток, с 0 до 5В. Схема коллектор-эмиттер будет передавать от 0 до 100% опорного напряжения нагрузки.

Для управления светодиодной лентой Arduino необходимо выбрать подходящий силовой транзистор. Рабочий ток для питания светодиодного измерителя — 300-500мА, для этих целей подойдет биполярный силовой транзистор. Для большей длины требуется полевой транзистор.

Схема подключения светодиодной ленты Arduino:

Как подключить светодиодную ленту к Ардуино

Для урока нам потребуются следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • источник постоянного тока 12 В;
  • светодиодная лента;
  • полевые / биполярные транзисторы;
  • реле Arduino на 12 Вольт;
  • датчик движения;
  • макетная доска;
  • резисторы;
  • темы «папа-папа», «папа-мама».

На фото мы представили первый вариант подключения светодиодной ленты к Arduino — через реле, а дальше рассмотрим полевой транзистор. Следующие первый и второй эскизы можно применить к двум диаграммам. Третий пример с мягким включением / демпфированием можно использовать только в схеме с одним транзистором. После сборки схемы загрузите следующие примеры программ на плату Arduino.

Программа для светодиодной ленты Ардуино

void setup () {pinMode (12, ВЫХОД); // объявляем вывод 12 как вывод} void loop () {digitalWrite (12, HIGH); задержка (1000); digitalWrite delay (12, LOW) (1000); }

Пояснения к коду:

  1. Вы можете использовать цифровой контакт, чтобы зажечь светодиодную ленту через реле;
  2. Код повторяет программу, заставляя светодиод на Arduino мигать;
  3. В этом примере датчик движения нельзя подключить к Arduino.

Скетч для светодиодной ленты с датчиком движения

долгое время счета без знака; байт w = 1; #define LED 12 // назначить порт для реле #define PIR 2 // назначить порт для датчика void setup () {pinMode (LED, OUTPUT); // объявляем вывод светодиода как выходной pinMode (PIR, INPUT); // объявляем вывод PIR как вход} void loop () {delay (200); // если есть движение, включаем свет if (digitalRead (PIR) == HIGH) {digitalWrite (LED, HIGH); w = 1; } // если движения нет, активируем счетчик if (digitalRead (PIR) == LOW) {counttime = millis (); w = 0; в то время как (ш == 0) {задержка (200); // если нет движения в течение 10 секунд, выключить свет и выйти из цикла if (millis () — counttime> 10000) {digitalWrite (LED, LOW); w = 1; } // если движение обнаружено в течение 10 секунд. — включить свет и выйти из цикла if (digitalRead (PIR) == HIGH) {digitalWrite (LED, HIGH); w = 1; } } } }

Пояснения к коду:

  1. Вы можете ввести любое значение в выражении в миллисекундах, при котором свет не погаснет;
  2. Задержка может повлиять на скорость отклика сенсора, но может немного истощить процессор.
Оцените статью
Блог про светодиоды