Электрификация

Справочник домашнего мастера

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

Содержание

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

С помощью микроконтроллеров

С помощью него можно получить множество различных оттенков света. Управление RGB-светодиодом осуществляется с помощью микроконтроллера (MK), например, Arduino (рис.2).

Конечно, можно обойтись простым блоком питания на 5 вольт, резисторами в 100-200 Ом для ограничения тока и тремя переключателями, но тогда управлять свечением и цветом придется вручную. В таком случае добиться желаемого оттенка света не получится (рис.3-4).

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

Лента на базе WS2812B

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

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

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

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

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

Максимальный ток одного адресного светодиода равняется 60 миллиамперам. Рабочие температуры лежат в пределах от -25 до +80 градусов. Напряжение питания составляет 5 В +-0,5.
ШИМ драйверы ленты 8-мибитные – для каждого цвета возможно 256 градация яркости. Для установки яркости нужно 3 байта информации – по 8 бит с каждого светодиода. Информация передается по однолинейному протоколу с фиксированной скоростью. Нули и единицы кодируются высоким и низким уровнем сигнала по линии.

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

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

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

Для отображения всей палитры оттенков вполне достаточно три цвета, используя RGB синтез (Red – красный, Green – зеленый, Blue – синий). RGB палитра используется не только в графических редакторах, но и в сайтостроении . Смешивая красный, зеленый и синий цвет в разной пропорции можно получить практически любой цвет.

RGB светодиоды объединяют три кристалла разных цветов в одном корпусе. Использование RGB светодиодов и RGB LED ленты позволяет создать осветительный прибор или освещение интерьера с любым оттенком цвета. Преимущества RGB светодиодов в простоте конструкции и высоком КПД светоотдачи.

RGB LED имеет 4 вывода — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. К каждому цветовому выходу следует подключать резистор. Кроме того, RGB LED может сразу монтироваться на плате и иметь встроенные резисторы — этот вариант более удобный для занятий в кружке .

Фото. Распиновка RGB светодиода и модуль с RGB светодиодом для Ардуино

Распиновка RGB светодиода указана на фото выше. Заметим также, что для многих полноцветных светодиодов необходимы светорассеиватели, иначе будут видны составляющие цвета. Далее подключим RGB светодиод к Ардуино и заставим его светится всеми цветами радуги с помощью «широтно импульсной модуляции».

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

// Присваиваем имя RED для пина 11
// Присваиваем имя GREEN для пина 12
// Присваиваем имя BLUE для пина 13
// Используем Pin12 для вывода
// Используем Pin13 для вывода
// Включаем красный свет
// Включаем зеленый свет
// Устанавливаем паузу для эффекта
// Включаем синий свет
// Устанавливаем паузу для эффекта

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

  1. С помощью директивы #define мы заменили номер пинов 11, 12 и 13 на соответствующие имена RED , GREEN и BLUE . Это сделано для удобства, чтобы не запутаться в скетче и понимать какой цвет мы включаем;
  2. В процедуре void setup() мы назначили пины 11, 12 и 13, как выходы;
  3. В процедуре void loop() мы поочередно включаем все три цвета на RGB LED.

На что обратить внимание:

  1. Пины 11, 12 и 13 мы использовали, как цифровые выходы digitalWrite .
  1. Измените скетч, чтобы на светодиоде включались одновременно два разных цвета.

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

Для теста нам понадобится:

  • Arduino Uno
  • макетная плата
  • светодиод
  • резистор для светодиода
  • соединительные провода

Все соединяем, согласно указанной схеме.

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

Как можно видеть, мы использовали два контакта Arduino. Первый из них pin13 будет служить для управления светодиодом, второй – минус схемы.

Следует обратить внимание на. Анод (+) светодиода нужно подключить через резистор к pin13

Катод (-) светодиода подключаем к минусу платы. После проверки правильности соединения мы можем перейти к написанию нашей первой программы.

Наша первая программа позволит поочередно включать и выключать светодиод. Частота мигания светодиода составит около 1Гц.

const int ledPin = 13; // номер контакта для светодиода void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // устанавливаем высокое состояние на pin13 delay(500); //остановка 0,5 сек (500ms) digitalWrite(ledPin, LOW); // устанавливаем низкое состояние на pin13 delay(500); // остановка 0,5 сек (500ms) }

Программа начинается с объявления используемого контакт (ledPin). С этого момента везде, где мы будем ссылаться на «ledPin», будет ссылка на pin13 Arduino.

Затем в функции setup() мы указываем, что наш pin13 будет использоваться как выход.

Функция pinMode(pin, mode) позволяет определить, будет ли использоваться наш контакт как вход или как выход. Первый параметр функции это номер контакта, второй предопределенное значение INPUT (вход) или OUTPUT (выход).

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

Функция loop() содержит непосредственно сам код программы, который выполняется в бесконечном цикле.

Функция digitalWrite(pin, value) позволяет изменять статус каждого из контактов. Цифровые выходы могут иметь низкий (LOW) или высокий (HIGH) логический уровень. LOW (лог.0) — электрически замкнут на минус, а HIGH (лог.1) — около 5 В.

Номер порта в функции digitalWrite () может быть указан непосредственно в виде числа (в нашем случае 13) или обозначен так, как мы прописали его в функции pinMode () (т.е ledPin).

Последним элементом программы является функция delay(), которая останавливает выполнение программы на определенное время. Время задается в миллисекундах. Одна секунда это 1000 мс.

Зная, для чего служат отдельные функции программы, мы можем изучить работу программного кода целиком:

Итак, pin13 Arduino устанавливается как выход. Следующим шагом идет установка высокого состояния на Pin13 и приостановка дальнейшего выполнения кода на 0,5 сек. Затем Pin13 устанавливается в низкое состояние и исполнение кода приостанавливается на 0,5 сек. Согласно философии написания программ в Arduino IDE, функция loop () выполняется в бесконечном цикле, что вызовет визуальное мигание светодиода.

После того, как вы написали программу, скомпилируйте ее и отправьте в Arduino. Если все шаги были выполнены правильно, светодиод должен начать мигать с частотой примерно в 1 Гц.

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

УРОК 1. ARDUINO И МИГАЮЩИЙ СВЕТОДИОД

Принципиальная схема к уроку 1. Arduino и Мигающий светодиод

LEDs (light-emitting diodes) — по русски Светоизлучающий диод, используется во многих электронных устройствах. При прохождении через его кристалл ток вызывает свечение, которое усиливается оптическим колпачком-линзой. Его неоспоримые достоинства — быстрое включение, высокая прочность, длительный срок службы, экологичность. Как правило используется как световой индикатор включения — переключения, а также отображение режимов работы. Делятся светодиоды на две группы — Монохромные (одноцветные) и RGB (многоцветные).

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

Для первого опыта вам понадобится:

Плата Arduino UNO — 1 шт.

Резистор 330ом. (можно использовать подходящие от 200 ом до 550 ом) — 1 шт.
На корпусе резистора нанесены цветовые полоски, они указывают его номинал, мощность и т.д*
На резисторе 330 ом. полоски должны быть Оранжевая, Оранжевая, Коричневая.

Светоизлучающий диод — 1 шт.

Макетная плата — 1 шт.

Соединительные провода.

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

Схема соединений урока №1. Arduino и Мигающий светодиод

Скачайте и распакуйте архив с программой урока, подсоедините ардуино к компьютеру с помощью USB шнура, запустите скетч урока № 1, дважды щелкнув по файлу lesson_01.ino, после этого у вас должна запустится среда программирования ArduinoIDE, в окне которой будет показан текст программы с многочисленными коментариями и пояснениями на русском языке. Внимательно прочитайте весь sketch от начала до конца, а затем загрузите программу в Arduino с помощью кнопки ЗАГРУЗИТЬ, или UPLOAD, в зависимости от языка программы.

Набор для экспериментов ArduinoKit
Код программы для опыта №1: sketch 01

Что-то подобное должно получиться у вас:

В результате, после заливки программы в ардуино вы должны увидеть подмигивающий светодиод, который как бы говорит «Привет, Мир!». Если этого не произошло и светодиод не светится, вам необходимо проверить правильность соединения проводов. Правильность полярности светодиода +, -. Правильность полярности шин питания.

P.S. Таблица цветовой маркировки резисторов:

Таблица цветовой маркировки резисторов

Всем удачи! Ждём ваши комментарии к ARDUINO УРОК 1 МИГАЮЩИЙ СВЕТОДИОД.

2018-09-19T16:11:54+03:00Arduino уроки|

Применение адресуемых светодиодных лент

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

Получается интересное решение, если светодиодную ленту использовать в качестве фоновой подсветки Ambilight для монитора компьютера (рис.10-11).

Если вы будете использовать микроконтроллеры на базе Arduino, вам понадобится библиотека FastLed для упрощения работы со светодиодной лентой ().

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

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

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

Прямое подключение светодиодной ленты к Arduino уместно только в случае применения слабых LED-диодов. Для светодиодной ленты между ней и платой необходимо установить дополнительные электротехнические элементы.

Через реле

Подключите реле к плате Arduino через цифровой выход. Управляемая полоса может иметь одно из двух состояний – включения или выключения. Если нужно организовать управление RGB-лентой, понадобятся три реле.

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

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

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

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

Вместо биполярных транзисторов для управления светодиодными лентами возьмите полевые (сокращенно – МОП). Разница между ними связана с принципом управления: биполярные изменяют ток, полевые – напряжение на затворе. Благодаря этому небольшой ток затвора управляет большой нагрузкой (десятками ампер).

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

Если нет желания использовать реле и транзисторы, можно купить целые блоки – платы расширения. К ним относятся Wi-Fi, Bluetooth, эквалайзер, драйвер и т. д., которые необходимы для управления нагрузкой разных мощностей и напряжений. Это могут быть как одноканальные элементы, которые подойдут монохромным лентам, так и многоканальные (для управления цветными RGB-лентами).

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

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

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

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

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

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

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

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

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

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

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

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

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

Как задать цвет свечения rgb лентой по wi-fi.

Мы определили команду и параметры приема для задания цвета ленты. Для удобства мы будем принимать значения в стандартном виде RGBA(100,255,255,255). Яркость у нас определяется значением пин, т.е. если мы дадим команду analogWrite (LED_R, 255), то у нас загорится красный цвет и яркость будет равна 25%. Зная это мы будем приводить наш стандартный вид к виду удобному arduino. Для этого нам необходимо принимаемое значение цвета(по стандарту максимум 255) умножить на 4 и умножить на процент яркости(параметр A). Отсюда получается – нам нужна функция, которая распарсит 4 параметра(A,Red,Green,Blue), приведет их в необходимый вид для ардуино и зажжет нужный цвет. Получается на стороне платы мы работаем с тремя значениями RGB, а яркость уходит в значение цвета. Потом обнуляем переменную с принимаемыми значениями.

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

  • Биполярный;
  • Полевой;
  • Составной (сборка Дарлингтона).
Способы подключения нагрузки
Через биполярный транзистор Через полевой транзистор Через коммутатор напряжения

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

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

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

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

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

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

Как принять и распарсить принятую команду

Для этого мы напишем две функции: функцию принятие данных и функцию парсинга. Первая будет вызывать из функции цикла Loop и записывать в глобальную переменную “Str” принятые данные. Вторая будет парсить команды и вызывать соответствующую функцию. Парсить будем функцией “strtok”.

void loop () { getStr(); if (Str != «0») ParseCommand(); } //*************************************************** void getStr() { int cb = udp.parsePacket(); if (!cb) {} else { udp.read(packetBuffer, NTP_PACKET_SIZE); Serial.println(packetBuffer); String req = (packetBuffer); Serial.print(«Request: «); Serial.println(req); Str = req; } memset(packetBuffer, 0, NTP_PACKET_SIZE); //очищаем буфер для приема следующей команды } //***************************************************—ParseCommand void ParseCommand() { String command = «»; //преобразовываем строку в нужным нам тип Str.toCharArray(buf, 127);// Str — переменная в которой хранится пришедший пакет command = String( strtok (buf, » «)); Serial.println(«command: » + command + «(» + Str + «)»); if (command == «save») { SaveComand(); //Сохраняем и подключаемся к Wi-Fi } else if (command == «LightRGB») { LightRGB(); //задаем цвет свечения } else if (command == «LightFade») { LightFade(); //задаем потухание/появление } else if (command == «LightUser») { FadeUser(); } else { Str = «0»; // очищаем } }

Ниже я объясню, что за команды и что они будут делать

Управление RGB лентой с помощью Arduino и драйвера L298N

Здравствуйте Хабр-сообщество.
В данное время стали доступны светодиодные ленты с изменяемым цветом свечения. Они классно выглядят, не дорого стоят и их можно хорошо приспособить для декоративной подсветки интерьера, рекламы, и т.д.
К таким лентам можно купить источник питания, диммер, диммер с пультом управления. Это позволит вам использовать светодиодную ленту для посветки. Однако если вы захотите запрограммировать алгоритм изменения цвета, или сделать управление из компьютера — то тут начинается разочарование. Вы в продаже не найдете диммеров с управлением через COM-порт или Ethernet.
Я решил эту проблему с помощью Arduino, и хочу поделиться своим вариантом решения с Вами.

Добро пожаловать под кат.

Теоретическая часть

Для реализации плавного изменения свечения всех 3 каналов нам потребуется сделать собственный димер. Сделать его очень просто, для этого требуется взять силовые ключи и управлять ими с помощью ШИМ сигнала. Также наш диммер должен быть программируемым и/или управляемым из вне.
В качестве мозгов идеально подходит Arduino. В её программу можно записать любой алгоритм изменения цветов, а также её можно управлять как с помощью модулей Arduino, так и удаленно по Ethernet, Ик-порту, Bluetooth, используя соответствующие модули.

Для реализации задуманного я выбрал Arduino Leonardo. Она одна из самых дешевых плат Arduino, и она имеет много выводов с поддержкой ШИМ.
PWM: 3, 5, 6, 9, 10, 11, and 13. Provide 8-bit PWM output with the analogWrite() function.
И так, источник ШИМ у нас имеется, остаётся придумать с силовыми ключами. Если побродить по интренет магазинам, то выяснится, что не существует модуля Arduino для управления RGB лентами. Или просто универсальных модулей с силовыми транзисторами. Также можно найти огромное количество сайтов радиолюбителей, которые делают платы с силовыми ключами сами.
Однако есть способ проще! Нас выручит модуль Arduino для управления двигателями. Этот модуль имеет все необходимое для нас — на нем установлены мощные ключи на 12В.

Пример такого модуля является «L298N Module Dual H Bridge Stepper Motor Driver Board Modules for Arduino Smart Car FZ0407». Такой модуль основан на микросхеме L298N, которая представляет из себя 2 моста. Однако мостовое включение полезно для двигателя (от этого он может менять направление вращения), а в случае RGB ленты, оно бесполезное.
Мы будем использовать не весь функционал этой микросхемы, а только 3 её нижних ключа, подключив ленту как показано на рисунке.

Практическая часть часть

Для реализации потребуется Arduino Leonardo, Модуль управления двигателями L298N, Источник 12В (для запитки ленты), сама RGB лента, соединительные провода.
Для удобства подключения я еще использовал Fundruino IO Expansion, но он никакой функциональной нагрузки не несет.
Схема подключения показана на рисунке.

Хочу дополнительно описать питание системы. В данной схеме питание подается на модуль управления двигателями, в нем стоит понижающий источник питания на 5В, и эти 5В я подаю на вход Vin питания Arduino. Если разорвать эту связь (естественно земли оставив соединенными), то запитывать Arduino и силовые ключи можно от разных источников питания. Это может быть полезно когда к Arduino много всего подключено, и источник в модуле управления двигателями не справляется (выключается по перегреву).
Управляется RGB лента с помощью команд analogWrite, которая настраивает выход для формирования ШИМ сигнала.
Исходный код программы для arduino:
#define GRBLED_PIN_R 9 // пин для канала R #define GRBLED_PIN_G 10 // пин для канала G #define GRBLED_PIN_B 11 // пин для канала B int rgbled_r=0, rgbled_g=0, rgbled_b=0; void setup(){ //enable serial datada print Serial.begin(9600); Serial.println(«RBG LED v 0.1»); // RGBLED pinMode(GRBLED_PIN_R, OUTPUT); pinMode(GRBLED_PIN_G, OUTPUT); pinMode(GRBLED_PIN_B, OUTPUT); } void loop(){ // change color rgbled_r = (rgbled_r+1)%1024; rgbled_g = (rgbled_g+2)%1024; rgbled_b = (rgbled_b+3)%1024; // Output Z1_output_rgbled(); delay(1); } void Z1_output_rgbled() { analogWrite(GRBLED_PIN_R, rgbled_r); analogWrite(GRBLED_PIN_G, rgbled_g); analogWrite(GRBLED_PIN_B, rgbled_b); }
На видео можно увидеть как это работает:

Экономическая часть

Итого $37,65 = 1 300 руб

Вместо заключения

Для тех, кто захочет повторить описанную здесь схему — хочу заметить, что драйвер L298N рассчитан на ток 2-3А на канал, а RGB светодиодные ленты, на светодиодах 5050 с плотностью 60 светодиодов на метр, продающиеся по 5 метров, могут потреблять до 6А (2А на канал). По этому если вы хотите использовать ленты длинной более 5М — возможно потребуется схему модернизировать (подключать ленту по сегментам, или взять более мощный драйвер).

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

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

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

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

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

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

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

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

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

Мнение эксперта Алексей Бартош Специалист по ремонту, обслуживанию электрооборудования и промышленной электроники. Задать вопрос эксперту Arduino Nano могут управлять не только электродвигателями. Они используются также для светодиодных лент. Но так как выходные ток и напряжение платы недостаточны для прямого подключения к ней полосы со светодиодами, то между контроллером и светодиодной лентой необходимо устанавливать дополнительные приспособления.

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

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

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

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

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

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

Кроме реле и транзисторов используются готовые блоки и платы расширения.

Это может быть Wi-Fi или Bluetooth, драйвер управления электродвигателем, например, модуль L298N или эквалайзер. Они предназначены для управления нагрузками разной мощности и напряжения. Такие устройства бывают одноканальными – могут управлять только монохромной лентой, и многоканальными – предназначены для устройств RGB и RGBW, а также лент со светодиодами WS 2812.

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

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

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

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

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

Предыдущая Светодиодная лентаКак можно сделать светодиодную ленту своими руками

Радиосхемы
Схемы электрические принципиальные

категория

Цветомузыка своими руками

Данный раздел посвящен свето и цветомузыкальным устройствам: все что мигает, моргает, светит под музыку или просто создает световые эффекты.
Это различные цветомузыкальные приставки, автоматы световых эффектов, «бегущие огни» и так далее.

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

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

Итак, материалы в категории световые устройства

Автоматы световых эффектов на логических микросхемах
Программируемый переключатель гирлянд
Светомузыкальные приставки из журналов РАДИО
Бегущие огни на мультивибраторе
Бегущие огни на четырехфазном мультивибратореСамодельный стробоскоп на ИФК-120
Автомат для елочной гирлянды
Программируемый автомат световых эффектов
Программируемый переключатель на ППЗУ
Автомат световых эффектов на регистре сдвига
Бегущий огонь на трех тиристорах
Переключатель гирлянд с плавным включением
Рождественская звезда

Имитатор пламени на светодиодах
Бегущий огонь с нарастающей частотой переключенияСветомузыка на импульсных лампахМалогабаритная светомузыка на светодиодахБегущие огни на 10 светодиодахСтробоскоп на мощном светодиодеДвухканальный стробоскопСветовой диск
Цветомузыкальная приставка на 6 каналовПростейшее лазерное шоу самостоятельноБегущие огни с изменением скорости под музыку
Переключатели новогодних гирлянд
Аналог проблескового маячка
Генераторы световых импульсов
Световой эффект «Хаотичное переключение»
Переключатель гирлянд из двухцветных светодиодов
Бегущие огни на светодиодах
Световой автомат «пульсирующая линия»
Пятиканальная цветомузыкальная установка
Переключатель светодиодных гирлянд
Автомат световых эффектов для новогодних гирлянд
Трехканальная цветомузыка
Цветомузыка с активными транзисторными фильтрами
Схемы световых эффектов на микросхемах

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

На этом занятии мы будем использовать цифровые и аналоговые выходы с «широтно импульсной модуляцией» на плате Arduino для включения RGB светодиода с различными оттенками. Использование RGB LED ленты позволяет создать освещение интерьера с любым оттенком цвета. Расскажем про устройство и распиновку полноцветного (RGB) светодиода и рассмотрим директиву #define в языке C++.

Для отображения всей палитры оттенков вполне достаточно три цвета, используя RGB синтез (Red — красный, Green — зеленый, Blue — синий). RGB палитра используется не только в графических редакторах, но и в сайтостроении. Смешивая цвета в разной пропорции можно получить практически любой цвет. Преимущества RGB светодиодов в простоте конструкции, небольших габаритах и высоком КПД светоотдачи.

RGB светодиоды объединяют три кристалла разных цветов в одном корпусе. RGB LED имеет 4 вывода — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. К каждому цветовому выходу следует подключать резистор. Кроме того, модуль RGB LED Arduino может сразу монтироваться на плате и иметь встроенные резисторы — этот вариант более удобный для занятий в кружке робототехники.

Фото. Распиновка RGB светодиода и модуль с RGB светодиодом для Ардуино

Распиновка RGB светодиода указана на фото выше. Заметим также, что для многих полноцветных (трехцветных) светодиодов необходимы светорассеиватели, иначе будут видны составляющие цвета. Далее подключим трехцветный светодиод к Ардуино и заставим его сначала мигать разными цветами, а затем плавно переливаться разными цветами с помощью «широтно импульсной модуляции».

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

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • RGB светодиод;
  • 3 резистора 220 Ом;
  • провода «папа-мама».

Фото. Схема подключения RGB LED к Ардуино на макетной плате

Модуль «RGB светодиод» можно подключить напрямую к плате, без проводов и макетной платы. Подключите модуль с полноцветным RGB светодиодом к следующим пинам: Минус — GND, B — Pin13, G — Pin12, R — Pin11 (смотри первое фото). Если вы используете RGB LED (Light Emitting Diode), то подключите его по схеме на фото. После подключения модуля и сборки схемы на Ардуино загрузите скетч в плату.

Скетч для мигания RGB светодиодом на Ардуино

#define RED 11 // присваиваем имя RED для пина 11 #define GRN 12 // присваиваем имя GRN для пина 12 #define BLU 13 // присваиваем имя BLU для пина 13 void setup() { pinMode(RED, OUTPUT); // используем Pin11 для вывода pinMode(GRN, OUTPUT); // используем Pin12 для вывода pinMode(BLU, OUTPUT); // используем Pin13 для вывода } void loop() { digitalWrite(RED, HIGH); // включаем красный свет digitalWrite(GRN, LOW); digitalWrite(BLU, LOW); delay(1000); // устанавливаем паузу для эффекта digitalWrite(RED, LOW); digitalWrite(GRN, HIGH); // включаем зеленый свет digitalWrite(BLU, LOW); delay(1000); // устанавливаем паузу для эффекта digitalWrite(RED, LOW); digitalWrite(GRN, LOW); digitalWrite(BLU, HIGH); // включаем синий свет delay(1000); // устанавливаем паузу для эффекта }

  1. с помощью директивы #define мы заменили номер пинов 11, 12 и 13 на соответствующие имена RED, GRN и BLU. Это сделано для удобства, чтобы не запутаться в скетче и понимать какой цвет мы включаем;
  2. в процедуре void loop() мы поочередно включаем все три цвета на RGB.

Плавное управление RGB светодиодом

Управление rgb светодиодом на Arduino можно сделать плавным, используя аналоговые выходы с «ШИМ». Для этого ножки светодиода необходимо подключить к аналоговым выходам, например, к пинам 11, 10 и 9. И подавать на аналоговые выходы микроконтроллера различные значения ШИМ (PWM), для этого воспользуемся циклом for, с помощью которого можно повторять нужные команды в программе.

Скетч для плавного мигания RGB светодиода

#define RED 11 // присваиваем имя RED для пина 11 #define GRN 10 // присваиваем имя GRN для пина 10 #define BLU 9 // присваиваем имя BLU для пина 9 void setup() { pinMode(RED, OUTPUT); // используем Pin11 для вывода pinMode(GRN, OUTPUT); // используем Pin10 для вывода pinMode(BLU, OUTPUT); // используем Pin9 для вывода } void loop() { // плавное включение/выключение красного цвета for (int i = 0; i <= 255; i++) { analogWrite(RED, i); delay(2); } for (int i = 255; i >= 0; i—) { analogWrite(RED, i); delay(2); } // плавное включение/выключение зеленого цвета for (int i = 0; i <= 255; i++) { analogWrite(GRN, i); delay(2); } for (int i = 255; i >= 0; i—) { analogWrite(GRN, i); delay(2); } // плавное включение/выключение синего цвета for (int i = 0; i <= 255; i++) { analogWrite(BLU, i); delay(2); } for (int i = 255; i >= 0; i—) { analogWrite(BLU, i); delay(2); } }

  1. с помощью директивы #define мы заменили номера пинов 9, 10 и 11 на соответствующие имена RED, GRN и BLU. Это сделано для удобства, чтобы не запутаться в скетче и понимать какой цвет мы включаем;
  2. пины 9, 10 и 11 мы использовали, как аналоговые выходы analogWrite.

Заключение. Аналоговые выходы на Ардуино используют «широтно импульсную модуляцию» для получения различной силы тока. Мы можем подавать на все три цветовых входа на светодиоде различное значение ШИМ-сигнала в диапазоне от 0 до 255, что позволит нам получить на RGB LED Arduino практически любой оттенок света. Если у вас остались вопросы — оставляйте их в комментариях к этой записи.

RGB-светодиод

Котаны, читайте на здоровье!

×

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Закрыть

04.Communication: ReadASCIIString
RGB-модуль KY-009 с SMD-светодиодом и с общим катодом
RGB-модуль с SMD-светодиодом 5050
RGB-модуль KY-016 с общим катодом

Кроме стандартных одноцветных светодиодов существуют RGB-светодиоды. Мы можем вручную управлять цветом в разных пределах в формате, знакомым многим разработчикам — RGB (Красный_Зелёный_Синий).

У RGB-светодиода четыре ножки. Одна из них (самая длинная) — общий катод или анод, который находится вторым слева. Если вы вдруг будете возмущаться, что у вас бракованный светодиод, у которого самая длинная ножка является третьей, то я могу удалённо починить его (бесплатно). Возьмите светодиод в руки, закройте глаза и медленно поверните его. Откройте глаза — самая длинная ножка стала второй. Магия!

К каждой ножке, которая отвечает за цвет, нужно подключать резисторы, как и для обычных светодиодов (подойдут на 220 Ом). Подключение общей ножки зависит от модели. Если светодиод с общим анодом, то подключайте к питанию, если с общим катодом — то к заземлению. При неправильном подключении светодиод просто не будет светиться.

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

04.Communication: ReadASCIIString

В Arduino IDE есть пример File | Examples | 04.Communication | ReadASCIIString, использующий RGB-светодиод. Мы можем вводить нужные значения цвета в Serial Monitor и светодиод начнёт светиться заданным цветом.

Подключаем компоненты как на рисунке. Первую ножку подключаем к третьему выводу, вторую ножку к пятому выводу, а третью ножку к шестому выводу. Общую ножку подключаем к питанию 5В. Если вы не обратили внимания, то напомню, что нужно использовать выводы с символом тильды (~), чтобы плавно менять напряжение.

// выводы 3, 5 и 6 const int redPin = 3; const int greenPin = 5; const int bluePin = 6; void setup() { Serial.begin(9600); // режим вывода pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { while (Serial.available() > 0) { // ищем правильные числовые значения из входящего потока int red = Serial.parseInt(); // делаем это снова int green = Serial.parseInt(); // и ещё раз int blue = Serial.parseInt(); // ищем символ новой строки (конец данных) if (Serial.read() == ‘\n’) { // ограничиваем значения в пределах 0 — 255 и инвертируем // если используется общий катод, то применяйте «constrain(color, 0, 255);» red = 255 — constrain(red, 0, 255); green = 255 — constrain(green, 0, 255); blue = 255 — constrain(blue, 0, 255); // применяем значения к каждому цвету: analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); // выводим введённые значения в виде шестнадцатеричного числа Serial.print(red, HEX); Serial.print(green, HEX); Serial.println(blue, HEX); } } }

Запускаем скетч, открываем окно Serial Monitor и вводим три числа через запятую. Каждое число должно находиться в пределах от 0 до 255. Например, чтобы получить чистый красный цвет, нужно ввести 255,0,0. Вместо запятой можно вводить любые нечисловые символы, но зачем?

Белый цвет — это 255,255,255. Тогда по идее чёрный — это 0,0,0. Но на самом деле вы не получите чёрный цвет, а просто выключите светодиод.

RGB-модуль KY-009 с SMD-светодиодом и с общим катодом

Бывают RGB-светодиоды в виде модуля с четырьмя выводами в формате SMD. Как и у обычного светодиода, три вывода отвечают за цвет, а один общий вывод является общим катодом. Поэтому провод присоединяем к земле, а не к питанию.

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

red = constrain(red, 0, 255); green = constrain(green, 0, 255); blue = constrain(blue, 0, 255);

Упрощённый скетч с включением разных цветов.

int redPin = 11; int greenPin = 10; int bluePin = 9; int val; void setup() { pinMode(redPin, OUTPUT); pinMode(bluePin, OUTPUT); pinMode(greenPin, OUTPUT); Serial.begin(9600); } void loop() { for (val = 255; val > 0; val—) { analogWrite(redPin, val); //set PWM value for red analogWrite(greenPin, 128 — val); //set PWM value for green analogWrite(bluePin, 255 — val); //set PWM value for blue Serial.println(val); //print current value delay(1); } for (val = 0; val

RGB-модуль с SMD-светодиодом 5050

Аналогичный модуль как и KY-009. Подключение и пример остаются без изменений.

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

RGB-модуль KY-016 с общим катодом

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

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

Опубликовано: 11.12.2016 19:52

Предисловие

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

Вступление

Приветствую всех, в данной статье мы поговорим с вами об RGB лентах, о том как подключать их, и раз уж скоро Новый год, то и сделаем мы с вами для наглядности, обычную ёлочную гирлянду. Для этого нам понадобиться сама RGB лента, у меня это 6-ти вольтовая лента на LED светодиодах 3528. Кнопка, Arduino UNO, блок питания на 5 Вольт (обычная зарядка для сотового) ну и конечно несколько перемычек.

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

Подключение

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

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

  1. RGB лента подключена у нас напрямую к Arduino UNO. Сделал я так потому, что лента у меня как я писал выше 6-ти вольтовая, а это значит что ее можно напрямую подключить к ардуино без посредников, ну разве что гореть будет чуть тусклее, но глазу в целом — незаметно.
  2. Важно! RGB лента берет питание с контакта Vin(Arduino Uno) т.е. с блока питания (контакт ленты +6V мы подключили на порт Vin).
  3. Контакты RGB светодиодной ленты выведены на порты (~3, ~5, ~6), с помощью них мы и будем управлять нашими светодиодами используя ШИМ.
  4. Arduino Uno запитывается от блока питания (5В) через разъем питания.
  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 часа непрерывной работы, Ардуино как была холодной так и осталась.

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

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

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

Шаг 1: Посмотрите видео!

Данное видео предоставит вам необходимые теоретические сведения о проекте и рекомендации по его воплощению.

Шаг 2: Заказ необходимых компонентов!

Список компонентов для данного проекта.

  • Arduino Nano
  • 2 резистора по 10 кОм
  • конденсатор 100 мкФ
  • DC штекер
  • N-канальный мосфет IRLZ44N
  • инфракрасный приемник (TSOP4838)
  • плата Veroboard
  • RGB светодиодная лента (с общим анодом)

Шаг 3: Сборка схемы

На данном шаге показано схемное решение. Разводку платы можно сделать самостоятельно или использовать мою. Она работает без каких-либо проблем.

Шаг 4: Программирование Arduino Nano!

В прикрепленных файлах представлен код/скетч для Arduino Nano. Не забудьте его загрузить до начала проведения тестирования.

Также загрузите IR-библиотеку для Arduino: https://github.com/shirriff/Arduino-IRremote

Шаг 5: Окончание!

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Плата Arduino Arduino Nano 3.0 1 Поиск в Utsource В блокнот
US2 ИК-приемник TSOP4838 1 Поиск в Utsource В блокнот
Q1 MOSFET-транзистор IRLZ44N 1 Поиск в Utsource В блокнот
С1 Электролитический конденсатор 100 мкФ 1 Поиск в Utsource В блокнот
R1, R2 Резистор 10 кОм 2 Поиск в Utsource В блокнот
LEDSTRIP RGB светодиодная лента (с общим анодом) 1 Поиск в Utsource В блокнот
Разьем для подключения блока питания 1 Поиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх