Управление адресной светодиодной лентой с помощью Ардуино

Материал из robbo
Перейти к навигации Перейти к поиску

Управление адресной светодиодной лентой с помощью Ардуино


Автор проекта

Вишневецкий Ярослав Александрович

Категория участника

  • индивидуальный

Возрастная группа участника

  • юношеский возраст (15-18 лет).

Дисциплина, в которую подается конкурсный проект

  • РОББО Мейкер. В этой дисциплине участники создают, собирают и программируют любые робототехнические, электронные, мехатронные или механические устройства, функционирующие на базе микроконтроллеров линейки Arduino или ESP (в случае необходимости контроллера). Приветствуется использование в устройстве компонентов из набора “РОББО Схемотехника”, “Знаток”, “Механик”. Для корпусирования изделия приветствуется использование 3D-прототипирования и 3D-печати

Номинация, в которую подается конкурсный проект

  • Творческий проект

Описание конкурсного проекта

В настоящее время набирают популярность универсальные микроконтроллеры. Их изучение имеет большие тенденции и позволяет обрести навыки и знания в области электроники и робототехники, помогает самоопределиться профессионально.
Ярким представителем микроконтроллеров такого вида является Arduino. Данный микроконтроллер является достаточно многофункциональным и простым в использовании. Для программирования Arduino используется форк языка C (достаточно востребованного на данный момент).
Светодиодные ленты являются простым, удобным и стильным способом освещения помещений, а также представляют из себя отличное декоративное решение.
Адресные светодиодные ленты предоставляют пользователю гораздо более широкий спектр возможностей ввиду своего устройства: в отличие от обычных светодиодных лент они позволяют управлять каждым светодиодом на себе по отдельности, что означает возможность их обширной кастомизации.
Для разработки проекта используется адресная светодиодная лента типа WS2812, являющаяся на данный момент самым популярным подвидом данного «семейства» светодиодных лент.
Данная адресная светодиодная лента имеет 3 контакта для подключения, причем 2 из них отвечают за подключение питания размером в ~5 В, а последний управляет лентой. К слову, слишком маленькое напряжение подавать на ленту нельзя, потому что она мигом улетит на небеса, так как начнет использовать информационный канал в качестве еще одного запитывателя.
Обычная светодиодная лента включается сразу после подачи питания, адресная же переходит в активное состояние только после получения команды от внешнего контроллера.


В качестве внешнего контроллера (либо же пульта управления) будет использоваться джойстик. Он многофункционален и позволяет регулировать сразу несколько необходимых значений благодаря возможности вращения по разным осям (ну и благодаря возможности нажатия, само собой).
Выходы по осям X и Y подсоединил к аналоговым входам на плате, выход от кнопки - ко второму цифровому входу, а контакты 5V и GND – к соответствующим им контактам на плате.
Затем подключил адресную светодиодную ленту. Контакты 5V и GND снова подключил к соответствующим им контактам на плате, а разъем DIN (информационный вход) поставил на 6 цифровой вход.
После сборки устройства, начал составлять управляющий код для Arduino. В коде настроил ленту и определил некоторые аспекты работы микроконтроллера (количество светодиодов, яркость по умолчанию, входы и прочее).
Код для каждого режима подсветки (всего таких режимов 5) поместил в отдельную функцию для удобства использования.
В коде также были реализованы функции регулировки яркости подсветки, настройки ее скорости (где это возможно) и переключения режимов подсветки.
Два первых пункта достаточно просты - они определяются считыванием значений с джойстика по 2 осям, а затем после нескольких преобразований сразу подаются на ленту.


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

Ссылка на скачивание конкурсного проекта

Активная ссылка на файл