Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Подключение RGB светодиода к Ардуино. Управление мощными rgb светодиодами

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

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

Основных назначений у них два :

Демонстрация работы оборудования или оповещение о каком-либо событии;
применение в декоративных целях (подсветка и визуализация).

Внутри светодиод состоит из красного (red), зеленого (green) и синего (blue) кристаллов, собранных в одном корпусе. Отсюда такое название – RGB (рис.1).

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

С помощью него можно получить множество различных оттенков света.

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

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

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

3. Контроллер для управление RGB

Для разгрузки выводов МК применяются специальные контроллеры WS2801 (5 вольт) или WS2812B (12 вольт) (рис.5).

С применением отдельного контроллера нет необходимости занимать несколько выходов MK, можно ограничиться лишь одним сигнальным выводом. МК подает сигнал на вход «Data» управляющего контроллера светодиода WS2801.

В таком сигнале содержится 24-битная информация о яркости цвета (3 канала по 8 бит на каждый цвет), а также информация для внутреннего сдвигового регистра. Именно сдвиговый регистр позволяет определять, к какому светодиоду информация адресовывается. Таким образом можно соединять несколько светодиодов последовательно, при этом использовать все так же один вывод микроконтроллера (рис.6).

4. Адресуемый светодиод

Это RGB-светодиод, только с интегрированным контроллером WS2801 непосредственно на кристалле. Корпус светодиода выполнен в виде SMD компонента для поверхностного монтажа. Такой подход позволяет расположить светодиоды максимально близко друг другу, делая свечение более детализированным (рис.7).

В интернет-магазинах можно встретить адресные светодиодные ленты, когда в одном метре умещается до 144 штук (рис.8).

Стоит учесть, что один светодиод потребляет при полной яркости всего 60-70 мА, при подключении ленты, например, на 90 светодиодов, потребуется мощный блок питания с током не менее 5 ампер. Ни в коем случае не питайте светодиодную ленту через контроллер, иначе он перегреется и сгорит от нагрузки. Используйте внешние источники питания (рис.9).

5. Недостаток адресуемых светодиодов

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

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

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

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

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

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

Если вы хотите самостоятельно усовершенствовать свой компьютер какими-нибудь навороченными «фишками», проще всего использовать для этого светодиоды – они просты в работе, дёшевы и не требуют каких-то особых навыков и ухищрений. Светодиод способен украсить ваше рабочее место, придать ему дополнительное освещение, да и просто поднять настроение. Чтобы подключить светодиод, следуйте нашей пошаговой инструкции.

Вам понадобится

  • 1. светодиоды
  • 2. паяльник и всё, что необходимо для работы с ним
  • 3. резисторы, которые будут снижать напряжение и силу тока от источника питания
  • 4. разъёмы, необходимые для подключения светодиодов к компьютеру
  • 5. тестер для проверки напряжения
  • 6. кусачки, чтобы зачищать провода
  • 7. термоусадочная трубка

Инструкция

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

Подключение к разъёму 4-pin molex.Сначала давайте посмотрим, светодиод к разъёму 4-pin molex. Это довольно распространённый разъём в , поэтому вполне возможно, что в вашем компьютере он есть. Этот разъём содержит четыре :1. +12 В (жёлтый провод)
2. +5 В (красный провод)

3. Два контакта заземления (чёрные)Выберите, куда вы хотите диоды – к 12 или к 5 вольтам. Разъём приобретите или выньте из ненужного устройства. Тестером проверьте, соответствуют ли выбранные контакты, определите, где у положительный, а где отрицательный контакты.

Провода зачистите кусачками, резистор припаяйте к положительному контакту разъёма. Соединение закройте термоусадкой. Ко второму контакту резистора припаяйте положительный контакт светодиода. Закройте место термоусадочной трубкой. Возьмите отрицательный контакт светодиода и припаяйте его к контакту «земля» разъёма.

Подключение к USBМожно подключить светодиод и к кабелю с разъёмом USB. Такие кабели существуют двух видов, но принципиальной разницы в ходе работы у них нет, так что найдите любой ненужный кабель и приступайте.В USB находится четыре контакта, два из которых передают данные, один контакт – «земля», а ещё один передаёт напряжение.

Вот к нему-то и нужно подключить светодиод. Тестером проверьте напряжение и определите положительный и отрицательный полюса у диода.Кусачками зачистите провода, передающие напряжения. Резистор припаяйте к положительному контакту, место спайки закройте термоусадкой. Ко второму контакту резистора присоедините положительный контакт светодиода и закройте место спайки. Отрицательный контакт диода припаяйте к контакту «земля», закройте место спайки термоусадкой. Подключите USB кабель к компьютеру и проверьте, работает ли он.

Или подсветку с возможностью переключать разные цвета, поэтому тема LED драйверов очень актуальна. Предлагаемая схема такого устройства управляет RGB-светодиодами через Н-канальные МОП-транзисторы, которые позволяют контролировать светодиодные матрицы или лампы до 5 ампер на канал без применения теплоотводов.

Схема электрическая и описание

Во время тестирования контроллер подключался к 50 Вт на 12 В галогенным лампочкам, по одной на каждый канал.

Температура МОСФЕТ транзисторов после 5 мин прогона составила чуть больше 50C. Теоретически общая нагрузка для всех трех каналов RGB не должна превышать 15 ампер.

Указанный транзистор STP36NF06L работает при низком напряжении на затворе. Вы можете использовать такие другие стандартные N-канальные полевые транзисторы, которые будут нормально работать при токах нагрузки до 5 ампер и не требовать слишком большого сигнала на входе для полного отпирания.

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

Вот один из вариантов реализации, который использует 20 светодиодов RGB типа Пиранья. Собрана лампа в коробе 25 х 50 х 1000 мм из алюминия. Позже она была приспособлена под настенную полку, чтобы осветить стол. Свет очень яркий и дает хорошее ровное освещение без какого-либо дополнительного рассеивателя.

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

Ассортимент цветных светодиодных лент достаточно обширен и их правильный выбор – дело довольно сложное. И все же, какими бы идеальными они ни были, для их правильной работы необходим блок питания 12 В (реже 24 В) и, конечно же, блок управления с параметрами, подходящими именно под выбранную световую полосу.

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

Принцип работы

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

Контроллеры различаются как по мощности, так и по количеству выходов, т. е. подключаемых к нему световых полос. Есть устройства с пультом, а бывают и без ПДУ. Также есть различие и по сигналу, поступающему на ленту, т. к. полоса может быть либо аналоговой, либо цифровой. Различие между ними существенное, а вот сходство одно. Все они работают только с блоком питания (трансформатором), потому как светодиодная полоса имеет номинальное напряжение в 12 В, а не 220, как думают некоторые.

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

Варианты подключения

Естественно, что самым простым способом подключения устройства управления RGB станет вариант, при котором подключена лишь одна светодиодная полоса или ее часть. Но такой способ не совсем практичен, хотя он и не требует включения в цепь каких либо дополнительных приборов. Дело все в том, что на одну линию такого устройства возможно подключение не более 5–6 метров световой полосы, что для подсветки комнаты будет явно недостаточным. Если же длина отрезка будет больше, то на ближайшие к контроллеру светодиоды возрастет нагрузка, в результате чего они просто перегорят.

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

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

Две светодиодные ленты

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

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

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

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

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

Контроллер своими руками


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

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

Схема контроллера, сделанного своими руками

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

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

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

Стоит ли игра свеч?

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

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

Общий принцип действия драйвера показан на рисунке 1. Два генератора генерируют прямоугольные импульсы с заполнением 50%, но немного отличаются по частоте (до десятков Гц).

На выходе логического элемента EX-OR (исключающее ИЛИ) высокий уровень появиться только тогда, когда на обоих выходах генераторов одновременно появится 1 или 0.

Диаграмма сигналов на выходах генераторов приведена на рисунке 2. Как видно, на выходе логического элемента EX-OR появляется меандр с переменным заполнением 0…100%. Заполнение это будет изменяться тем медленнее, чем меньше будет разность частот обоих генераторов.

Микросхема CD4060 это 14-разрядный двоичный счётчик с генератором. Миниатюрный дроссель L1, конденсаторы C1 и C2, а также логические элементы CD4060 образуют генератор высокой частоты, работающий на частоте примерно 700 кГц. Эта частота делится в этом счетчике на 212.

Сигнал с генератора также подается на входы CLK 12-разрядных двоичных счётчиков на CD4040, которые подсчитывают импульсы с генератора.

Когда отсчет доходит до того, что на выходе Q11 (ножка 15) появляется логическая единица, на выходе элемента NOT будет низкое состояние, приводящее к блокировке на доли секунды подсчета импульсов (время зависит от емкости C3 и суммарного сопротивления R2 и PR1).

И так происходит при каждом появлении высокого уровня на выходе Q11 CD4040, то есть, как можно заметить, при каждом изменении состояния на выходе Q12 CD4040. Это приводит к тому, что на выходе Q12 CD4060 частота несколько выше от частоты на выходе Q12 CD4040 (разница зависит от C3, R и чем больше значение, тем больше разница).

Благодаря этой минимальной разнице, на элементах EX-OR появляется меандр переменного заполнения по времени. Это в свою очередь приводит к тому, что светодиод, подключенный к выходу этой, цепи будет плавно загораться и гаснуть.

Переменными резисторами можно регулировать скорость изменения заполнения (скорость включения и выключения светодиодов). Так же в схеме добавлен фотодатчик на элементах T4, T5 и R14, для того чтобы схема автоматически включалась только в темное время суток. От сопротивления резистора R14 зависит, при какой яркости схема все еще будет работать.

(233,6 Kb, скачано: 422)

Управление RGB-светодиодом (Веб-сервер) [База знаний “УмныеЭлементы”]

Описание

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

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

Изначально WiFi модуль настроен на работу с помощью AT-команд. Но вручную писать AT-команды очень неудобно, по нескольким причинам:

  • Очень велика вероятность ошибиться и ввести неверную AT-команду

  • Разбор ответа от контроллера будет довольно ёмким

  • Скетч будет трудно-читаемым из-за огромного количества кода

  • Сложно выявить ошибки

Поэтому, чтобы общение с модулем было наиболее эффективным, простым и быстрым, мы воспользуемся библиотекой WiFiEsp

Скачайте и установите данную библиотеку в среду разработки Arduino IDE.

Перед началом работы настройте модуль на скорость обмена в 9600 бод. О том как это сделать, рассказано на этой странице.

Шаг 1. Вам потребуется

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

Шаг 2. Подключите Wifi модуль к шилду

Выполните подключение модуля в соответствии со схемой ниже.

Шаг 3.

Загрузите скетч на контроллер

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

  • char ssid[] – здесь должно быть Ваше имя WiFi сети

  • char pass[] – здесь должен быть пароль от Вашей WiFi сети

  • rgb_pins[] – вывод контроллера, к которым подключены цвета светодиода: красный, зелёный и синий

#include "WiFiEsp.h" //подключение библиотеки WiFiEsp
 
// Эмуляция Serial соединения
#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial wifiSerial(6, 7); // TX - модуля , RX - модуля
#endif
 
char ssid[] = "SmartElements"; //имя сети wifi
char pass[] = "1234567890"; //пароль от сети wifi
int status = WL_IDLE_STATUS; //статус сети wifi
const int rgb_pins[] = {3, 4, 5}; //выводы RGB светодиода
boolean rgb_states[] = {false, false, false}; //состояние выводов
 
WiFiEspServer server(80); //пересенная для создания объекта сервера
 
//использование кольцевого буфера для увеличения скорости
RingBuffer buf(8);
 
void setup()
{
  for (int i = 0; i < 3; i++) { //установка режимов выводов 
    pinMode(rgb_pins[i], OUTPUT);  
    digitalWrite(rgb_pins[i], rgb_states[i]);
  }
 
  //инициализация Serial-соединения для отладки
  Serial. begin(9600);
  //инициализация Serial-соединения для ESP-модуля
  wifiSerial.begin(9600);
  //инициализация ESP модуля
  WiFi.init(&wifiSerial);
 
  //проверка существования модуля
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi module not present");
    //если модуля нет, то не продолжать работу далее
    while (true);
  }
 
  //попытка подключения к wifi сети
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: "); //вывод надписи о попытке подключения
    Serial.println(ssid); //вывод названия сети
    //подключение к сети, используя имя и пароль
    status = WiFi.begin(ssid, pass);
  }
 
  Serial.println("You're connected to the network");
  printWifiStatus(); //вывод статуса подключения
 
  //инициализация веб-сервера на порту № 80
  server.begin();
}
 
 
void loop()
{
  WiFiEspClient client = server.available();  //ожидание входящих клиентов
 
  if (client) {                               //если получен клиент,
    Serial.println("New client");             //вывести сообщение в Serial-порт
    buf. init();                               //инициализация буфера
    while (client.connected()) {              //цикл, пока клиент подключен
      if (client.available()) {               //если от клиента есть байты для чтения,
        char c = client.read();               //прочитать байт, а затем
        buf.push(c);                          //добавить его в буфер
 
        //если в строке получены два символа завершения строки
        //значит - это конец HTTP запроса, так что нужно отправить ответ
        if (buf.endsWith("\r\n\r\n")) {
          sendHttpResponse(client);
          break;
        }
 
        //проверить если запрос был одним из: "GET /R", "GET /G" или "GET /B":
        if (buf.endsWith("GET /R")) { //запрос изменения состояния красного цвета
          Serial.println("Change red state"); //вывод отладочной информации
          changeStateRGB(0); //изменение статуса цвета
        } else if (buf.endsWith("GET /G")) { //запрос изменения состояния зелёного цвета
          Serial. println("Change green state"); //вывод отладочной информации
          changeStateRGB(1); //изменение статуса цвета
        } else if (buf.endsWith("GET /B")) { //запрос изменения состояния синего цвета
          Serial.println("Change blue state"); //вывод отладочной информации
          changeStateRGB(2); //изменение статуса цвета
        }
      }
    }
 
    //закрытие соединения
    client.stop();
    Serial.println("Client disconnected");
  }
}
 
/* Отправка и формирование страницы - ответа
 *  на сервер 
 */
void sendHttpResponse(WiFiEspClient& client)
{
  //Обычно, HTTP заголовки начинаются с кода ответа (напр. HTTP/1.1 200 OK)
  // и типа страницы чтобы клиент знал, что приходит, затем пустая строка
  client.print(
    "HTTP/1.1 200 OK\r\n"
    "Content-Type: text/html\r\n"
    "Connection: close\r\n"  //соединение будет закрыто после завершения ответа
    "\r\n");
  client.print("<!DOCTYPE HTML>\r\n");
  client.print("<html>\r\n");
 
  //заголовок страницы
  client. print("<head>\r\n");
  client.print("<meta charset=\"utf-8\">\r\n");
  client.print("<title>Данные модуля</title>\r\n");
  client.print("</head>\r\n");
 
  //тело страницы
  client.print("<h2>Привет от SmartElements!</h2>\r\n");
  client.print("<p>Данные получены с помощью ");
  client.print("<a href=\"https://smartelements.ru/collection/svyaz/product/wifi-modul-esp-12\">");
  client.print("крутого Wi-Fi модуля</a></p>\r\n");
  client.println();
 
  //затем определение текущего цвета RGB светодиода и вывод его
  printCurrentColor(client);
  client.println("<br>");
  client.println("<br>");
 
  //вывод состояния цвета в строку со ссылкой для изменения
  printLinkState(client, 0);
  printLinkState(client, 1);
  printLinkState(client, 2); 
 
  //HTTP ответы заканчиваются с пустой строки
  client.println();
}
 
/* Вывод состояния сети и адреса для подключения к моджулю  
 */
void printWifiStatus()
{
  //вывод названия сети
  Serial. print("SSID: ");
  Serial.println(WiFi.SSID());
 
  //вывод полученного модулем IP-адреса
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
 
  //вывод информации о адресе в браузере
  Serial.println();
  Serial.print("To see this page in action, open a browser to http://");
  Serial.println(ip);
  Serial.println();
}
 
/* Изменение статуса и зажигание светодиода
 */
void changeStateRGB(const int& i)
{
  rgb_states[i] = !rgb_states[i]; //Изменение состояния светодиода
  digitalWrite(rgb_pins[i], rgb_states[i]); //Зажечь/погасить светодиод (цвет)
}
 
/* Формирование строки-ссылки для управления текущим цветом.
 *  В зависимости от номера вывода опредяется цвет и 
 *  выводится строка запроса.
 *  В зависимости от текущего состояния цвета (включен он или нет),
 *  меняется надпись ссылки. Если цвет выключен, то надпись будет "Включить цвет"
 *  и наоборот.
 */
void printLinkState(WiFiEspClient& client, const int& i)
{
  client.print("<a href=\"");
  if (i == 0) {
    client. print("/R\" style=\"color:red");
  } else if (i == 1) {
    client.print("/G\" style=\"color:green");
  } else {
    client.print("/B\" style=\"color:blue");
  }
  client.print("\">");
  if (rgb_states[i]) {
    client.print("Выключить");
  } else {
    client.print("Включить");
  }
  client.println(" цвет</a><br>");
}
 
/* Определение текущего цвета и светодиода и вывод надписи об этом
 *  соответствующим цветом.
 */
void printCurrentColor(WiFiEspClient& client) 
{
  client.print("<h3 style=\"background-color:");
  if (rgb_states[0] == true && rgb_states[1] == false && rgb_states[2] == false) {
    client.print("red");
  } else if (rgb_states[0] == false && rgb_states[1] == true && rgb_states[2] == false) {
    client.print("green");
  } else if (rgb_states[0] == false && rgb_states[1] == false && rgb_states[2] == true) {
    client.print("blue");
  } else if (rgb_states[0] == true && rgb_states[1] == true && rgb_states[2] == false) {
    client. print("yellow");
  } else if (rgb_states[0] == true && rgb_states[1] == false && rgb_states[2] == true) {
    client.print("purple");
  } else if (rgb_states[0] == false && rgb_states[1] == true && rgb_states[2] == true) {
    client.print("aqua");
  } else if (rgb_states[0] == true && rgb_states[1] == true && rgb_states[2] == true) {
    client.print("silver");
  } else if (rgb_states[0] == false && rgb_states[1] == false && rgb_states[2] == false) {
    client.print("black");
  } 
  client.print("\">Текущий цвет RGB светодиода</h3>");
}

Шаг 4. Где запущен сервер

Далее, откройте монитор Serial-порта в Arduino IDE, и посмотрите параметры подключения. Вы увидите информацию вида:

[WiFiEsp] Initializing ESP module
[WiFiEsp] Initilization successful - 1.5.4
Attempting to connect to WPA SSID: SmartElements
[WiFiEsp] Connected to SmartElements
You're connected to the network
SSID: SmartElements
IP Address: 192. 168.1.18

To see this page in action, open a browser to http://192.168.1.18

[WiFiEsp] Server started on port 80

Где:

  • SSID – имя сети, к которой подключился модуль

  • IP Address – IP адрес модуля

Скопируйте адрес сайта, в нашем случае он выглядит так:

 http://192.168.1.18 

Данный IP-адрес действует только внутри Вашей домашней WiFi сети.

Шаг 5. Результат

Откройте браузер, который Вы используете для выхода в интернет. И в строке ввода адреса сайта, вставьте адрес, скопированный из шага 4. После этого загрузится страница вида:

Где:

  1. Адрес Вашего сайта

  2. Текущий цвет RGB-светодиода (черный – означает что светодиод выключен)

  3. Ссылка для включения красного цвета свечения

  4. Ссылка для включения зелёного цвета свечения

  5. Ссылка для включения синего цвета свечения

Шаг 6.

Красный цвет

На сайте, кликните по ссылке красного цвета «Включить цвет».

Технически, после выполнения клика по ссылке на наш веб сервер будет отправлен запрос «GET /R» (получить красный). Этот запрос обрабатывается контроллером. Обработку запроса мы описали в скетче, где указали что нам нужно инвертировать (сделать обратным) значение цвета. То есть, если сейчас был выключен красный, его включить. И наоборот.

Где:

  1. Адрес и выполненный запрос

  2. Значение текущего цвета светодиода

  3. Обратите внимание, что ссылка красного цвета изменилась с команды «Включить» на команду «Выключить»

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

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

Шаг 7. Фиолетовый цвет

Далее, после того как страница окончательно обновилась, давайте сделаем клик по ссылке синего цвета «Включить цвет»

Обратите внимание:

  1. Снова поменялся запрос на сервер

  2. Текущий цвет изменился на фиолетовый (сиреневый)

  3. Ссылка синего цвета изменилась с команды «Включить» на команду «Выключить»

Светодиод стал светиться фиолетовым (сиреневым) цветом

Шаг 8.

Белый цвет

Ну и, наконец, добавим ещё не включенный зелёный цвет, кликнув по ссылке зелёного цвета.

И увидим следующее:

  1. Изменение запроса

  2. Изменение цвета текущего свечения (отображаем серым, так как у нас белый фон сайта и белый цвет на нём будет не виден)

  3. Ссылка зелёного цвета изменилась с команды «Включить» на команду «Выключить»

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

Шаг 9. Выключение свечения

Далее, будем отключать включенные цвета. Нажмём на ссылку красного цвета, тем самым отключив свечение красного цвета. После выключения красного, светодиод будет светиться голубым цветом (сочетание синего и зелёного).

Ссылка красного цвета поменялась с «Выключить» на «Включить».

Технически, кликая на ссылку одного цвета, мы посылаем один и тот же запрос «GET /R» (получить красный). А далее в скетче, в зависимости от текущего состояния свечения цвета, мы его меняем на противоположное. Это гораздо проще, чем создавать отдельные кнопки (ссылки) для включения и отключения цвета.

Шаг 10. Управляйте цветом

Посмотрите, какой цвет свечения получится в сочетании красного и зелёного цветов.

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

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

Как управлять RGB светодиодом с телефона

Как управлять RGB светодиодом с телефона.
Плавное изменение цвета.
Смешивание цветов из палитры нажатием на выбранный оттенок.
Простое подключение светодиода к ESP и создание WEB страницы.

Сегодня небольшое видео. И опять про светодиоды. Рассмотрим пример управления цветом 3-х цветного светодиода. Вот так выглядит интерфейс управления светодиодом на экране телефона и браузера.
У меня на канале уже есть несколько видео про управление светодиодом. Если интересно, то можете посмотреть. 
Давайте посмотрим что у меня получилось. И возможно вы захотите повторить этот пример. Сразу предупреждаю, что снимать на камеру светодиоды очень сложно. Камера засвечивается и не показывает правильно цвета, но поверьте, в жизни  всё гораздо лучше.
Картинка справа — это как выглядит на телефоне интерфейс управления цветами светодиода. Для его отображения надо перейти по IP адресу, на котором у вас определилась плата ESP.
По центру это тот же самый экран телефона, но записанный с камеры во время работы.
А ещё левее – это сам RGB светодиод. 
Ну и самый последний экран – это монитор порта на который я вывел значения. Эти значения и будут преобразовываться в rgb цвета. 
Получилось как-то не очень красиво. Какое-то нагромождение экранов, но по-другому, на одном экране я показать не смог. 
Данные обрабатываются очень быстро и я не заметил каких-нибудь задержек.
Теперь посмотрим на схему подключения светодиода.
У светодиода 4 вывода. Один общий и по одному на каждый цвет.
Вам надо знать какой у вас светодиод, с общим анодом или катодом. От этого будет зависеть куда подключается общий провод., к минусу или плюсу питания. У меня светодиод с общим катодом, поэтому я подключил общий вывод к минусу питания.
Оставшиеся контакты я подключил через резисторы к выходам D1 D2 D3 платы ESP.
Если вам что то здесь не понятно то посмотрите видео про светодиоды. Там всё подробно рассказано.
В скетче, вам надо будет только указать ваши данные для WIFI сети, и если вы вдруг захотите подключить к другим выводам, то измените их в этом месте скетча.
Этот код отвечает за вывод HTML страницы на экране. Это javascript и он довольно сложный, поэтому я не буду его объяснять. Если захотите разобраться то попробуйте. Будут вопросы спрашивайте.
Как я сказал, это будет маленькое видео. Оно не сложное для повторения, поэтому я особо не стал углубляться.

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

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

Как управлять светодиодом WS2811 RGB с помощью Arduino

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

Адресные светодиоды RGB WS2811 отлично подходят для получения разных цветов. Давайте создадим контроллер светодиодов RGB для управления светодиодом WS2811 для управления пиксельными светодиодами. А также я хочу поблагодарить UTSOURCE за помощь с их огромным списком компонентов. В ситуации с COVID19 они предоставляют маски. Итак, чего вы ждете? Разместите свой первый заказ в UTSOURCE.

Прибыль от продажи масок KN95 и инфракрасного термометра от UTSOURCE.сеть: https://www.utsource.net/home/healthcare

Что такое светодиоды ws2811?

  • ws2811 – это светодиод RGB. Тем не менее, это что угодно, только не простая светодиодная лента RGB. Это адресный светодиод RGB. Это означает, что вы можете управлять затенением каждого движения с помощью информации о сигнале.
  • Вы можете получать эти информационные сигналы от различных устройств, таких как цифровой вывод платы Arduino, от законного контроллера светодиодов RGB и т. Д. Основная проблема заключается в том, что этот информационный сигнал представляет собой импульс ШИМ. Светодиоды запускают импульсы ШИМ.
  • Используемый мной светодиодный индикатор – это адресный светодиод RGB ws2811. Название ws2811 происходит от микросхемы драйвера ws2811. Для этого мы рассматриваем это светодиоды ws2811.
  • В некоторых случаях ИС может быть внутри светодиода, такого рода светодиоды известны как светодиоды ws2812. Эти светодиоды дополнительно работают по аналогичной схеме.
  • Этот адресный светодиодный RGB-светодиод ws2811 работает от источника постоянного тока 5 В. Так что вы должны иметь дело с крайним напряжением.

Светодиодный контроллер WS2811 RGB, который мы производим сегодня, дополнительно рассчитан на постоянное напряжение 5 В.

Контроллер:

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

  • T1000s (Самый популярный и дешевый контроллер)
  • SP105E
  • SP108E
  • HC008

В любом случае я предлагаю вам использовать Arduino IDE в качестве контроллера. Это поможет вам расширить вашу информацию о кодировании.

Видео YouTube для управления светодиодом WS2811 RGB:

Посмотрите видео Youtube, и оно станет более очевидным.

Arduino как контроллер светодиодов WS2811 RGB:

Здесь я буду использовать некоторые важные модели из библиотеки Arduino

  • FastLED.
  • Adafruit Neopixel.

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

  • LED_Pin иначе называется Data_Pin. Вывод используется для подачи информационного сигнала на светодиоды.
  • Num_LED иначе называется количеством светодиодов. Здесь вам нужно указать общее количество светодиодов, которые вы связываете со светодиодами.
  • В определенных кодах вы обнаружите набор настроек яркости. Эта альтернатива в первую очередь используется для настройки правильной яркости светодиодов. Здесь мы обсудим цифровые ценности.Здесь полный диапазон составляет от 0 до 255. В настоящее время 0 соответствует 0% великолепия, а 255 – 100% яркости. Вы можете использовать любое из этих двух качеств для светодиодного контроллера WS2811 RGB.
  • Работая с этими двумя библиотеками, я обнаружил, что библиотека fastLED работает безупречно и просто. Более того, здесь вы можете кодировать индивидуально, а также можете пройтись по любой выставке для освещения светодиодов.
  • Предположим, вам нужно запустить светодиод 1, тогда вы можете составить отдельную строку кода и заставить светодиоды светиться.
  • Вы можете сделать базовый цикл for_loops для работы светодиодов. Эта библиотека действительно служит хорошим предзнаменованием.

Процесс печатной платы:

В этом предприятии нам потребуется контроллер и некоторые другие аналогичные детали для работы микросхемы atmega328P. По совпадению, если у вас более низкий финансовый план, на этом этапе вы также можете использовать чип atmega8. Чип atmega8 также имеет аналогичный сегмент корреляции. Кроме того, вы также можете управлять чипом atmega8 с помощью Arduino Uno, используя Arduino в качестве интернет-провайдера.

Для создания печатной платы я выбрал сайт JLC PCB. Они являются одними из крупнейших производителей печатных плат в Китае. Просто загрузите свои записи Garber сегодня и получите свои первые 10 печатных плат всего за 2 доллара. Они не берут дополнительную плату за затенение печатной платы. Время обработки составляет 48 часов, а время отправки также быстрое, и вы можете увидеть качество печатной платы на видео. Это невероятно. Кроме того, я только что заплатил 2 доллара.

Примечания:

  • Убедитесь, что вы подключаете светодиоды так близко, как можно было ожидать в данных обстоятельствах.Этот светодиод внезапно увеличивает спрос на ШИМ. К концу полосы удары станут более хрупкими. Поэтому вам следует использовать информационный провод как можно короче, насколько это можно ожидать в данных обстоятельствах.
  • Убедитесь, что вы правильно подключили соответствующий источник питания 5 В. Усилители выше, чем у расчетных. Таким образом, он продлит жизнь лампам.
  • После подключения адресуемых светодиодов RGB к ws2811 вам следует проверить неофициальное напряжение завтрака в самых концентраторах.Если вы обнаружите, что ваша емкость гибко составляет около 5,2 В, а каждый ранний обед имеет на 4,5 В выше, тогда соединение в порядке, но если вы обнаружите, что в некоторых неофициальных завтраках напряжение ниже 3 В. вы должны использовать провода высокой меры для этой ассоциации. Для этой ситуации будет принципиальная беда. В проводах, поэтому вам следует позаботиться о данной ситуации.
  • Просто попытайтесь соединить все светодиоды в U-образном дизайне, не используйте Z-дизайн.Поскольку в дизайне Z есть настоящие информационные проблемы. Если вы используете тонкие провода, вы обнаружите, что часть основных светодиодов будет работать легко. Однако, в конце концов, светодиоды будут мигать. Для светодиодов эта штука бесполезна.
  • Это примечание как бы для моих необыкновенных индийских пользователей. Пожалуйста, не принимайте эти адресуемые светодиоды RGB ws2811 во время празднования, в этой ситуации стоимость будет выше, чем в другое время. Поэтому, пожалуйста, если вы собираетесь приобрести эти светодиоды в этот момент, приобретайте их в медленное время года.Вы можете получить на 10 долларов или, я думаю, на 700 рупий меньше за один пакет закупок.

Урок Arduino – RGB LED «osoyoo.com

Содержимое
  1. Введение
  2. Препараты
  3. О светодиодах RGB
  4. Примеры

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

Оборудование

  • Плата Osoyoo UNO (полностью совместима с Arduino UNO rev.3) x 1
  • RGB светодиод x 1
  • Резистор 200 Ом x 3
  • Потенциометр 10к x 3
  • Макет x 1
  • Джемперы
  • Кабель USB x 1
  • шт x 1

Программное обеспечение

  • Arduino IDE (версия 1.6.4+)

Как работают светодиоды RGB?

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

Два типа светодиодов RGB

Существуют обычные анодные светодиоды RGB и обычные катодные светодиоды RGB. См. Рисунок ниже:

Как видите, 3 светодиода могут использовать общий катод или анод. В результате получается светодиод RGB, который имеет 4 контакта, по одному для каждого светодиода, и один общий катод или один общий анод.

4 контакта, которые можно различить по длине.Самый длинный из них – это земля (-) или напряжение (+), в зависимости от того, является ли это светодиод с общим катодом или с общим анодом, соответственно.

Самый популярный тип – светодиоды RGB с обычным анодом. Мы также используем его здесь.

Примечание: Если вы используете обычный светодиод ANODE вместо обычного CATHODE, подключите длинный контакт к + 5V вместо заземления

Как создать разные цвета?

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

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

Вы можете создать один из этих трех цветов – красный, зеленый или синий – включив только один светодиод.

Например, если вы хотите получить синий цвет, вы активируете синий светодиод и выключаете два других.

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

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

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

Широтно-импульсная модуляция (ШИМ)

Яркость светодиода пропорциональна протекающему через него току, но было бы довольно сложно использовать микроконтроллер для точного управления током, протекающим через светодиод. К счастью, человеческое зрение обладает прекрасным явлением, называемым постоянством зрения. Постоянство зрения – это явление, при котором изображение, которое видится всего лишь долю секунды, будет продолжать «видеть» ваш мозг даже после того, как исходное изображение исчезло или переместилось.Это тот же принцип, что и в фильмах и на телевидении, где быстро меняющееся изображение заставляет ваш мозг видеть непрерывное движение. Быстро включая и выключая светодиод, мы можем обманом заставить мозг видеть «среднее» значение яркости, основанное на рабочем цикле управляющего ШИМ-сигнала.

Широтно-импульсная модуляция (ШИМ) – это практика модуляции рабочего цикла сигнала, используемая в этом приложении для управления средней мощностью, передаваемой на каждый светодиод. На следующем рисунке показаны три различных рабочих цикла, сначала с рабочим циклом 50%, затем с рабочим циклом 10% и 90%.Во время рабочего цикла 10% сигнал находится на высоком логическом уровне только короткое время в каждом цикле, но при рабочем цикле 90% большая часть периода сигнала проходит на высоком логическом уровне. Если частота сигнала достаточно высока, то не будет видимого мерцания, а яркость светодиода будет пропорциональна скважности сигнала.

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

Использование потенциометра для управления RGB

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

Соединение

Создайте схему, как показано ниже:

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

Примечание: Если вы используете общий катод светодиода RGB, вам необходимо подключить более длинный вывод к GND.

Кодовая программа

После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB. Зеленый индикатор питания (с надписью PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта.Затем загрузите следующий скетч на свой Arduino.

 int redPin = 11;
int bluePin = 10;
int greenPin = 9;
int redIn = 0;
int greenIn = 1;
int blueIn = 2;
int redVal;
int greenVal;
int blueVal;
void setup () {
// здесь нечего делать
}
void loop () {
redVal = analogRead (redIn);
greenVal = analogRead (greenIn);
blueVal = analogRead (blueIn);
// analogRead возвращает значение от 0 до 1023
// analogWrite хочет значение от 0 до 255
// Это означает, что нам нужно сопоставить диапазон ввода с
// правильный диапазон вывода.redVal = map (redVal, 0, 1023, 0, 255);
greenVal = map (greenVal, 0, 1023, 0, 255);
blueVal = map (blueVal, 0, 1023, 0, 255);
analogWrite (redPin, redVal);
analogWrite (greenPin, greenVal);
analogWrite (bluePin, blueVal);
} 

Рабочий результат

Через несколько секунд после завершения загрузки поверните потенциометры, и вы увидите следующие результаты:

Автоматическое программное управление RGB LED

Эта функция обновляет одну из цветовых переменных, становясь ярче или тусклее.Он также обновляет выходы и задержки в течение 10 миллисекунд.

Соединение

Создайте схему, как показано ниже:

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

Кодовая программа

После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB.Зеленый индикатор питания (с надписью PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий скетч на свой Arduino.

 int redPin = 11;
int bluePin = 10;
int greenPin = 9;
int redIn = 0;
int greenIn = 1;
int blueIn = 2;
int redVal;
int greenVal;
int blueVal;
void setup () {
redVal = 255;
greenVal = 255;
blueVal = 255;
Обновить();
}
// Эта функция обновляет выходы светодиодов.void update () {
analogWrite (redPin, redVal);
analogWrite (greenPin, greenVal);
analogWrite (bluePin, blueVal);
}
// Эта функция обновляет одну из цветовых переменных
// либо становится ярче, либо тусклее.
// Он также обновляет выходные данные и задержки в течение 10 миллисекунд.
void color_morph (int * value, int get_brighter) {
для (int я = 0; я 255; я ++)
{
если (get_brighter) (* значение) -;
else (* значение) ++;
Обновить();
задержка (10);
}
}
void loop () {
// начинаем с черного (все выключено)
color_morph (& redVal, 1);
// переход на красный
color_morph (& greenVal, 1);
// переход к желтому
color_morph (& redVal, 0);
// переход к зеленому
color_morph (& blueVal, 1);
// переход в аква
color_morph (& redVal, 1);
// переход в белый цвет
color_morph (& greenVal, 0);
// переход к фиолетовому
color_morph (& redVal, 0);
// переход к синему
color_morph (& blueVal, 0);
// переход в черный цвет (все выключено)
} 

Рабочий результат

Через несколько секунд после завершения загрузки вы увидите результат выполнения, как показано ниже:

Пример расширения – Управление цветом светодиода RGB

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

Каждый из трех цветовых каналов – красного, зеленого и синего – имеет 255 уровней яркости. Когда все три основных цвета равны 0, «светодиодный свет» становится самым темным, то есть он выключается. Когда все три основных цвета равны 255, «светодиодный свет» является самым ярким.При наложении света, излучаемого тремя основными цветами, цвета будут смешаны. Однако яркость равна сумме всех яркостей, и чем больше вы смешиваете, тем ярче светодиоды. Этот процесс известен как аддитивное смешивание.

В этом эксперименте мы также будем использовать ШИМ, который, если вы уже усвоили уроки, у вас уже есть базовое представление о. Здесь мы вводим значение от 0 до 255 на три контакта светодиода RGB, чтобы он отображал разные цвета.

Соединение

Создайте схему, как показано ниже:

Кодовая программа

После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB.Зеленый индикатор питания (с надписью PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий скетч на свой Arduino.

 const int redPin = 11; // R подключен к цифровому выводу 11
const int greenPin = 9; // G к цифровому выводу 10
const int bluePin = 9; // B подключен к цифровому выводу 9
void setup () {
pinMode (redPin, ВЫХОД); // устанавливаем redPin как выход
pinMode (greenPin, ВЫХОД); // устанавливаем greenPin как выход
pinMode (bluePin, ВЫХОД); // устанавливаем bluePin как выход
}
void loop () // запускаем снова и снова
{
// Основные цвета:
цвет (255, 0, 0); // включаем красный светодиод RGB
задержка (1000);
цвет (0,255, 0); // включаем светодиод RGB зеленым
задержка (1000);
цвет (0, 0, 255); // включаем светодиод RGB в синий цвет
задержка (1000);
// Пример смешанных цветов:
цвет (255,0,252); // включаем красный светодиод RGB
задержка (1000);
цвет (237,109,0); // включаем светодиод RGB в оранжевый цвет
задержка (1000);
цвет (255,215,0); // включаем светодиод RGB в желтый цвет
задержка (1000);
цвет (34,139,34); // включаем светодиод RGB зеленым
задержка (1000);
цвет (0,112,255); // включаем светодиод RGB в синий цвет
задержка (1000);
цвет (0,46,90); // включаем светодиод RGB в индиго
задержка (1000);
цвет (128,0,128); // включаем светодиод RGB в фиолетовый цвет
задержка (1000);
}
/ *********************************************** ***** /
цвет пустоты (символ без знака - красный, символ без знака - зеленый, символ без знака - синий)
// функция генерации цвета
{
 analogWrite (redPin, красный);
analogWrite (greenPin, зеленый);
analogWrite (bluePin, синий);
} 

Рабочий результат

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

ARDUINO TUTORIAL 68: Создание RGB-светодиода с дистанционным управлением и регулировкой яркости и цвета

#include

int IRpin = 9;

IRrecv IR (IRpin);

decode_results cmd;

String myCom;

int rPin = 6;

int gPin = 10;

int bPin = 5;

int rBright = 255;

int gBright = 255;

int bBright = 255;

с плавающей запятой dFact = 1;

void setup ()

{

Serial.begin (9600);

IR.enableIRIn ();

pinMode (rPin, OUTPUT);

pinMode (gPin, ВЫХОД);

pinMode (bPin, ВЫХОД);

}

void loop () {

while (IR.decode (& cmd) == 0) {

}

delay (1500);

IR.resume ();

if (cmd.value == 0xFF6897) {

myCom = “ноль”;

Serial.println (myCom);

}

если (cmd.значение == 0xFF30CF) {

myCom = “один”;

Serial.println (myCom);

}

if (cmd.value == 0xFF18E7) ​​{

myCom = “два”;

Serial.println (myCom);

}

if (cmd.value == 0xFF7A85) {

myCom = “three”;

Serial.println (myCom);

}

if (cmd.value == 0xFF10EF) {

myCom = “четыре”;

Serial.println (myCom);

}

if (cmd.value == 0xFF38C7) {

myCom = “пять”;

Серийный.println (myCom);

}

if (cmd.value == 0xFF5AA5) {

myCom = “шесть”;

Serial.println (myCom);

}

if (cmd.value == 0xFF42BD) {

myCom = “семь”;

Serial.println (myCom);

}

if (cmd.value == 0xFF4AB5) {

myCom = “восемь”;

Serial.println (myCom);

}

if (cmd.value == 0xFF52AD) {

myCom = “девять”;

Serial.println (myCom);

}

если (cmd.значение == 0xFFA25D) {

myCom = “pwr”;

Serial.println (myCom);

}

if (cmd.value == 0xFF629D) {

myCom = “v +”;

Serial.println (myCom);

}

if (cmd.value == 0xFFE21D) {

myCom = “fun”;

Serial.println (myCom);

}

if (cmd.value == 0xFF22DD) {

myCom = “rew”;

Serial.println (myCom);

}

if (cmd.value == 0xFF02FD) {

myCom = “play”;

Серийный.println (myCom);

}

if (cmd.value == 0xFFC23D) {

myCom = “ff”;

Serial.println (myCom);

}

if (cmd.value == 0xFFE01F) {

myCom = “dn”;

Serial.println (myCom);

}

if (cmd.value == 0xFFA857) {

myCom = “v-“;

Serial.println (myCom);

}

if (cmd.value == 0xFF906F) {

myCom = “up”;

Serial.println (myCom);

}

если (cmd.значение == 0xFF9867) {

myCom = “eq”;

Serial.println (myCom);

}

if (cmd.value == 0xFFB04F

) {

myCom = “st”;

Serial.println (myCom);

}

if (myCom == “pwr”) {

rBright = 255;

г Ярко = 255;

bBright = 255;

dFact = 1;

}

if (myCom == “fun”) {

rBright = 0;

г Ярко = 0;

bBright = 0;

dFact = 0;

}

if (myCom == “ноль”) {

rBright = 255;

г Ярко = 255;

bBright = 255;

}

if (myCom == “one”) {

rBright = 255;

г Ярко = 0;

bBright = 0;

}

if (myCom == “два”) {

rBright = 0;

г Ярко = 255;

bBright = 0;

}

if (myCom == “три”) {

rBright = 0;

г Ярко = 0;

bBright = 255;

}

if (myCom == “четыре”) {

rBright = 0;

г Ярко = 255;

bBright = 255;

}

if (myCom == “пять”) {

rBright = 255;

г Ярко = 0;

bBright = 150;

}

if (myCom == “шесть”) {

rBright = 255;

г Ярко = 255;

bBright = 0;

}

if (myCom == “dn”) {

dFact = dFact *.75;

}

if (myCom == “up”) {

dFact = dFact * 1.3;

если (dFact> 1) {

dFact = 1;

}

}

analogWrite (rPin, rBright * dFact);

analogWrite (gPin, gBright * dFact);

analogWrite (bPin, bBright * dFact);

}

Как управлять светодиодом WS2811 RGB с помощью Arduino

Адресуемое управление светодиодами RGB WS2811:
Адресные светодиоды RGB WS2811 отлично подходят для получения различных цветов.Давайте сделаем контроллер светодиодов RGB WS2811 для управления пиксельными светодиодами.

Необходимые компоненты:

1. Плата Arduino Uno R3
2. Светодиоды WS2812B
3. Источник питания 5 В
4. IRFZ44N
5. Светодиод:
6. Резистор
7. Конденсатор
8. Паяльник
Что такие светодиоды ws2811?
ws2811 – это светодиод RGB. Но это не простая светодиодная лента RGB. Это адресный светодиод RGB. Это означает, что вы можете контролировать каждый цвет светодиода с помощью входного сигнала данных.
Вы можете получать эти сигналы данных от различных устройств, например, от цифрового вывода платы Arduino, от соответствующего контроллера светодиодов RGB и многих других. Главное, чтобы этот информационный сигнал был импульсом ШИМ. Эти импульсы ШИМ запускают светодиоды.
Я использую адресный светодиод ws2811 с ​​RGB-подсветкой. Название ws2811 происходит от микросхемы драйвера ws2811. Для этого мы называем это светодиодами ws2811.
Иногда ИС может быть внутри светодиода, этот тип светодиода известен как светодиоды ws2812. Эти светодиоды также работают по тому же принципу.
Этот адресный светодиодный RGB-светодиод ws2811 работает от постоянного тока 5 В. Поэтому следует позаботиться о полярности напряжения.
Контроллер светодиодов RGB WS2811, который мы производим сегодня, также работает с постоянным током 5 В

Подключение для WS2811 RGB LED:
Светодиодные ленты RGB, которые я купил, имеют порт «папа» и порт «мама». Мужской порт используется для отправки сигнала данных от контроллера на светодиоды. А женский порт используется для отправки сигнала данных на следующие светодиодные ленты. Таким образом, соединение идет, и мы можем управлять светодиодом WS2811 RGB.
Для работы светодиодов требуется 5 В постоянного тока. Но все мы знаем, что у округа Колумбия большие потери. Так вы увидите, что светодиод возле блока питания светится больше, чем светодиодные ленты Last.
Для решения этой проблемы нам необходимо подключить все светодиоды + ve и все светодиоды к земле. Затем мы должны дать мощность в каждой полосе.
Контроллер:
В этом случае есть 2 варианта. Вы можете купить готовые контроллеры. Что будет легче программировать с данным программным обеспечением. Вы получите простой программный интерфейс, который поможет вам, если вы не хотите возиться с кодированием.
Arduino как контроллер светодиодов WS2811 RGB:
Здесь я буду использовать несколько основных примеров из библиотеки Arduino
1. FastLED.
2. Adafruit Neopixel.
Теперь посмотрите видеоинструкцию о том, как использовать это и какие параметры вам нужно изменить. Позвольте мне сказать вкратце.
LED_Pin также известен как Data_Pin. Контакт используется для подачи сигнала данных на светодиоды.
Num_LED также известен как количество светодиодов. Здесь вы должны указать общее количество светодиодов, которые вы подключаете к светодиодам.

В некоторых кодах вы найдете настройки яркости. Эта опция в основном используется для настройки правильной яркости светодиодов. Здесь мы поговорим о цифровых ценностях. Здесь общий диапазон составляет от 0 до 255. Теперь 0 соответствует 0% яркости, а 255 – 100% яркости. Вы можете использовать любые значения между этими двумя значениями для светодиодного контроллера WS2811 RGB.
Работая с этими двумя библиотеками, я обнаружил, что библиотека fastLED работает безупречно и легко для понимания. И здесь вы можете кодировать один за другим, а также можете использовать любой массив для освещения светодиодов.
Предположим, вы хотите запустить светодиод 1, тогда вы можете написать одну строку кода и заставить светодиоды светиться.
Вы можете сделать простой цикл for_loops для работы светодиодов. Эта библиотека действительно имеет смысл.
Матрицы форм:
С этими светодиодами можно сделать отличный дисплей. В основном используются светодиоды ws2812. Эти светодиоды имеют высокую плотность, поэтому дисплей, который будет производиться, будет намного больше по сравнению со светодиодами ws2811.
Для создания изображения вам понадобится драйвер светодиодов, потому что светодиодов слишком много, вы не можете управлять всеми ими с помощью одного Arduino (это не невозможно.Но очень сложно с Ардуино запустить видеофайл через Ардуино). Так что в основном люди используют подходящий контроллер t300k для управления этими светодиодами. И сделать это несложно.
Для этого вам понадобится кабель Ethernet. Подключите контроллер к компьютеру, а затем откройте данное программное обеспечение. Затем запустите любой видеофайл, и ваш видеофайл отобразится на дисплее. Все очень просто.
Схемы:

Smart RGB LED Light Stick – Совместимость с Arduino

Это интеллектуальная светодиодная подсветка, содержащая 20 светодиодов RGB с однопроводной адресацией и полноцветной RGB-подсветкой WS2812B и микроконтроллер Atmega328 .Эти полноцветные интеллектуальные светодиоды RGB работают по протоколу с однопроводной адресацией, поэтому им требуется микроконтроллер для генерации последовательности импульсов для управления цветами и эффектами мигания. Обратитесь к таблице данных светодиодов, чтобы расшифровать эффекты мигания различных цветов. Рабочее питание схемы – 5V DC с максимальным током 1A.

Пример кода Arduino поможет вам протестировать плату. Микросхема Atmega328 может быть запрограммирована с использованием платформы Arduino, мы использовали DIP-пакет микроконтроллера для упрощения программирования с использованием Arduino UNO и вставки запрограммированного чипа на светодиодный стик.

Характеристики

  • Цифровой контакт D2 управляет светодиодами, а аналоговый контакт A0 предназначен для подключения датчика или переключателя.
  • Рабочий источник питания 5 В постоянного тока / 1 А
  • Размеры печатной платы 156,37 x 13,81 мм

Загрузчик / Программирование Arduino Atmega328 доступно здесь: https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoToBreadboard

WS2812B Светодиод

WS2812B – это светодиодный источник света с интеллектуальным управлением, в котором схема управления и микросхема RGB интегрированы в корпус из 5050 компонентов.Он включает в себя интеллектуальную защелку данных цифрового порта и схему усилителя преобразования сигнала. Также в комплект входят прецизионный внутренний осциллятор и элемент управления постоянным током, программируемый напряжением, что эффективно обеспечивает согласованную высоту цвета точки пикселя. Протокол передачи данных использует единственный режим связи NZR. После сброса питания пикселя порт DIN получает данные от контроллера, первый пиксель собирает исходные 24-битные данные, которые затем отправляются во внутреннюю защелку данных, другие данные, которые изменяются внутренней схемой усиления преобразования сигнала, отправляются следующему каскадному пикселю через порт DO.После передачи для каждого пикселя сигнал уменьшается на 24 бита. пиксель использует технологию передачи с автоматическим изменением формы, благодаря чему каскадное число пикселей не ограничивается передачей сигнала, а зависит только от скорости передачи сигнала. Время сброса> 280 мкс, это не вызовет неправильного сброса во время прерывания, он поддерживает более низкую частоту и недорогой микроконтроллер. Обновления частоты обновления до 2 кГц, низкая частота кадров и отсутствие мерцания появляются в HD-видеокамере, это улучшает отличный эффект отображения. Светодиод с низким управляющим напряжением, защитой окружающей среды и энергосбережением, высокой яркостью, большим углом рассеяния, хорошей консистенцией, низкой мощностью, длительным сроком службы и другими преимуществами.Микросхема управления, интегрированная в светодиод выше, становится более простой схемой, небольшим объемом, удобной установкой.

Схема

Список деталей

Подключения

Гербер Вью

Фото

Видео

WS2812B Лист данных

WS2812B_ (вер._No._V5) _EN_19112715001349

Управляйте светодиодом RGB с помощью кнопки для изменения цвета, взаимодействуя с Arduino UNO – KT940

Arduino IDE 1.8.5

Вы можете скачать его по этой ссылке: https://www.arduino.cc/en/ Главная / Программное обеспечение

Светодиод RGB

  • Сначала прикрепите три кнопки на макетной плате.
  • Подключите GND Arduino к макетной плате, чтобы создать общую шину GND.
  • Теперь контакт 2 всех кнопок подключен к шине GND макетной платы, а контакт 3 всех кнопок подключен к цифровым контактам 5, 6 и 7 Arduino Uno. Сделайте как показано на изображении ниже.
  • Теперь мы подключаем светодиод RGB на макетной плате. И подключите сопротивление 270 Ом с одной ногой, подключенной к светодиоду RGB, а другой ногой, подключенной к цифровым контактам 9, 10 и 11, как показано на изображении ниже.
  • В электрической схеме Вывод 2 светодиода (GND) подключается к GND. А вывод 1 светодиода (КРАСНЫЙ) подключается к выводу № 11 Arduino.
  • Вывод 3 светодиода (ЗЕЛЕНЫЙ) подключается к цифровому выводу 10 Arduino.
  • Вывод 4 светодиода (СИНИЙ) подключается к цифровому выводу 9 Arduino.
  • Здесь все подключения настроены.
  • Теперь загрузите код.

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

https://docs.google.com/document/d/e/2PACX-1vTMTY1A_CBZFKbmhWdSkszryrZ7he2-KQq4aWBQ7SPIwH5Snstart с помощью светодиоды погаснут.Если нажать и удерживать одну из кнопок, светодиод постепенно станет ярче. Цвет верхней кнопки будет красным, средней – зеленым, а нижней – синим.

  • Когда у вас будет достаточно одного цвета, попробуйте нажать другую кнопку и посмотрите, как они смешиваются.

  • Если вы хотите начать все сначала, нажмите кнопку сброса на Arduino. Это красная кнопка рядом с разъемом USB.

См. Полное руководство: https://www.youtube.com/watch?v=6lkRRb_53fk

Основы Arduino: регулировка яркости светодиода

Первоначально опубликовано 5 февраля 2020 г.

Содержание

  1. Введение
  2. Яркость не регулируется цифровым способом
  3. Изменение яркости светодиода с помощью цифрового выхода
  4. Регулировка яркости с ШИМ
  5. Постепенное мигание светодиода
  6. Статьи по теме

Введение

Эта статья была переведена на английский и изначально была опубликована для deviceplus.jp.

Device Plus представил множество приложений и примеров Arduino, но базовые знания по-прежнему важны, независимо от того, что вы делаете!
В этой статье мы познакомим вас с «ключевыми» основами электроники Arduino, позволив Arduino регулировать яркость светодиода.

Вы можете легко включать и выключать светодиод между ВЫСОКИМ (5 В) и НИЗКИМ (0 В) состояниями, подключив его к цифровым выходным клеммам Arduino. Однако, поскольку цифровой выход может выводиться только в одном из двух состояний, вы не можете регулировать такие элементы управления, как яркость.
Вместо этого для этой цели можно использовать выход «ШИМ». ШИМ можно использовать для регулировки яркости светодиода путем многократного переключения между ВЫСОКИМ и НИЗКИМ состояниями.
В этой статье мы узнаем, как использовать ШИМ для регулировки яркости светодиода. Мы также узнаем, как написать программу, которая использует выход ШИМ для постепенного включения светодиода.

Яркость не может быть изменена цифровым способом

Как мы объяснили в прошлый раз, яркость светодиода меняется в зависимости от протекающего тока.Сравнивая резистор 330 Ом с резистором 10 кОм, подключенным для регулировки величины тока, подключенного к светодиоду, например, через 330 Ом протекает больший ток с меньшим сопротивлением, что приводит к более яркому свечению светодиода. В качестве альтернативы, протекающий ток также изменяется, если вы изменяете напряжение источника питания, подключенного к светодиоду.

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

Однако цифровой выход Arduino имеет только два состояния: ВЫСОКИЙ (5 В) или НИЗКИЙ (0 В), что означает, что значения напряжения и сопротивления не могут быть изменены, даже если схема подключена как есть. Таким образом, яркость светодиода не регулируется. Хотя есть только два состояния выхода, HIGH и LOW, яркость светодиода можно изменить с некоторой изобретательностью.

Изменение яркости светодиода с помощью цифрового выхода

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

Затем создайте программу, как показано ниже, и запишите ее в Arduino. Светодиод должен мигать с интервалом в одну секунду.

В программе светодиод загорается в «digitalWrite (LED_PIN, HIGH)» (строка 11) с выходом HIGH, а затем ожидает в течение времени, указанного параметром «delay (ON_TIME)» (строка 12).Продолжительность указывается в миллисекундах; если вы укажете 1000, светодиод будет гореть в течение одной секунды.

Затем светодиод выключается в «digitalWrite (LED_PIN, LOW)» (строка 14) с выходом LOW, а затем отключается на время, указанное в «delay (OFF_TIME)» (строка 15). Светодиод мигает при повторении этой программы.

Теперь давайте сократим продолжительность включения и выключения. Продолжительность включения может быть изменена с помощью «const int ON_TIME» (строка 3), а продолжительность выключения может быть изменена с помощью «const int OFF_TIME» (строка 4).Измените оба значения на «500» и напишите программу для проверки состояния светодиода. Скорость мигания должна увеличиться. По мере того, как вы уменьшаете значения до «250», «100», «75», «50» и т. Д., Мигание должно становиться быстрее. При значении около «10» светодиод горит постоянно. Если он мигает слишком быстро, человеческий глаз не успевает за ним, из-за чего свет будет казаться постоянно включенным.

Теперь давайте изменим продолжительность включения и выключения. Установите для «ON_TIME» и «OFF_TIME» значение «10».Затем последовательно измените значение «ON_TIME» на «9», «8», «7»… «1» и проверьте состояние свечения светодиода. По мере уменьшения значения вы можете видеть, что светодиод становится темнее.

Светодиод выглядит темнее, потому что продолжительность освещения сокращается, а количество свечения уменьшается. Другими словами, вы можете регулировать яркость светодиода, изменяя «продолжительность свечения». Этот метод позволяет вам управлять яркостью светодиода с помощью цифрового выхода Arduino, оснащенного только функциями включения и выключения.

Регулировка яркости с ШИМ

Как описано выше, вы можете регулировать яркость, регулируя соотношение ВЫСОКИЙ и НИЗКИЙ, заставляя светодиод мигать короткими циклами. Однако создавать собственную программу для управления продолжительностью мигания нецелесообразно. Если для обработки других программ требуется время, интервал мигания сместится, изменяя яркость.

Arduino обеспечивает PWM (широтно-импульсную модуляцию), которая может периодически выводить HIGH и LOW. Функцию ШИМ, периодически переключающуюся между ВЫСОКИМ и НИЗКИМ с заданной скоростью, можно использовать для регулировки яркости светодиода, как описано ранее.

Однако контакты, которые можно использовать для ШИМ, фиксированы в Arduino. Выход PWM доступен только для контактов, у которых есть знак «~» рядом с номером (то есть 3, 5, 6, 9, 10 и 11). Обратите внимание, что другие контакты не поддерживают вывод ШИМ.

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

Для вывода с ШИМ установите целевой вывод в режим вывода с помощью «pinMode ()» (строка 6). Фактический вывод происходит с помощью «analogWrite ()» (строка 10). Укажите целевой номер вывода, а затем установите соотношение HIGH в диапазоне от 0 до 255. «0» всегда выводит LOW, а «255» всегда выводит HIGH. «127» одинаково выводит как HIGH, так и LOW.

В этой программе вы можете указать коэффициент ШИМ в «const int DUTY» (строка 3).Измените значение, чтобы увидеть, как меняется яркость.

Постепенное мигание светодиода

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

Напишите программу, как показано ниже

Вышеупомянутая программа сохраняет коэффициент ШИМ в переменной «i», используемой в функции loop (), чтобы она могла увеличивать значение, чтобы светодиод постепенно становился ярче.

Обработка while (строка 14) увеличивает значение с шагом, указанным в STEP, пока i не достигнет 255.Увеличенное значение выводится функцией analogWrite () (строка 15) для изменения яркости светодиода. Кроме того, ему предписывается ждать в течение времени, указанного параметром WAITTIME, каждый раз, когда изменяется выход ШИМ (строка 16).

Когда коэффициент ШИМ достигает 255, он уменьшается до 0 для постепенного затемнения светодиода (строки с 21 по 25). Вы можете изменить скорость мигания, изменив значение WAITTIME (строка 3) или STEP (строка 4).