Оглавление:

Программируемый светодиодный секвенсор RGB (с использованием Arduino и Adafruit Trellis): 7 шагов (с изображениями)
Программируемый светодиодный секвенсор RGB (с использованием Arduino и Adafruit Trellis): 7 шагов (с изображениями)

Видео: Программируемый светодиодный секвенсор RGB (с использованием Arduino и Adafruit Trellis): 7 шагов (с изображениями)

Видео: Программируемый светодиодный секвенсор RGB (с использованием Arduino и Adafruit Trellis): 7 шагов (с изображениями)
Видео: Адресная светодиодная лента подсветка 2024, Ноябрь
Anonim
Image
Image
Подключите плату драйвера
Подключите плату драйвера

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

Я собираюсь показать вам, как создать этот простой программируемый контроллер светодиодной ленты RGB, используя Arduino Uno (или Nano), решетку Adafruit и несколько других деталей.

Решетка Adafruit - одна из моих любимых новых игрушек от леди Ады и ее команды. Во-первых, это всего лишь 9,95 доллара за плату и еще 4,95 доллара за кнопочную панель из силиконового эластомера (цены на момент написания статьи). Это очень много для 16-кнопочной матрицы 4x4 со светодиодной подсветкой. Он не поставляется с установленными светодиодами, вам необходимо их поставить, но это дает вам гибкость в выборе нужных цветов (и снижает стоимость и сложность по сравнению со встроенными адресными светодиодами). Чтобы создать такой проект, как мой, вам понадобится несколько 3-миллиметровых светодиодов. Я использовал 2 красных, 2 зеленых, 2 синих, 4 желтых и 6 белых.

Trellis использует I2C для связи, поэтому для управления 16 кнопками и 16 светодиодами требуется только два контакта ввода / вывода (данные и часы).

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

В драйвере используются три полевых МОП-транзистора IRLB8721 и три резистора. И, конечно же, вам понадобится светодиодная лента для движения; Подойдет практически любая простая светодиодная лента 12 В RGB. Это простые светодиоды, такие как SMD 5050, а не причудливые индивидуально-адресуемые (без NeoPixels и т. Д.) - это другой проект! Вам также понадобится блок питания 12 В, достаточно большой, чтобы управлять количеством светодиодов, которое вы собираетесь использовать.

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

  • Один Arduino Uno или Nano (эти инструкции предназначены для Uno с установленными женскими заголовками, но Nano на макете работает нормально) (Adafruit, Amazon, Mouser);
  • Одна доска Adafruit Trellis и силиконовая кнопочная панель (Adafruit);
  • Три N-канальных МОП-транзистора IRLB8721 (Adafruit, Amazon, Mouser);
  • Три резистора 1K (Amazon, Mouser);
  • Три резистора 220 Ом (Amazon, Mouser)
  • Одна небольшая прототипная плата (моя первая была размером 1/4 - выбирайте любой размер, с которым вам удобно работать) (Adafruit, Amazon);
  • Светодиодная лента 12 В RGB (SMD 5050) (Adafruit, Amazon);
  • Источник питания 12 В - выберите мощность, соответствующую количеству светодиодов, которые вы планируете использовать.

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

Давайте начнем…

Шаг 1: Подключите плату драйвера

Подключите плату драйвера
Подключите плату драйвера

Вот схема драйвера светодиода. Все очень просто. Он использует N-канальный MOSFET IRBLxxx для каждого канала на светодиодной полосе. Светодиодная лента является общим анодом, что означает, что на светодиодную ленту подается +12 В, а красный, зеленый и синий светодиодные каналы управляются путем заземления на соответствующем соединении с полосой. Итак, мы подключим сток полевых МОП-транзисторов к цветовым каналам светодиода, а исток - к земле. Затворы будут подключены к цифровым выходам Arduino, а резисторы обеспечивают понижение, которое гарантирует, что каждый полевой МОП-транзистор будет полностью включаться или выключаться по мере необходимости.

Arduino предлагает широтно-импульсную модуляцию на некоторых своих цифровых выходах, поэтому мы будем использовать эти выходы (в частности, D9, D10, D11), чтобы можно было контролировать интенсивность каждого цветового канала.

Если вы не знаете, что и где подключать на полевых МОП-транзисторах IRLB8721, возьмите один в руку лицевой стороной к себе, как показано на фотографии выше. Контакт слева (контакт 1) является затвором и будет подключаться к цифровому выходному контакту Arduino и резистору (другой конец резистора должен подключаться к земле). Контакт в центре (контакт 2) является стоком и подключается к цветному каналу светодиодной ленты. Контакт справа (контакт 3) является источником и подключен к земле. Убедитесь, что вы отслеживаете, какой транзистор подключается к цветному каналу светодиода.

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

Вы также можете сделать это на макете. Это, безусловно, будет быстрее, чем паять все на макетной плате, но менее надежно.

После подключения драйвера подключите входы затвора MOSFET к цифровым выходным контактам Arduino: D9 для зеленого канала, D10 для красного канала и D11 для синего канала. Также подключите светодиодную ленту к своей макетной плате.

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

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

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

Шаг 2. Поместите светодиоды на решетку

Поместите светодиоды на решетку
Поместите светодиоды на решетку

На плате Trellis есть пустые площадки для 3-миллиметровых светодиодов, которые нам нужно заполнить. Внимательно обратите внимание на символы на контактных площадках - рядом с контактной площадкой есть очень тонкий знак «+», обозначающий сторону анода. Если вы держите плату так, чтобы текст был направлен вверх, сверху и снизу платы также есть обозначения, указывающие на то, что аноды светодиодов находятся слева.

Припаяйте 3-миллиметровые светодиоды к плате. Глядя на переднюю часть платы, текст справа вверху, верхний левый переключатель / положение светодиода - №1, верхний правый - №4, нижний левый - №13, а нижний правый - №16. Вот цвета, которые я использовал в каждой позиции (и есть причина, почему я советую вам следовать моему шаблону, по крайней мере, для двух верхних строк):

1 - красный2 - зеленый3 - синий4 - белый5 - красный6 - зеленый7 - синий8 - белый9 - белый10 - белый11 - желтый12 - желтый13 - белый14 - белый15 - желтый16 - желтый

CC Attribution: изображение Trellis выше принадлежит Adafruit и используется в соответствии с лицензией Creative Commons - Attribution / ShareAlike.

Шаг 3: подключите решетку к Arduino

Подключите решетку к Arduino
Подключите решетку к Arduino

У Trellis пять монтажных площадок, но в этом проекте используются только четыре. Trellis нужны SDA и SCL для связи с Arduino (с использованием I2C), а также 5 В и GND для питания. Последний контакт INT не используется. Контактные площадки Trellis появляются на всех четырех краях доски. Вы можете использовать любой набор прокладок по своему желанию.

Припаяйте сплошной соединительный провод к контактным площадкам 5V, GND, SDA и SCL. Затем подключите провод 5V к контакту 5V на Arduino, GND к контакту заземления, провод SDA к A4 и провод SCL к A5.

Затем мы собираемся включить Arduino и загрузить в него скетч. Пришло время положить силиконовую кнопочную панель на доску Trellis. Он просто сидит на доске (обратите внимание на «выступы» в нижней части площадки, которые входят в отверстия на доске), поэтому вы можете использовать пару кусков ленты, чтобы прикрепить края площадки к доске для Теперь.

CC Attribution: изображение проводки Trellis выше является обрезанной версией этого изображения, созданной Adafruit, и используется в соответствии с лицензией Creative Commons - Attribution / ShareAlike.

Шаг 4. Загрузите эскиз проекта и загрузите его в Arduino

Вы можете скачать скетч из моего репозитория Github для этого проекта.

Как только вы его получите, откройте его в Arduino IDE, подключите Arduino с помощью USB-кабеля и загрузите эскиз в Arduino.

Если эскиз загружен и решетка правильно подключена, любая из кнопок на решетке должна быстро мигнуть три раза при нажатии. Это признак того, что вы нажали неверную кнопку, потому что система переходит в состояние «выключено», поэтому единственное допустимое нажатие клавиши - это то, которое требуется для ее включения.

Чтобы включить систему, нажмите и удерживайте нижнюю левую кнопку (# 13) не менее одной секунды. Когда вы отпустите кнопку, все светодиоды должны на короткое время загореться, а затем два нижних ряда погаснут, за исключением №13 (нижний левый). Теперь система находится во включенном состоянии и в состоянии ожидания.

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

  1. Питание светодиода подключено и горит;
  2. Полевые МОП-транзисторы платы драйвера подключены правильно. Если вы используете тот же IRLB8721, что и я, проверьте:

    • Входы сигналов платы драйвера (затворы MOSFET, IRLB8721 контакт 1) подключены к Arduino D9 = зеленый, D10 = красный, D11 = синий (см. Примечание ниже);
    • Светодиодная лента подключена к плате драйвера, а цветовые каналы светодиодов подключены к стокам MOSFET (IRLB8721 контакт 2);
    • Контакты истока полевого МОП-транзистора (IRLB8721 контакт 3) подключены к земле на плате драйвера;
  3. Заземление между платой драйвера и контактом заземления Arduino.

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

ПРИМЕЧАНИЕ. Если ваш контроллер работает, но кнопки интенсивности не контролируют правильные цвета, не волнуйтесь и не меняйте проводку! Просто войдите в Sketch в Arduino IDE и измените определения контактов RED, GREEN и BLUE в верхней части файла.

Шаг 5: Основные функции управления

Основные функции управления
Основные функции управления

Теперь, когда система включена, мы можем поиграть с некоторыми кнопками и заставить ее работать.

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

Два нижних ряда используются для воспроизведения предустановленных паттернов. Эти шаблоны хранятся в EEPROM Arduino. Когда скетч запускается в первый раз, он видит, что в EEPROM нет сохраненных шаблонов, и сохраняет набор шаблонов по умолчанию. После этого вы можете изменить эти шаблоны, и ваши изменения сохранятся в EEPROM Arduino, заменив предустановленный шаблон. Это гарантирует, что ваши шаблоны выдержат отключение питания. Функция редактирования описана в следующем шаге.

А пока быстро нажмите любую из кнопок предварительной настройки (восемь кнопок в двух нижних рядах), чтобы запустить шаблон, сохраненный для этой кнопки. Кнопка мигает во время выполнения шаблона. Чтобы остановить рисунок, еще раз коротко нажмите кнопку рисунка. Во время выполнения рисунка белые кнопки вверх / вниз в верхних рядах можно использовать для изменения скорости рисунка.

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

Чтобы выключить систему, нажмите и удерживайте нижнюю левую кнопку (# 13) в течение одной или нескольких секунд, а затем отпустите. Решетка и светодиодная лента погаснут.

Шаг 6: Редактирование рисунков на клавиатуре

Редактирование рисунков на клавиатуре
Редактирование рисунков на клавиатуре

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

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

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

После выхода из редактирования паттерна паттерн воспроизводится автоматически.

Вот и все! Теперь у вас есть контроллер светодиодов RGB, который будет последовательность шаблонов, которые вы можете запрограммировать с помощью клавиатуры. Вы можете остановиться на этом или, если вы хотите создать более формальную версию этого проекта, продолжайте выполнять остальные шаги.

Шаг 7. Лучшее оборудование: экран и корпус драйвера светодиода RGB

Image
Image
Лучшее оборудование: экран драйвера светодиодов RGB и корпус
Лучшее оборудование: экран драйвера светодиодов RGB и корпус
Лучшее оборудование: экран драйвера светодиодов RGB и корпус
Лучшее оборудование: экран драйвера светодиодов RGB и корпус

Когда у меня был рабочий прототип, я знал, что не могу оставлять пустую Arduino и прототипную плату на столах моих детей в качестве постоянного решения. Мне нужен был корпус для проекта. Я также решил, что сделаю лучшую плату для драйверов, и подумал, что это прекрасная возможность сделать свой собственный щит.

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

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

Я решил, что питание для проекта должно идти от щита. 12 В, подаваемое на экран, питает как светодиодную ленту, так и Arduino. Питание Arduino обеспечивается путем подключения входа питания к контакту VIN Arduino, который является двунаправленным (вы можете подавать питание на Arduino на этом контакте, или если вы подключаете питание к Arduino в другом месте, он предоставит вам прилагаемый питание на этом контакте). Защитный диод D1 предотвращает попытки любого источника питания, подключенного напрямую к Arduino (например, USB), запитать светодиоды.

Почему бы не использовать разъем питания Arduino и просто подключить к нему 12 В? Хотя я мог подать 12 В на разъем питания Arduino и использовать вывод VIN, чтобы получить эту мощность для экрана, я был обеспокоен тем, что диод Arduino D1 и его следы не будут соответствовать высоким токам, которые возможны при возбуждении светодиода. полоски. Итак, я решил, что мой щит возьмет на себя входную мощность и подает питание на Arduino. Мне также нужно было 5 В для Trellis, но встроенная система стабилизации питания Arduino подает 5 В на несколько контактов, поэтому я использовал один из них для Решетка. Это спасло меня от установки схемы регулятора на щит.

Затем я выложил печатную плату. Я использовал некоторые ресурсы, которые я нашел, чтобы получить точные размеры для размещения контактов в соответствии с заголовками на Arduino Uno. Немного стараний, и все получилось с первой попытки. Сама схема щита не так уж и сложна, так что у меня было много места. Я проложил широкие дорожки для светодиодных нагрузок, так что пропускной способности по току для моих нужд хватит. Я установил полевые МОП-транзисторы там, где их можно было установить горизонтально, с радиаторами или без них. До сих пор мне не требовались радиаторы для того количества светодиодов, которое я использовал, но при необходимости место есть.

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

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

Затем я начал работать над корпусом. Используя Fusion 360, я разработал простой корпус для трех плат (Arduino Uno, shield и Trellis). Отверстия в корпусе позволяют подключаться к USB-порту Arduino и, конечно же, получить доступ к светодиодной ленте и разъему питания для экрана. Разъем питания Arduino закрыт корпусом, чтобы гарантировать, что он не используется. После пары прототипов для пробной примерки я наконец получил дизайн, которым я остался доволен. Я отправил файлы STL для корпуса в Thingiverse.

В будущем я сделаю версию платы, к которой можно будет подключить Nano напрямую, что сделает проект еще более компактным. До тех пор вы также можете использовать адаптер Nano to Uno Shield, подобный этому.

Если вы собираетесь делать щит, вот что вам понадобится в дополнение к частям, упомянутым в шаге 1:

  • Печатная плата RGB LED Driver Shield (от ExpressPCB или других; вы можете загрузить файлы для этого проекта из моего репозитория Github);
  • Диод 1N4002;
  • Радиальный электролитический конденсатор на 100 мкФ 25 В (используйте 220 мкФ или 470 мкФ при большой нагрузке на светодиоды);
  • Разъем питания, PJ202-AH (модель с номиналом 5 А).

Следующие части не являются обязательными:

  • Светодиод 3мм - любой цвет, для контрольной лампы (можно не устанавливать)
  • Резистор 1500 Ом - требуется только при использовании светодиодной контрольной лампы

Рекомендуемые: