Светодиодный диско-пол на arduino

Содержание
  1. Управление светодиодной лентой при помощи Аrduino
  2. Принцип управления нагрузкой через Ардуино
  3. Синтаксис команд
  4. Способы управления светодиодами через Ардуино
  5. Виды  транзисторных ключей
  6. Принцип работы транзистора для плавного управления светодиодной лентой
  7. Управление RGB лентой с помощью Andurino
  8. Скетч управления яркостью светодиодной ленты Arduino
  9. Модули управления Ардуино
  10. Цветомузыка Lumazoid на Arduino и WS2812B светодиодах — DRIVE2
  11. Светодиодный диско пол
  12. DIY Arduino LED 25B C7K 0 A2 8 8 C 0 8 873 B 2 5 85 – Скачать mp3 бесплатно
  13. Ночник с управлением жестами, на базе адресных светодиодов
  14. Видео:
  15. Нам понадобится:
  16. Описание работы ночника:
  17. Схема сборки:
  18. Arduino / Piranha UNO:
  19. Batery Shield:
  20. GSM/GPRS Shield:
  21. Датчик жестов:
  22. Адресные светодиоды:
  23. Код программы (скетч):
  24. Управление светодиодной RGB лентой через arduino
  25. Ардуино – принцип действия
  26. Принцип управления нагрузкой через Ардуино
  27. Подключение светодиодной ленты к Ардуино
  28. Через реле
  29. С помощью биполярного транзистора
  30. С помощью полевого транзистора
  31. С помощью плат расширения
  32. Пример программы
  33. Видеоинструкция
  34. (Обновлена) Подключение RGB светодиодной ленты к Arduino (LED 3528)
  35. Предисловие 
  36. Вступление
  37. Подключение
  38. Скетч
  39. Видео
  40. Дополнение
  41. Ардуино: управление светодиодом

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

Светодиодный диско-пол на arduino

Ардуино идеально подходит для управления любыми устройствами. Микропроцессор ATmega с помощью программы-скетча манипулирует большим количеством дискретных выводов, аналогово-цифровых входов/выводов и ШИМ-контроллерами.

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

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

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

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

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

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

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

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

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

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

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

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

Виды  транзисторных ключей

  • Биполярный;
  • Полевой;
  • Составной (сборка Дарлингтона).

При подаче высокого логического уровня (digitalWrite(12, HIGH);) через порт вывода  на базу транзистора через цепочку коллектор-эмиттер потечет опорное напряжение на нагрузку. Таким образом можно включать и отключать светодиод.

Аналогичным образом работает и полевой транзистор, но поскольку у него вместо «базы» сток, который управляется не током, а напряжением, ограничительный резистор в этой схеме необязателен.

Биполярный вид не позволяет регулировать мощные нагрузки. Ток через него ограничен на уровне 0,1-0,3А.

Полевые транзисторы работают с более мощными нагрузками с током до 2А. Для ещё более мощной нагрузки используют полевые транзисторы Mosfet с током до 9А и напряжением до 60В.

Вместо полевых можно использовать сборку Дарлингтона из биполярных транзисторов на микросхемах ULN2003, ULN2803.

Микросхема ULN2003 и принципиальная схема электронного коммутатора напряжения:

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

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

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

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

Схема подключения LED ленты к ардуино:

Управление 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);
}

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

Модули управления Ардуино

Для создания полноценного драйвера управления светодиодной лентой можно использовать модули-датчики.

ИК-управление

Модуль позволяет запрограммировать до 20 команд.

Радиус сигнала около 8м.

Цена комплекта  6 у.е.

По радиоканалу

Четырёхканальный блок с радиусом действия до 100м

Цена комплекта  8 у.е.

Позволяет включать освещение еще при приближении к квартире.

Бесконтактное

Датчик расстояния способен по движению руки увеличивать и уменьшать яркость освещения.

Радиус действия до 5м.

Цена модуля 0,3 у.е.

Оцените, пожалуйста, статью. Мы старались:) (1

Цветомузыка Lumazoid на Arduino и WS2812B светодиодах — DRIVE2

Светодиодный диско-пол на arduino

Решил повторить цветомузыку от Nootropic design USA и chipdip.ru
Пока едут светодиоды и arduino NANO — жду, а тем временем развел платку.

Плату развел под arduino NANO V3.0 ATmega328P

Первое видео снимал сам — первый день тестирования после сборки.

Скетч и библиотека БПФ
Скетч
Библиотека

Исходник от авторов Nootropic design — Lumazoid
Страница авторов — lumazoid из Миннеаполиса USA

Работает с любыми светодиодами WS2812 / WS2812B, такими как NeoPixel и другимиПоддерживает 60, 120 или 180 светодиодных полос.

(видео ниже показано 2m 120 светодиодной полосы)8 различных шаблонов + случайный режим, который плавно переходит между шаблонами3 разных цветовых режима с контролем параметровКонтроль чувствительности и яркостиРегулируемый частотный отклик, поэтому вы можете выбрать визуализацию всех частотных диапазонов или только басов и биений

Программируемый с Arduino

Технические подробности
Мощность

Плата Lumazoid требует источника питания 5 В постоянного тока (имеется в нашем магазине). Источник питания должен быть способен подавать ток 2А при использовании люмазоидов с 60 или 120 светодиодами (например, полоса 1 м или 2 м с 60 светодиодами на метр).

Прошивка Lumazoid тщательно разработана для создания менее 2 А тока при использовании с 60 или 120 светодиодами. Если вы используете Lumazoid с полосой 180 LED, вам понадобится источник питания, который может обеспечить ток не менее 3A, но вы, вероятно, уже имеете такой источник питания, если у вас есть много светодиодов.

В настоящее время мы продаем только блоки питания 2А.

Если вы разрабатываете и кодируете свои собственные визуализации для Lumazoid, убедитесь, что вы учитываете текущие требования к визуализации.

Совместимость с светодиодной лентой
Lumazoid предназначен для светодиодных полосок WS2812 или WS2812B. Они легко доступны у многих поставщиков (включая нас) и иногда называются «NeoPixel», который является брендом Adafruit для полос WS2812B.

Иногда светодиодные полосы называются «WS2811», но имя WS2811 относится только к чипу драйвера, а не к интегрированной микросхеме + светодиод.

Если у вас есть светодиодная полоса, которую кто-то назвал «WS2811», и у нее есть 3 провода (5V, земля и данные), тогда он должен работать.

Lumazoid НЕ работает с другими типами светодиодных полосок на основе различных технологий, таких как светодиоды APA102 и APA104 (например, полосы Adafruit «DotStar»). Lumazoid работает только с 3-проводными светодиодными полосками на основе технологии WS2812 или WS2812B.

ВАЖНО : Всегда подключайте светодиодную ленту перед подключением питания. Не подключайте светодиодную ленту к питающей плате.

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

По умолчанию Lumazoid сконфигурирован для использования 120 светодиодных полосок (например, полоса 2 м с 60 светодиодами на метр) и установлен для максимальной яркости.

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

Яркость : удерживайте кнопку цвета при подключении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки параметров измените яркость. По завершении нажмите кнопку цвета еще раз, и ваша конфигурация будет сохранена в памяти. Это будет запомнено, даже если питание отключено.

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

60 светодиодов120 светодиодов180 светодиодов

По завершении нажмите кнопку шаблона еще раз, и ваша конфигурация будет сохранена в памяти. Это будет запомнено, даже если питание отключено.

Регулировка громкости и чувствительности
Lumazoid лучше всего работает, если громкость вашего музыкального устройства установлена ​​на высокий уровень. Меньшим устройствам, таким как телефоны и планшеты, необходимо будет увеличить громкость до самого высокого уровня.

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

Просто экспериментируйте с устройством, чтобы Lumazoid отвечал на музыку так, как вам хочется.

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

Шаблоны: Люмазоид имеет различные шаблоны отображения для визуализации пиков аудиосигнала (высокой амплитуды), обнаруженных в музыке. Lumazoid похож на графический эквалайзер, который показывает силу разных полос частот, но Lumazoid отображает информацию гораздо более интересным способом.

Существует 8 различных шаблонов для отображения звуковых пиков в музыке. Нажмите кнопку шаблона, чтобы просмотреть их. Белый светодиод указывает, какой шаблон выбран. 9-й шаблон — это «случайный» режим, который обозначается красным светодиодом.

Этот режим изменяет шаблон случайным образом со случайным интервалом времени. 8 моделей:

Алгоритмы

Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.

Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.

Световая полоса: в пиках освещается вся полоса.

Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.

Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.

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

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

Цветовые схемы

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

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

Рекомендую установить ручку в средину.

Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.

Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.

Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться.

Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.

Некоторые рекомендуемые настройкиDance Party или Dancy Party 2, цветной режим = 1 (двухцветная схема), ручка параметра установлена ​​на полпути, частотная характеристика установлена ​​на более низкие 3 полосы частот. Это создает двухцветные схемы, которые меняются со временем.

Dance Party или Dancy Party 2, цветной режим = 3 (частотные цвета), частотная характеристика, включающая все диапазоны частот. Этот параметр позволяет вам реально визуализировать различные компоненты музыки. Бит будет красным / оранжевым, вокал голубой / синий / пурпурный и т. Д.

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

_______________________________

Дополнительно:Уровень входного сигнал у визуализатора около 1,8Вконденсатор С2 Минусом к источнику звука, плюсом к Ардуино, т.к там на делителе +2.5вМожет кому будет будет полезно. Что бы Atmega328P нормально работал, вывод номер 21 (AREF) надо подключить через конденсатор 0,1 мкФ на землю.

Подключение микрофонного и линейно входа:

Микрофонный, он-же линейный вход на уcилителе TDA1308. Дальше через переменник и коммутируемый миниджек на усилитель мощности PAM8403 и через конденсаторную развязку дальше в схему. Усилки на Алиэкспресе копейки. В итоге имеем линейный вход (он-же микрофонный) и вход от любого источника с наушников. Миниджек дублируем для дальнейшего прохождения сигнала, например на акустический усилитель.

Указать свое количество светодиодов:

Светодиодный диско пол

Светодиодный диско-пол на arduino

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

Стоимость изготовления светодиодного пола:
– от 40 000 руб/м2. Возможно изготовление любых форм, размеров и сложности конструкции.

ОТПРАВИТЬ ЗАПРОС на расчет стоимости.

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

Функциональность светодинамического пола с подсветкой дополняет его надежная конструкция и простота монтажа. В основе – прочный двойной металлический каркас из легких профилей. Благодаря модульной конструкции его легко адаптировать под помещение любой площади и планировки.

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

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

Все линейки объединены в единую сеть, управление которой осуществляется с компьютера (при условии наличие специального ПО) или светового пульта через протокол DMX-512.

Также возможно управление работой пола со светодиодной подсветкой с применением пульта ДУ.

Доступны самые разнообразные световые эффекты: стробоскоп, мигание, переливание, затухание и т.д., а также их комбинации. Эффекты могут “распространяться” как на всю конструкцию светового диско пола, так и только на отдельные ее части.

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

Работа led пола может контролироваться в ручном режиме или осуществляться с использованием сохраненных ранее пресетов.

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

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

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

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

DIY Arduino LED 25B C7K 0 A2 8 8 C 0 8 873 B 2 5 85 – Скачать mp3 бесплатно

Светодиодный диско-пол на arduino

Leon Bridges – If It Feels Good (Then It Must Be) (Official Video)

Marshmello ft. Bastille – Happier (Official Music Video)

SOJA – I Found You (Official Video)

Kevin Gates – Adding Up [Official Audio]

Weezer – Africa (starring Weird Al Yankovic)

Avril Lavigne – Head Above Water (Lyric Video)

Grace Carter – Why Her Not Me

Imagine Dragons – Zero (Lyrics)

Justice – Love S.O.S. (WWW) (Official Music Video)

Blac Youngsta – Drive Thru

Passenger | Ghost Town (Official Video)

KT Tunstall – The River

Rita Ora – Let You Love Me [Official Video]

dodie – Human

Disturbed – A Reason To Fight [Official Music Video]

Machine Gun Kelly – LATELY

The Chainsmokers – This Feeling (Lyric Video) ft. Kelsea Ballerini

Brett Eldredge – “Love Someone” (The Edgar Cut)

Mumford & Sons – Guiding Light (Lyric Video)

Marshmello – Stars (Official Music Video)

Noah Cyrus, LP – Punches (Official Audio)

Kane Brown – Homesick

Jonathan McReynolds – God Is Good

Lana Del Rey – Venice Bitch

2 Chainz – Bigger Than You ft. Drake, Quavo

Logic – Everybody Dies (Official Video)

Ella Mai – Trip

Jason Mraz – More Than Friends (feat. Meghan Trainor) [Official Video]

Lukas Graham – Love Someone [OFFICIAL LYRIC VIDEO]

Eminem – Lucky You ft. Joyner Lucas

Mariah Carey – GTFO

Jaden Smith – The Passion

Brett Young – Here Tonight

5 Seconds Of Summer – Valentine

Gorillaz – Tranz (Official Video)

Lennon Stella // “Bad”

Here I Am (from the Dumplin' Original Motion Picture Soundtrack [Audio])

Lana Del Rey – Mariners Apartment Complex

Sarah Close – Crazy Kind (Lyric Video)

The Chainsmokers & NGHTMRE – Save Yourself (Official Video)

Eric Church – Monsters (Official Lyric Video)

Gucci Mane, Bruno Mars, Kodak Black – Wake Up In The Sky [Official Audio]

Mozzy – Thugz Mansion (Official Video) ft. Ty Dolla $ign, YG

Major Lazer – All My Life (feat. Burna Boy) (Official Music Video)

Hozier – Nina Cried Power ft. Mavis Staples

Kevin Gates – Money Long [Official Music Video]

Niall Horan – Finally Free (From “Smallfoot”) (Official Video)

Joji – SLOW DANCING IN THE DARK

G-Eazy – Rewind (Official Video) ft. Anthony Russo

Black Eyed Peas – BIG LOVE (Audio)

Ночник с управлением жестами, на базе адресных светодиодов

Светодиодный диско-пол на arduino

В этом уроке мы создадим ночник с управлением адресными светодиодами через датчик жестов.

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

Видео:

Нам понадобится:

Для реализации проекта нам необходимо установить библиотеки:

  • SparkFun_APDS9960 — для работы с датчиком движений;
  • iarduino_NeoPixel — для работы с адресными светодиодами NeoPixel;
  • Wire — библиотека входит в базовый набор Arduino IDE и не требует установки;

О том, как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki – Установка библиотек в Arduino IDE.

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

После подачи питания ночник готов к работе.

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

  • Перелив всеми цветами радуги;
  • Случайное включение случайным цветом;
  • Смена одного цвета на другой;
  • Имитация пламени свечи;
  • Один цвет на выбор по порядку(красный, зелёный, синий, жёлтый, фиолетовый, голубой, белый);

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

Для того, чтобы изменить уровень яркости ночника достаточно приблизить руку к датчику и плавно её отдалить – ночник перейдёт в режим настройки:

  • При входе в режим настройки яркости ночник однократно моргнёт светодиодами белого цвета, после чего в течении времени, заданном в переменной waiting_time, будет принимать команды настройки яркости;
  • Приближая или отдаляя руку к/от датчика яркость будет плавно меняться от меньшего (приближая) к большему (отдаляя);
  • По истечении времени ночник вновь однократно моргнёт светодиодами белого цвета и выйдет из режима настройки яркости;

Для того, чтобы выключить ночник, достаточно поднести руку над датчиком на расстоянии 10-15 см и плавно её приблизить. После этого ночник выключится.

Схема сборки:

Arduino / Piranha UNO:

Batery Shield:

Установите Battery Shield на Arduino / Piranha UNO:
Во время установки Battery Shield должен быть в выключенном состоянии.

GSM/GPRS Shield:

На Battery Shield установите Trema Shield:

Датчик жестов:

Подключите Trema-модуль Датчик жестов к Trema Shield:

Адресные светодиоды:

Подключите адресные светодиоды NeoPixel к Trema Shield:

Все используемые в уроке Trema-модули NeoPixel соединены друг c другом, а первый модуль можно подключить к любому выводу Arduino. Номер вывода указывается в скетче (в примере используется вывод D10). Чем больше модулей в цепи, тем больше тока она потребляет, по этому в схеме используется стабилизированный источник питания Battery Shield на 5В постоянного тока.

Код программы (скетч):

// Подключаем библиотеки:
#include // Для работы с шиной I2C
#include // Для работы с датчиком APDS-9960
#include // Подключаем библиотеку iarduino_NeoPixel для работы со светодиодами NeoPixel
uint8_t neo_pin = 10; // Вывод, к которому подключены модули NeoPixel
uint16_t modul_number = 8; // Количество модулей
iarduino_NeoPixel led(neo_pin, modul_number*4 ); // Объявляем объект LED указывая (№ вывода Arduino к которому подключён модуль NeoPixel, количество используемых светодиодов)
SparkFun_APDS9960 apds = SparkFun_APDS9960(); // Определяем объект apds, экземпляр класса SparkFun_APDS9960
// Объявляем переменные:
uint8_t j; // Объявляем переменную для хранения значения сдвига спектра цветов для всех светодиодов (от 0 до 255)
uint8_t k; // Объявляем переменную для хранения положения сдвига спектра цвета для каждого светодиода на спектре j (зависит от количества светодиодов)
uint8_t r, g, b; // Объявляем переменную для хранения цветов RGB для каждого светодиода
uint8_t z = 1; // Определяем константу указывающую задержку в мс (чем выше значение, тем медленнее перелив цветов)
uint8_t flg, setting = 0; // Флаг включения/выключения света
uint8_t mode = 0; // Флаг режима работы светодиодов
uint8_t proximityData = 0; // Переменная, хранящая значение расстояния до модуля APDS9960
uint8_t brightness = 255; // Переменная значения яркости
uint32_t waiting_time = 7000; // Время ожидания при настройке яркости
uint32_t work_time; // Счётчик времени при настройке яркости
byte on_off = 0; // Триггер включения/выключения света void setup() { // Инициализируем адресные светодиоды: led.begin(); // Инициализируем модуль жестов: apds.init(); // Если инициализация модуля жестов прошла успешно, то … // Устанавливаем коэффициент усиления приёмника: // Доступные значения: 1х, 2х, 4х, 8х (GGAIN_1X, GGAIN_2X, GGAIN_4X, GGAIN_8X). Чем выше коэффициент тем выше чувствительность apds.setGestureGain(GGAIN_4X); // Если установлен коэффициент усиления приёмника в режиме обнаружения жестов, то … // Устанавливаем силу тока драйвера ИК-светодиода: // Доступные значения: 100мА, 50мА, 25мА, 12.5мА (LED_DRIVE_100MA, LED_DRIVE_50MA, LED_DRIVE_25MA, LED_DRIVE_12_5MA). Чем выше сила тока, тем выше чувствительность. apds.setGestureLEDDrive(LED_DRIVE_100MA); // Если устанавлена сила тока драйвера (яркость) ИК-светодиода для обнаружения жестов, то … // Разрешаем режим обнаружение жестов: apds.enableGestureSensor(false); // Если инициализация режима обнаружения жестов прошла успешно, то led.setColor(NeoPixelAll,0, 0, 0); // Выключаем светодиоды led.write(); // // Ждём завершение инициализации и калибровки: delay(500); // Задержка 0,5с
} void loop() { // Проверяем наличие движения if (apds.isGestureAvailable()) { // Если зафиксировано движение, то … switch (apds.readGesture()) { // Сверяем значение соответствующее жесту … // Проверяем жест:
//==========================================================// // “СЕВЕР” – УВЕЛИЧЕНИЕ СКОРОСТИ АНИМАЦИИ case DIR_UP: if(z>=1 && z 11 && z 101 && z 500) {z = 1;} // При превышении значения шаг сбрасывается break;
//==========================================================// // “ЮГ” – УМЕНЬШЕНИЕ СКОРОСТИ АНИМАЦИИ case DIR_DOWN: if(z=1 && z 11 && z 101 && z 11){mode = 1;} // Если значение больше допустимого, то переходим к минимальному значению break;
//==========================================================// // “ОТДАЛЕНИЕ” – ПЕРЕХОД В РЕЖИМ ЯРКОСТИ case DIR_FAR: setting = 1; // Ставим флаг перехода в режим настройки яркости flg = 1; // Ставим флаг смены работы режима датчика жестов – с чтения жестов на чтение приближения work_time = millis(); // Обновляем счётчик break;
//==========================================================// // “ПРИБЛИЖЕНИЕ” – ПЕРЕХОД В РЕЖИМ ВЫКЛЮЧЕНИЯ СВЕТА case DIR_NEAR: mode = 12; // Устанавливаем режим выключения света break; } } // РЕЖИМЫ РАБОТЫ СВЕТОДИОДОВ: switch (mode) { // Сверяем значение соответствующее режиму работы
//==========================================================// // ПЕРЕЛИВ ВСЕХ ЦВЕТОВ РАДУГИ case 1: j++; // Смещаем спектр цветов для всех светодиодов for(uint16_t i=0; i

Управление светодиодной RGB лентой через arduino

Светодиодный диско-пол на arduino

В число осветительных приборов давно вошли многоцветные светодиодные ленты RGB. Для управления этими устройствами используется RGB-контроллер. Но, кроме него, в последние годы применяется плата Arduino.

Ардуино – принцип действия

плата Arduino

Плата Ардуино – это устройство, на котором установлен программируемый микроконтроллер.

К нему подключены различные датчики, органы управления или encoder и, по заданному скетчу (программе), плата управляет моторами, светодиодами и прочими исполнительными механизмами, в том числе и другими платами Ардуино по протоколу SPI.

Контроль устройства может осуществляться через дистанционный пульт, модуль Bluetooth, HC-06, Wi-Fi, ESP или internet, и кнопками. Одни из самых популярных плат – Arduino Nano и Arduino Uno, а также Arduino Pro Mini – устройство на базе микроконтроллера ATmega 328

Внешний вид Arduino Pro MiniВнешний вид Arduino UnoВнешний вид Arduino micro

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

к содержанию ↑

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

управление Arduino

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

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

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

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

к содержанию ↑

Подключение светодиодной ленты к Ардуино

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

Через реле

Подключение через реле

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

Для управления red-blue-green ленточкой необходимы три реле. Ток, который может контролировать такое устройство, ограничен мощностью катушки (маломощная катушка не в состоянии замыкать большие контакты).

Для подсоединения большей мощности используются релейные сборки.

С помощью биполярного транзистора

Подключение с помощью транзистора

Для усиления выходного тока и напряжения можно использовать биполярный транзистор. Он выбирается по току и напряжению нагрузки. Ток управления не должен быть выше 20 мА, поэтому подается через токоограничивающее сопротивление 1 – 10 кОм.

Транзистор лучше применять n-p-n с общим эмиттером. Для большего коэффициента усиления используется схема с несколькими элементами или транзисторная сборка (микросхема-усилитель).

С помощью полевого транзистора

Кроме биполярных, для управления полосами используются полевые транзисторы. Другое название этих приборов – МОП или MOSFET-transistor.

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

С помощью плат расширения

Подключение Arduino с помощью плат расширения

Это может быть Wi-Fi или Bluetooth, драйвер управления электродвигателем, например, модуль L298N или эквалайзер.

Они предназначены для управления нагрузками разной мощности и напряжения.

Такие устройства бывают одноканальными – могут управлять только монохромной лентой, и многоканальными – предназначены для устройств RGB и RGBW, а также лент со светодиодами WS 2812.

к содержанию ↑

Пример программы

Arduino и светодиодная лента

Платы Ардуино способны управлять светодиодными конструкциями по заранее заданным программам. Их библиотеки можно скачать с официально сайта, найти в интернете или написать новый sketch (code) самому. Собрать такое устройство можно своими руками.

Вот некоторые варианты использования подобных систем:

  • Управление освещением. С помощью датчика освещения включается свет в комнате как сразу, так и с постепенным нарастанием яркости по мере захода солнца. Включение может также производиться через wi-fi, с интеграцией в систему «умный дом» или соединением по телефону.
  • Включение света на лестнице или в длинном коридоре. Очень красиво смотрится диодная подсветка каждой ступеньки в отдельность. При подключении к плате датчика движения, его срабатывание вызовет последовательное, с задержкой времени включение подсветки ступеней или коридора, а отключение этого элемента приведет к обратному процессу.
  • Цветомузыка. Подав на аналоговые входы звуковой сигнал через фильтры, на выходе получится цветомузыкальная установка.
  • Моддинг компьютера. С помощью соответствующих датчиков и программ цвет светодиодов может зависеть от температуры или загрузки процессора или оперативной памяти. Работает такое устройство по протоколу dmx 512.
  • Управление скоростью бегущих огней при помощи энкодера. Подобные установки собираются на микросхемах WS 2811, WS 2812 и WS 2812B.

к содержанию ↑

Видеоинструкция

(Обновлена) Подключение RGB светодиодной ленты к Arduino (LED 3528)

Светодиодный диско-пол на arduino

Предисловие 

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

Вступление

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

Для этого нам понадобиться сама RGB лента, у меня это 6-ти вольтовая лента на LED светодиодах 3528.

Кнопка, Arduino UNO, блок питания на 5 Вольт (обычная зарядка для сотового) ну и конечно несколько перемычек.

В данной статье мы затронем только ленты на светодиодах 3528, так что можно считать эту статью первой, из серии знакомства со светодиодными лентами. В следующий раз мы поговорим об подключении лент на RGB светодиодах 5050, но будет это уже после нового года.

Подключение

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

И так, что мы видим из схемы выше.

  • RGB лента подключена у нас напрямую к Arduino UNO. Сделал я так потому, что лента у меня как я писал выше 6-ти вольтовая, а это значит что ее можно напрямую подключить к ардуино без посредников, ну разве что гореть будет чуть тусклее, но глазу в целом – незаметно.
  • Важно! RGB лента берет питание с контакта Vin(Arduino Uno) т.е. с блока питания (контакт ленты +6V мы подключили на порт Vin).
  • Контакты RGB светодиодной ленты выведены на порты (~3, ~5, ~6), с помощью них мы и будем управлять нашими светодиодами используя ШИМ.
  • Arduino Uno запитывается от блока питания (5В) через разъем питания.
  • Модульная кнопка подключена как обычно (VCC на +5В, GND на GND, SIG на один из портов, в нашем случае это 12-й).
  • Скетч

    Теперь, когда мы все собрали и подключили, пора заняться собственно программированием. Но перед этим надо определиться, скажем так с “эффектами”. Найдем в кладовке китайскую гирлянду, подключим, по переключаем различные режимы.

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

    • Рандом (Цвета загораются в случайном порядке, но мы усложним, и сделаем случайной еще и яркость).
    • Бегущий огонек (Светодиоды включаются по очереди в определенном направлении).
    • Бегущий огонек в обратную сторону.
    • Затухание (Один из цветов плавно гаснет, в то время как другой набирает яркость, и так по кругу).
    • Ну и два стандартных, это “Включено” когда горят все светодиоды на максимальной яркости, и “Выключено” когда мы отключаем нашу ленту.

    Собственно далее сам скетч.

    // Порты, на которых висят светодиоды и кнопка. byte pinBtn   = 12; // Кнопка на 12 пине. byte pinRed   = 5;  // Красные светодиоды на 5 пине. byte pinGreen = 6;  // Зеленые светодиоды на 6 пине. byte pinBlue  = 3;  // Синие светодиоды на 3 пине. // Номер текущего эффекта. static byte mode = 1; // Для работы кнопки (анти дребезг). static byte tempButton = LOW; static byte button = LOW; // Дополнительные переменные. static int state = 0; static int index = 0; void setup() {   // Настраиваем порт кнопки.   pinMode(pinBtn, INPUT);   // Т.к. мы используем ШИМ, то настраивать порты для ленты не надо. } void loop() {   // Отлавливаем нажатие кнопки.   button = digitalRead(pinBtn);   if (tempButton && !button)   {     // Небольшой анти дребезг.     tempButton = button;     delay(10);     button = digitalRead(pinBtn);     // Все хорошо, меняем эффект.     if (button == tempButton)     {       // Переключаем на следующий эффект.       mode++;       if (mode > 6) mode = 1; // Зацикливаем эффекты по кругу.       // Сбрасываем дополнительные переменные.       state = 0;       index = 0;       // Выключаем все светодиоды.       analogWrite(pinRed,   255);       analogWrite(pinGreen, 255);       analogWrite(pinBlue,  255);     }   }   tempButton = button;     // Обработка наших эффектов.   switch (mode)   {     case 1: // Эффект №1: Все решает случай.             analogWrite(pinRed,   random(0, 255));             analogWrite(pinGreen, random(0, 255));             analogWrite(pinBlue,  random(0, 255));             break;         case 2: // Эффект №2: Бегущий огонек.             if (state == 3)             {               analogWrite(pinRed,   255);               analogWrite(pinGreen, 0);             }             if (state == 6)             {               analogWrite(pinBlue, 255);               analogWrite(pinRed,  0);             }             if (state == 9)             {               analogWrite(pinGreen, 255);               analogWrite(pinBlue,  0);             }             state–;             if (state < 1) state = 9;             break;         case 3: // Эффект №3: Бегущий огонек (В обратную сторону).             if (state == 1)             {               analogWrite(pinBlue,  255);               analogWrite(pinGreen, 0);             }             if (state == 4)             {               analogWrite(pinGreen, 255);               analogWrite(pinRed,   0);             }             if (state == 7)             {               analogWrite(pinRed,  255);               analogWrite(pinBlue, 0);             }             state++;             if (state > 9) state = 1;             break;         case 4: // Эффект №4: Затухание.             if (state == 0)             {                  analogWrite(pinBlue, index);                analogWrite(pinGreen, 255 – index);             }             if (state == 1)             {                analogWrite(pinGreen, index);                analogWrite(pinRed, 255 – index);             }             if (state == 2)             {                analogWrite(pinRed, index);                analogWrite(pinBlue, 255 – index);             }             index += 5;             if (index > 255)             {               state++;               index = 0;               if (state > 2) state = 0;             }             break;         case 5: // Включить ленту.             analogWrite(pinRed,   0);             analogWrite(pinGreen, 0);             analogWrite(pinBlue,  0);             break;                 case 6: // Выключить ленту.             analogWrite(pinRed,   255);             analogWrite(pinGreen, 255);             analogWrite(pinBlue,  255);             break;                   }   // Задержка в 50мс.   delay(50); }

    Я постарался как можно больше прокомментировать скетч. Но тем не менее хочу немного рассказать о его работе.

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

    • В переменных pinBtn, pinRed, pinGreen, pinBlue мы указываем порты на которые подключена светодиодная лента и кнопка.
    • Переменная mode содержит в себе номер “эффекта”, который в данный момент воспроизводится.
    • tempButton и button необходимы нам для нормальной работы с кнопкой. При помощи них мы избавляемся от дребезга и переключаем эффекты.
    • state и index – вспомогательные переменные для нормальной работы некоторых эффектов.

    Во вторых в функции setup() мы инициализируем порты, так как с лентой мы работаем использую ШИМ, то порты эти нет необходимости отдельно инициализировать, по этому тут указывается только порт кнопки.

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

    Ну и напоследок хочу заострить ваше внимание на работе ленты. Дело в том, что как вы заметили (а может и нет) по схеме подключения видно, что ленте мы подаем питание через отдельный контакт +6, а вот на контакты R, G, B мы должны подавать землю.

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

    Итого мы имеем:

    • Чтобы светодиоды выключились надо выполнить analogWrite(pin, 255); (Подаем на порт 5В).
    • Чтобы светодиоды горели в половину яркости надо выполнить analogWrite(pin, 127); (Подаем на порт 2.5В).
    • Ну а чтобы светодиоды горели на максимальную яркость надо выполнить analogWrite(pin, 0); (Подаем на порт 0В).

    Вот такая вот необычная вещь эта RGB светодиодная лента.

    Ну а далее демонстрационное видео.

    Видео

    Дополнение

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

    • Заказывал ленту я в Китае, на торговой площадке Aliexpress, ссылка на ленту.
    • Arduino UNO так же от китайского производителя Robotdyn (Хорошие ардуино, с великолепным качеством. У меня самая дешёвая из 3х типов UNO которые он делает).

    Из описания следует:

    • Напряжение ленты 5В.
    • 60 светодиодов на метр (У меня 2 метра).
    • Источник питания ленты – USB, да, обычный USB компьютера, ноутбука, телевизора, китаец даже указал прикуриватель автомобиля (возможно он имел ввиду зарядку для сотового). Из этого следует что по стандарту USB, ток ленты не должен превышать 500мА.
    • Ну и применение ленты – это подсветка корпуса ПК, мебели, телевизора и прочего где рядом есть USB разъем.

    Комплектация:

    • Сама лента в бухте.
    • Контроллер с возможностью изменять яркость, выбирать цвета, и демо режим в виде гирлянды (откуда все и пошло).
    • Переходник, штекер питания на USB.

    Далее собственно несколько фото.

    Далее я замерил ток с помощью мультиметра (на максимальной яркости) и у меня получилась следующая таблица.

    КонтроллерArduino UNO

    Red (40 шт.)
    310 мА
    30-40 мА

    Green (40 шт.)
    230 мА
    40 мА

    Blue (40 шт.)
    340 мА
    30-40 мА

    Все (120 шт.)
    870 мА
    110 мА

    Тут стоит еще учитывать точность дешёвого мультиметра.

    Напряжение между + и -Между Vin и GND

    USB 2.0
    5.28 В
    4.64 В (USB->USB)

    Блок питания
    5.33 В
    4.59 В (БП->Разъем питания)

    Начнем мы с контроллера.

    Из таблицы видно что потребляемый ток далеко не 500мА. Подключал я ленту к своему ПК и Телевизору, при этом самовосстанавливающиеся предохранители не выбивало, работало все часами.

    Из этого следует, что ток тут явно выше нормы но в пределах допустимого для USB. Хотя наш друг китаец мог и тут немного приукрасить. Ведь версию USB он не указал. А по току они отличаются. USB 1.0-2.

    0 – максимум 500мА. USB 3.0 – максимум 900мА.

    Теперь по Ардуинке.

    Всем известно что максимальный ток одного порта Arduino UNO не более 40мА. Это написано на каждом втором сайте. Собственно в таблице выше это мы и видим.

    И чуда тут то же нет, Arduino не горит. Она ограничивает ток до 40мА и все. Лента горит тусклее но все работает. При этом за 4 часа непрерывной работы, Ардуино как была холодной так и осталась.

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

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

    Ардуино: управление светодиодом

    Светодиодный диско-пол на arduino

    Как известно, первая программа, которую человек пишет при изучении программирования называется «Hello World!». Суть этой программы сводится к тому, чтобы после запуска на экране появилась указанная простая фраза.

    В мире микроэлектроники, симметричной задачей смело можно назвать мигание светодиодом

    Оцените статью
    Просто о технологиях
    Добавить комментарии

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: