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

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

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

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

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

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

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

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

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

При значении 255 максимальное напряжение.

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

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

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

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

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

Через биполярный транзистор
Через полевой транзистор
Через коммутатор напряжения
Управление светодиодной rgb лентой через arduino Управление светодиодной rgb лентой через arduino Управление светодиодной rgb лентой через arduino

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Схема подключения к Arduino RGB светодиода:

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

Аналогично построено и управление RGB лентой Arduino:

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

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

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

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

  1. int led = 120;
    устанавливаем средний уровень яркости
  2. void setup() {
    pinMode(4, OUTPUT);
    устанавливаем 4й аналоговый порт на вывод
    pinMode(2, INPUT);
  3. pinMode(4, INPUT);
    устанавливаем 2й и 4й цифровой порт на ввод для опроса кнопок
    }
    void loop(){
  4. button1 = digitalRead(2);
  5. button2 = digitalRead(4);
    if (button1 == HIGH)
    нажатие на первую кнопку увеличит яркость
    {
    led = led + 5;
  6. analogWrite(4, led);
    }
    if (button2 == HIGH)
    нажатие на вторую кнопку уменьшит яркость
    {
    led = led — 5;
  7. analogWrite(4, led);
    }

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

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

  • Для создания полноценного драйвера управления светодиодной лентой можно использовать модули-датчики.
  • ИК-управление
  • Модуль позволяет запрограммировать до 20 команд.
  • Радиус сигнала около 8м.

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

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

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

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

  1. Позволяет включать освещение еще при приближении к квартире.
  2. Бесконтактное
  3. Датчик расстояния способен по движению руки увеличивать и уменьшать яркость освещения.
  4. Радиус действия до 5м.

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

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

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

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

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

Преимущества RGB светодиодов в простоте конструкции, небольших габаритах и высоком КПД светоотдачи.

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

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

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

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

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

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

  • плата 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 GREEN 12 // Присваиваем имя GREEN для пина 12

#define BLUE 13 // Присваиваем имя BLUE для пина 13

void setup
()
{ pinMode(RED, OUTPUT
); pinMode(GREEN, OUTPUT
); // Используем Pin12 для вывода
pinMode(BLUE, OUTPUT
); // Используем Pin13 для вывода

}
void loop
()
{ digitalWrite
(RED, HIGH
); // Включаем красный свет
digitalWrite
(GREEN, LOW
); digitalWrite
(BLUE, LOW
); delay
(1000); digitalWrite
(RED, LOW
); digitalWrite
(GREEN, HIGH
); // Включаем зеленый свет
digitalWrite
(BLUE, LOW
); delay
(1000); // Устанавливаем паузу для эффекта
digitalWrite
(RED, LOW
); digitalWrite
(GREEN, LOW
); digitalWrite
(BLUE, HIGH
); // Включаем синий свет
delay
(1000); // Устанавливаем паузу для эффекта

}

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

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

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

    После подключения модуля с помощью проводов «папа-мама» загрузите скетч.

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

    #define RED 9 // Присваиваем имя RED для пина 9

    #define GREEN 10 // Присваиваем имя GREEN для пина 10

    #define BLUE 11 // Присваиваем имя BLUE для пина 11

    void setup
    ()
    { pinMode
    (RED, OUTPUT
    ); // Используем Pin9 для вывода
    pinMode
    (GREEN, OUTPUT
    ); // Используем Pin10 для вывода
    pinMode
    (BLUE, OUTPUT
    ); // Используем Pin11 для вывода

    }
    void loop
    ()
    { analogWrite
    (RED, 50); // Включаем красный свет
    analogWrite
    (GREEN, 250); // Включаем зеленый свет
    analogWrite
    (BLUE, 150); // Включаем синий свет

    }

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

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

Читайте также:  Автолампы hb4: галогенные, ксеноновые или светодиодные

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

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

За основу взят пример подключения светодиодной ленты через драйвер L298. Плюсом ко всему в пример добавлен дисплей LCD 1602, который будет отображать показания датчика DHT 11.

Для проекта понадобятся следующие элементы Ардуино:

  1. Плата Ардуино УНО.
  2. Дисплей LCD 1602 + I2C.
  3. Датчик температуры и влажности DHT
  4. Светодиодная лента.
  5. Драйвер L298.
  6. Блок питания 9-12В.
  7. Корпус для ардуино и дисплея (по желанию).

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

Рисунок 1. Принципиальная схема подключения Arduino и светодиодной ленты с датчиком DHT 11

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

Пару слов о подключении датчика влажности. Если покупать голый DHT 11, без обвязки, то между первым и вторым контактами, 5В и Data, соответственно, нужно впаять резистор номиналом 5-10 кОм. Диапазон измерения температуры и влажности написан на обратной стороне корпуса датчика DHT 11. Температура: 0-50 градусов по Цельсию. Влажность: 0-80%.

Рисунок 2. Правильное подключение датчика влажности DHT 11

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

Для программирования датчика DHT 11 понадобится дополнительная библиотека.

Код программы Arduino и RGB – лента. Изменение цвета ленты в зависимости от влажности.

#include
#include //библиотека для работы с дисплеем LCD 1602
#include //библиотека для работы с датчиком влажности и температуры DHT 11
int chk; //переменная будет хранить все данные с датчика DHT11
int hum; //переменная будет хранить показания влажности с датчика DHT11
dht11 DHT; //объект типа DHT
#define DHT11_PIN 4 //контакт Data датчика DHT11 подключен на вход 4
#define LED_R 9 // пин для канала R
#define LED_G 10 // пин для канала G
#define LED_B 11 // пин для канала B
//переменные будут хранить значения цветов
//при смешивании всех трех цветов будет получаться необходимый цвет
int led_r=0, led_g=0, led_b=0;
//объявление объекта дисплея с адресом 0х27
//не забываем использовать в проекте дисплей через плату I2C
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{ //создание дисплея lcd.init(); lcd.backlight(); // объявляем пины выходами pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT);
}
void loop()
{ chk = DHT.read(DHT11_PIN);//читаем данные с датчика DHT11 //вывод данных на дисплей lcd.print(“Temp: “); lcd.print(DHT.temperature, 1); lcd.print(” C”); lcd.setCursor(0,1); lcd.print(“Hum: “); lcd.print(DHT.humidity, 1); lcd.print(” %”); delay(1500); //для корректной работы датчика нужна задержка на опрос lcd.clear(); hum = DHT.humidity; //берем показания влажности //в диапозоне от 19 до 30% влажности выдать зеленый цвет if ((hum >= 19) && (hum = 31) && (hum = 41) && (hum

Источник: https://www.cena5.ru/arduino-upravlenie-svetodiodnoi-lentoi-podklyuchenie-rgb-lenty-cherez-arduino-dlya.html

RGB LED КОНТРОЛЛЕР НА АРДУИНО

Этот несложный Arduino проект предназначен для управления RGB светодиодными лентами с помощью PWM (широтно-импульсной модуляции). Она может изменить уровень каждого цвета независимо путем изменения скважности ШИМ. Таким образом можно создать любой цвет путем смешивания разных цветов в процентах.

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

Например, IRF540 транзистор имеет вполне низкое проходное RDS-сопротивление – около 70 мОм.

Схема контроллера лент

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

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

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

Основной контроллер выполнен с применением Arduino Uno. Он считывает входные данные от энкодера и согласно этой информации, происходит переключение транзисторов.

Транзисторы управляются выводами 9, 10 и 11, которые имеют внутренние функции ШИМ. Направление сигналов энкодера A и B читаются с помощью элементов 2 и 3, которые подключены к модулю.

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

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

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

Видео работы контроллера

   Светодиоды

ПИНГ-ПОНГ НА АРДУИНОУправление светодиодной rgb лентой через arduino
ПРОСТОЙ ФОНО-ПРЕДУСИЛИТЕЛЬУправление светодиодной rgb лентой через arduino
СХЕМА ЧАСОВ НА ВЛИУправление светодиодной rgb лентой через arduino

Источник: https://elwo.ru/publ/svetodiody/rgb_led_kontroller_na_arduino/5-1-0-952

Добавление RGB Светодиодную ленту к Marlin

Управление светодиодной rgb лентой через arduino Добрый день Уважаемые читатели!Я хотел бы рассказать о некоторых своих разработках относящихся к 3D принтерам. Начну с добавления и управления RGB Светодиодной подсветки. Работа была проделана на прошивке Marlin, на плате Arduino Mega 2560,сниппет кода ниже. Очень уж привлекала подсветка на Ultimeiker 2, подумал а почему бы не сделать её цветной и управляемой. По факту всё просто, нужно взять RGB светодиодную ленту, рассчитать необходимую длину ленты, исходя из вариантов 30 с.д. на метр или 60 с.д. на метр можно высчитать необходимый ток для управляемого драйвера. Одна LED-линия сегмента потребляет приблизительно 20мА при питании 12В. Т.о. если зажечь белый цвет (т.е. красный 100%, зеленый 100% и синий 100%), то энергопотребление секции составит около 60мА. Теперь, можно легко посчитать потребление тока всей ленты. Итак, если длина ленты составляет 1 метр. В ленте 10 секций (по 10 см каждая). Потребление ленты при белом цвете составит 60мА*10=600мА или 0.6А.

Рассмотрим пример подключения светодиодной ленты к контроллеру Arduino. Для подключения, можно использовать недорогие и популярные мосфеты STP16NF06. Можно также использовать и обычные биполярные транзисторы, к примеру TIP120. Но по сравнению с мосфетом, у него больше потери напряжения, поэтому все же рекомендуется использовать первые.

На схеме ниже показано подключение RGB светодиодной ленты при использовании N-канальных мосфетах. Затвор мосфета подключается к pin1 контроллера, сток к pin2 и исток к pin3.

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

Ниже, показана схема подключения при использовании обычных биполярных транзисторов (например TIP120). База транзистора подключается к pin1 контроллера, коллектор к pin2 и эмиттер к pin3. Между базой и выводом контроллера необходимо поставить резистор сопротивлением 100-220 Ом.

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

Источник: http://cxem.net/beginner/beginner61.php

В роли драйвера я использовал MOSFET STP16NF06 с большим запасом по току в корпусе DIP 220, далее уже дёргать мосфетом с помощью прерываний контроллера( аналог управление шаговыми моторами), открывать или закрывать затвор для подачи тока. Находим свободные ШИМ порты, я выбрал D4,D5,D6, на следующей схеме приведено подключение к RAMPS 1.4 и за одно подключение индукционного NPN датчика для калибровки.

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

И за одно сделал небольшую разводку макетной платы.

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

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

Настройка осуществляется как через панель управления принтера, так и через передачу специального G-coda с ПК. Реализована функция с помощью прерываний Широтно Импульсной Модуляции, настройки моментально сохраняются в энергонезависимую память(EPROM), поэтому не придётся каждый раз настраивать яркость и цвет при новом включении.

Установлена светодиодная RGB лента, 60 светодиодов на метр. Функцию можно полностью отключить при желании.

  • Управление через панель управления 3D принтера. Для перехода в режим управления «Светодиодной подсветкой», необходимо: Перейти в раздел «Светодиоды», далее необходимо выбрать режим из «Режим печати», «Режим ожидания»:
  • -режим печати — режим для настройки подсветки во время печати, он активируется после прогрева нагреваемой платформы и экструдера, активен до окончания печати, изменять настройки можно как в Режиме ожидания так и в режиме печати. После перехода в раздел «Режим печати», появляется 3 раздела для настройки каждого цвета отдельно и формировании цветовой матрицы, управляется он в процентном соотношении от 0(минимум), до 100(максимум);
  • -режим ожидания — режим для настройки подсветки во время неактивной печати, он активируется после включения принтера, активен до его выключения, изменять настройки можно как в «Режиме ожидания» так и в «Режиме печати». После перехода в раздел «Режим ожидания», появляется 3 раздела для настройки каждого цвета отдельно и формировании цветовой матрицы, управляется он в процентном соотношении от 0(минимум), до 100(максимум);
  • -чтобы отключить или включить светодиодную подсветку, необходимо зайти в раздел «Светодиоды» далее выбрать пункт «Вкл/выкл светодиодов»;
  • чтобы сбросить настройку светодиодов до заводских параметров( по 20% каждого цвета), необходим зайти в раздел «Светодиоды», далее выбрать пункт «Сбросить светодиоды».
  • Управление через G -cod:
Читайте также:  Сравнение люминесцентных и светодиодных ламп: что лучше

M580 –Команда управления светодиодами. Свечение светодиодов в режиме нагрева зависит от температуры стола и/или экструдера.

Настройка свечения светодиодов в других режимах производится командой M580 [P/W] R000 G000 B000, где W – режим ожидания, P – режим печати. Значения R, G, B должны быть целыми числами и выражаются процентами.

Например, чтобы включить в режиме печати 100% красного цвета, 50% зеленого и 0% синего, необходимо ввести команду “M580 P R100 G50 B0”.

Сниппет из файла ultralcd . cpp . Задача этого кода – обработка режима светодиодов в зависмости от текущего режима работы принтера (“нагрев”, “печать”, “ожидание”), а также плавное изменение интенсивности свечения светодиодов в режиме “нагрев”.

#ifdef LED_ENABLEvoid change_LED_status () { //изменение статуса светодиодовif (led_timer_set && mytimer_should_turnoff) {MsTimer2::stop (); led_timer_set = false;}if (LED_turnoff_flag) {analogWrite(REDPIN, 0);analogWrite(GREENPIN, 0);analogWrite(BLUEPIN, 0);return ;}if (LED_status == HEATING){if (!led_timer_set) { //обработка таймера на плавное изменение интенсивности свеченияmytimer_should_turnoff = false;led_timer_set = true;MsTimer2::set (10, svetilo);MsTimer2::start ();}return ;}/* analogWrite(REDPIN, thermalManager.current_temperature [0]);analogWrite(GREENPIN, 0);analogWrite(BLUEPIN, 0);}*/if (LED_tuning_flag) //непосредственное включение светодиодов, управление PWM{analogWrite(REDPIN, (int) (LED_mode [tuned_LED_status] [RED] * 2.55));analogWrite(GREENPIN, (int) (LED_mode [tuned_LED_status] [GREEN] * 2.55));analogWrite(BLUEPIN, (int) (LED_mode [tuned_LED_status] [BLUE] * 2.55));}else {if (led_timer_set && mytimer_should_turnoff) {MsTimer2::stop (); led_timer_set = false;}analogWrite(REDPIN, (int) (LED_mode [LED_status] [RED] * 2.55));analogWrite(GREENPIN, (int) (LED_mode [LED_status] [GREEN] * 2.55));analogWrite(BLUEPIN, (int) (LED_mode [LED_status] [BLUE] * 2.55));}}void reset_LED_tuning_flag () { //изменение режима светодиодов при переключении менюLED_tuning_flag = false;change_LED_status ();}void set_LED_to_default () { // сброс настроек светодиодов

for (int i = 0; i{

for (int ii = 0; ii{LED_mode [i] [ii] = 20;}}LED_status = WAITING;#if ENABLED (EEPROM_SETTINGS)save_LED_eeprom (); //сохранение настроек светодиодов на EEPROM#endif}void feedrate_from_buffer () {feedrate_percentage_buffer = speedIndicator;}int retrieveColor (const char * firstLetter) { //управляет режимами свечения светодиодовif (firstLetter == 'К') return RED;if (firstLetter == 'З') return GREEN;if (firstLetter == 'С') return BLUE;}bool isHeatingFlag (void){return heating_flag;}void svetilo () { //обеспечивает плавное изменение интенсивности свечения светодиодов //в режиме “нагрев”my_time = millis ();float interval_led_ms;float step_led = 3;unsigned int low_limit = 11;unsigned int top_limit = 40;float interval_step;float interval_percent;int curr_bed = thermalManager.current_temperature_bed;int targ_bed = thermalManager.target_temperature_bed;int curr_ext = thermalManager.current_temperature [0];int targ_ext = thermalManager.target_temperature [0];unsigned int max_led;bool led_skip = false;if ((curr_bed < targ_bed) && (curr_ext < targ_ext)) //контроль целевой и текущей температуры нагревательных //элементов для определения последовательности работы алгоритма по выбору //интенсивности свечения{led_skip = true;float bed_step = targ_bed / 100.0;float bed_percent = curr_bed / bed_step;float ext_step = targ_ext / 100.0;float ext_percent = curr_ext / ext_step;float common_percent = (ext_percent + bed_percent) / 2;if (common_percent > 95) {common_percent = 95.0;}interval_step = (top_limit – low_limit) / 100.0;interval_percent = 100.0 – common_percent;interval_led_ms = (interval_step * interval_percent) + low_limit;max_led = common_percent * 2.5;}if (!led_skip) { //учет температуры стола в интенсивности свеченияif (bed_is_heating) {float bed_step = targ_bed / 100.0;float bed_percent = curr_bed / bed_step;if (bed_percent > 95) {bed_percent = 95.0;}interval_step = (top_limit – low_limit) / 100.0;interval_percent = 100.0 – bed_percent;interval_led_ms = (interval_step * interval_percent) + low_limit;step_led = 2.1;max_led = bed_percent * step_led;}else if (ext_is_heating) { //учет температуры экструдера в интенсивности свеченияfloat ext_step = targ_ext / 100.0;float ext_percent = curr_ext / ext_step;if (ext_percent > 95) {ext_percent = 95.0;}interval_step = (top_limit – low_limit) / 100.0;interval_percent = 100.0 – ext_percent;interval_led_ms = (interval_step * interval_percent) + low_limit;max_led = curr_ext;} else return ;}if (my_time > buff_my_time) //обработка таймера{buff_my_time = my_time + interval_led_ms;if (go_down == true) {pwm_led -= step_led;

if (pwm_led {go_down = false;}} elseif (go_down == false){pwm_led += step_led;if (pwm_led >= max_led){go_down = true;}}analogWrite(GREENPIN, 0);analogWrite(BLUEPIN, 0);analogWrite(REDPIN, pwm_led);}}#endif

Сниппет из файла ultralcd . cpp . Задача этого кода – отрисовка меню для настройки светодиодов.

#if ENABLED (LED_ENABLE)void LED_control_menu () {START_MENU ();MENU_ITEM (back, MSG_MAIN, lcd_status_screen);/* MENU_ITEM (submenu, MSG_LED_HEATING, LED_heating_mode );*/MENU_ITEM (submenu, MSG_LED_PRINTING, LED_printing_mode );MENU_ITEM (submenu, MSG_LED_WAITING, LED_waiting_mode );MENU_ITEM (function, MSG_LED_TURNOFF, LED_turnoff );if (!planner.movesplanned() && !IS_SD_PRINTING) {MENU_ITEM (function, MSG_LED_RESET, set_LED_to_default);}END_MENU ();}void LED_turnoff () {if (LED_turnoff_flag)LED_turnoff_flag = false; else LED_turnoff_flag = true;}/* void LED_heating_mode () {LED_setting_flag = true; //нужен, чтобы менять интенсивность свечения в реальном времени. Устанавливается в функции LED_**_mode, обращение к нему происходит menu_edit_type, сброс там же по нажатию на энкодер.LED_tuning_flag = true; //нужен, чтобы не сбился режим светодиодов при смене режима работы принтера во время настройки цветов. Устанавливается в функции LED_**_mode, обращение к нему происходит в change_LED_status, сбрасывается в reset_LED_tuning_flag ().tuned_LED_status = HEATING;change_LED_status ();START_MENU ();MENU_ITEM (back, MSG_MAIN, LED_control_menu);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_RED_PERCENT, &LED_mode [HEATING][LED_color = RED], 0, 100, change_LED_status);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_GREEN_PERCENT, &LED_mode [HEATING][LED_color = GREEN], 0, 100, change_LED_status);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_BLUE_PERCENT, &LED_mode [HEATING][LED_color = BLUE], 0, 100, change_LED_status);END_MENU();}*/void LED_waiting_mode () {LED_setting_flag = true;LED_tuning_flag = true;tuned_LED_status = WAITING;change_LED_status ();START_MENU ();MENU_ITEM (back, MSG_MAIN, LED_control_menu);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_RED_PERCENT, &LED_mode [WAITING][RED], 0, 100, change_LED_status);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_GREEN_PERCENT, &LED_mode [WAITING][GREEN], 0, 100, change_LED_status);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_BLUE_PERCENT, &LED_mode [WAITING][BLUE], 0, 100, change_LED_status);END_MENU();}void LED_printing_mode () {tuned_LED_status = PRINTING;LED_setting_flag = true;LED_tuning_flag = true;change_LED_status ();START_MENU ();MENU_ITEM (back, MSG_MAIN, LED_control_menu);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_RED_PERCENT, &LED_mode [PRINTING][RED], 0, 100, change_LED_status);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_GREEN_PERCENT, &LED_mode [PRINTING][GREEN], 0, 100, change_LED_status);MENU_ITEM_EDIT_CALLBACK (int3, MSG_LED_BLUE_PERCENT, &LED_mode [PRINTING][BLUE], 0, 100, change_LED_status);END_MENU();}#endif //!LED_ENABLE

  1. Всем спасибо за внимание!
  2. Патент программы для ЭВМ №2018611221

Источник: https://3dtoday.ru/blogs/vdrebezgun/add-rgb-led-strip-to-marlin/

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

RGB светодиод – это три светодиода разных цветов (Red – красный, Green – зелёный, Blue – синий), заключённые в одном корпусе. Давайте посмотрим, как подключить RGB светодиод к Arduino.

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

1 Отличие RGB светодиодов с общим анодом и с общим катодом

RGB светодиоды бывают двух типов: с общим анодом («плюсом») и общим катодом («минусом») . На рисунке приведены принципиальные схемы эти двух типов светодиодов.

Длинная ножка светодиода – это всегда общий вывод питания. Отдельно расположен вывод красного светодиода (R), зелёный (G) и синий (B) располагаются по другую сторону от общего вывода, как показано на рисунке.

В данной статье мы рассмотрим подключение RGB светодиода как с общим анодом, так и с общим катодом.

Управление светодиодной rgb лентой через arduinoRGB светодиоды с общим анодом и с общим катодом

2 Подключение RGB светодиода с общим анодомк Arduino

Схема подключения RGB светодиода с общим анодом показана на рисунке. Анод подключаем к “+5 В” на плате Arduino, три другие вывода – к произвольным цифровым пинам.

Управление светодиодной rgb лентой через arduinoСхема подключения RGB светодиода с общим анодом к Arduino

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

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

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

Перепишем классический скетч blink. Будем включать и отключать по очереди каждый из трёх цветов. Обратите внимание, что светодиод загорается, когда мы подаём низкий уровень (LOW) на соответствующий вывод Arduino.

// задаём номера выводов: const int pinR = 12; const int pinG = 10; const int pinB = 9; void setup() { // задаём назначение выводов: pinMode(pinR, OUTPUT); pinMode(pinG, OUTPUT); pinMode(pinB, OUTPUT); } void loop() { digitalWrite(pinR, LOW); //зажигаем канал Red delay(100); digitalWrite(pinR, HIGH); //выключаем Red delay(200); digitalWrite(pinG, LOW); //зажигаем канал Green delay(100); digitalWrite(pinG, HIGH); //выключаем Green delay(200); digitalWrite(pinB, LOW); //зажигаем канал Blue delay(100); digitalWrite(pinB, HIGH); //выключаем Blue delay(200); }

4 Собрать схемуна макетной плате

Посмотрим в действии на мигание RGB светодиодом. Светодиод по очереди зажигается красным, зелёным и синим цветами. Каждый цвет горит 0,1 секунду, а затем гаснет на 0,2 секунды, и включается следующий. Можно зажигать каждый канал отдельно, можно все одновременно, тогда цвет свечения будет меняться.

Управление светодиодной rgb лентой через arduinoRGB светодиод подключён к Arduino. Схема собрана на макетной плате

5Подключение RGB светодиода с общим катодомк Arduino

Если вы используете RGB светодиод с общим катодом, то подключите длинный вывод светодиода к GND платы Arduino, а каналы R, G и B – к цифровым портам Arduino. При этом нужно помнить, что светодиоды загораются при подаче на каналы R, G, B высокого уровня (HIGH), в отличие от светодиода с общим анодом.

Управление светодиодной rgb лентой через arduinoСхема подключения RGB светодиода с общим катодом к Arduino

Если не менять вышеприведённый скетч, то каждый цвет светодиода в этом случае будет гореть 0,2 секунды, а пауза между ними составит 0,1 секунду.

Полезный совет

Если вы хотите управлять яркостью светодиода, то подключайте RGB светодиод к цифровым выводам Arduino, которые имеют функцию ШИМ (PWM). Такие выводы на плате Arduino обычно помечены знаком тильда (волнистая линия), звёздочкой или обведены кружочками.

Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino

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

В этой статье мы научимся работать с адресной светодиодной RGB лентой WS2812B. Лента состоит из RGB пикселей WS2812B в корпусе LED 5050 (физические размеры каждого элемента составляют 5×5 мм).

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

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

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

Немного о характеристиках адресных светодиодов WS2812B:

  • Напряжение питания: 5 ± 0.5 В;
  • Потребление тока: ~20 мА один светодиод, т.е. ~60 мА весь пиксель.

В начале нам необходимо подключить светодиоды к Arduino. Сделать это предельно просто. Контакты +5V и GND подключаем к плюсу и минусу источника питания, соответственно. Din подключаем к любому цифровому пину Arduino, по умолчанию это будет 6-ой цифровой пин, но можно использовать любой другой.

Кроме того, желательно соединить землю Arduino с землей источника питания. Нежелательно использовать Arduino в качестве источника питания, так как выход +5V может обеспечить ток лишь в 800 мА. Этого хватит не более чем на 13 пикселей светодиодной ленты.

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

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

Далее будем разобираться с управлением лентой. Описание протокола управления присутствует в Datasheet к WS2812B.

Читайте также:  Брак светодиодных ламп томича, лисма, x-flash

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

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

Длительность любого бита – 1,25 мкс. Бит “1” кодируется импульсом длительностью 0,8 мкс и паузой в 0,45 мкс. Бит “0”– 0,4 и 0,85 мкс. Возможны расхождения по времени до 150 нс. Такой пакет должен быть отправлен для каждого пикселя в светодиодной ленте. На диаграмме изображён требуемый сигнал.

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

Глядя на данную схему, несложно догадаться, что такое невозможно воплотить в жизнь стандартными функциями Wiring, вроде digitalWrite и delay. Однако ленты WS2812B достаточно популярны и для них уже есть библиотеки на языках более низкого уровня. Вам достаточно только выбрать любую из них.

Самые популярные библиотеки:

FastLED

Поддерживает все версии Ардуино и множество протоколов передачи данных (не только для нашей ленты). Язык программирования, на котором она написана – чистый C.

Adafruit NeoPixel

Библиотека предназначена для работы со светодиодными кольцами NeoPixel Ring, разработки и производства Adafruit. Работает медленнее, обладает меньшими возможностями, но содержит в себе лишь самое нужное. Написана на C, языке ассемблера и немного на Wiring. Поддерживает всю линейку Ардуино.

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

По умолчанию, количество пикселей в ленте – 30, но при необходимости это можно изменить в скетче.

Пример с использованием библиотеки FastLED:

Код включения ленты с использованием библиотеки FastLED // Подключаем библиотеку FastLED.
#include “FastLED.h”

// Указываем, какое количество пикселей у нашей ленты.
#define LED_COUNT 30

// Указываем, к какому порту подключен вход ленты DIN.
#define LED_PIN 6

// Создаем переменную strip для управления нашей лентой.
CRGB strip[LED_COUNT];

void setup()
{
// Добавляем ленту
FastLED.addLeds(strip, LED_COUNT);
}

void loop()
{
// Включаем все светодиоды
for (int i = 0; i < LED_COUNT; i++) { strip[i] = CRGB::Red; // Красный цвет. } // Передаем цвета ленте. FastLED.show(); // Ждем 500 мс. delay(500); // Выключаем все светодиоды. for (int i = 0; i < LED_COUNT; i++) { strip[i] = CRGB::Black; // Черный цвет, т.е. выключено. } // Передаем цвета ленте. FastLED.show(); // Ждем 500 мс. delay(500); }

// Подключаем библиотеку FastLED.// Указываем, какое количество пикселей у нашей ленты.// Указываем, к какому порту подключен вход ленты DIN.// Создаем переменную strip для управления нашей лентой.  FastLED.addLeds(strip, LED_COUNT);  // Включаем все светодиоды  for (int i = 0; i

Источник: https://Voltiq.ru/arduino-and-ws2812b/

AlexGyver/GyverRGB

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

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

Многофункциональный контроллер для RGB светодиодов, с кучей режимов и органов управления
Страница проекта на сайте: https://alexgyver.ru/GyverRGB/

Особенности:

  • Управление 4-х пиновой RGB светодиодной лентой (R G B +12)
  • Частота ШИМ 8 или 31 кГц (настраивается)
  • 10 настраиваемых пресетов, в каждом настраивается режим и настройки выбранного режима
  • 11 режимов работы: 5 статичных и 6 динамичных
  • Управление с энкодера, ИК пульта или bluetooth (приложение GyverRGB)
  • Вывод меню на OLED дисплей
  • Мониторинг напряжения аккумулятора и вывод на дисплей в процентах/Вольтах
  • Полную информацию смотри в документации

Папки

ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию

  • libraries – библиотеки проекта. Заменить имеющиеся версии
  • firmware – прошивки для Arduino
  • schemes – схемы подключения компонентов
  • docs – документация
  • utility – вспомогательные программы и прошивки

Схемы

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

Материалы и компоненты

Ссылки оставлены на магазины, с которых я закупаюсь уже не один год

Первые ссылки – в основном магазин Great Wall, вторые – WAVGAT. Покупая в одном магазине, вы экономите на доставке!
Мосфеты и резисторы можно купить в любом магазине электронных компонентов (ChipDip итд)

  • Управление
  • Драйвер
  • Прочее
  • Макетная плата http://ali.ski/8mM5R
  • Трубы http://energoplast.ru/

Питание

Автономное питание

Вам скорее всего пригодится

Как скачать и прошить

  • Первые шаги с Arduino – ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
  • Скачать архив с проектом

На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

  • Установить библиотеки в
    C:Program Files (x86)Arduinolibraries (Windows x64)
    C:Program FilesArduinolibraries (Windows x86)
  • Подключить внешнее питание 5 Вольт
  • Подключить Ардуино к компьютеру
  • Запустить файл прошивки (который имеет расширение .ino)
  • Настроить IDE (COM порт, модель Arduino, как в статье выше)
  • Настроить что нужно по проекту
  • Нажать загрузить
  • Пользоваться

Настройки в коде

// —— Дисплей ——
LCD_BACKL 1 // автоотключение подсветки дисплея (1 – разрешить)
BACKL_TOUT 60 // таймаут неактивности отключения дисплея, секунды
CONTRAST 150 // контрастность (яркость) дисплея 0-255
ROTATE_DISP 1 // 0 или 1 – повернуть дисплей на 180 градусов
I2C_ADDRESS 0x3C // адрес дисплея
// примерно на 200 строке можно поменять шрифт дисплея

// —— Драйвер ——
HIGH_FREQUENCY 2 // 0 – 490 Гц, 1 – 7.8 кГц, 2 – 31.4 кГц, 3 – ручная настройка
PWM_FREQUENCY 15000 // частота ШИМ на настройке №3, Герц
DRIVER_DIRECTION 0 // 0 – обычный (мосфеты), 1 – реверс (LED amplifier)

// —— Лента ——
MAX_CURRENT 0 // макс. ток в мА, при значении 0 фича не активируется
NUM_LEDS 60 // кол-во светодиодов для расчёта ограничения тока (только для диодов 5050!!!)
SMOOTH_K 0.25 // коэффициент плавности огня

// —— Bluetooth ——
USE_BT 0 // 1 – использовать Bluetooth, 0 – нет

// —— ИК пульт ——
USE_IR 1 // 1 – использовать ИК пульт, 0 – нет
IR_STEP 10 // шаг изменения настроек с пульта

// —— Энкодер ——
USE_ENC 1 // 1 – использовать энкодер, 0 – нет
ENC_REVERSE 1 // 1 – инвертировать направление энкодера
ENC_TYPE 1 // 0 или 1 – тип энкодера

// —— Напряжение ——
VOLTMETER 0 // 0 или 1 – вкл/выкл вольтметр (делитель напряжения в пин А0)
CHARGE_VAL 1 // вывод напряжения: 0 – в процентах, 1 – в вольтах
CONSTANT_BRIGHT 0 // 0 или 1 – вкл/выкл поддержание яркости при разрядке АКБ (только для диодов 5050!!!) (в схеме должен стоять делитель)
VREF 5.1 // напряжение на пине 5V
R1 10010 // точное значение 10 кОм
R2 4700 // точное значение 4.7 кОм

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/

В: Вылетает ошибка загрузки / компиляции!
О: Читай тут: https://alexgyver.ru/arduino-first/#step-5

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

Полезная информация

Источник: https://github.com/AlexGyver/GyverRGB

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

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

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

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

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

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

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

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

Код программы Arduino управления лентой

Данная программа последовательно увеличивает одну из составляющий RGB.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4647 #define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3     #define FADESPEED 5     // чем выше число, тем медленнее будет fade-эффект     void setup() {   pinMode(REDPIN, OUTPUT);   pinMode(GREENPIN, OUTPUT);   pinMode(BLUEPIN, OUTPUT); }         void loop() {   int r, g, b;       // fade от голубого к фиолетовому   for (r = 0; r < 256; r++) {     analogWrite(REDPIN, r);     delay(FADESPEED);   }   // fade от фиолетового к красному   for (b = 255; b > 0; b–) {     analogWrite(BLUEPIN, b);     delay(FADESPEED);   }   // fade от красного к желтому   for (g = 0; g < 256; g++) {     analogWrite(GREENPIN, g);     delay(FADESPEED);   }   // fade от желтого к зеленому   for (r = 255; r > 0; r–) {     analogWrite(REDPIN, r);     delay(FADESPEED);   }   // fade от зеленого к зеленовато-голубому   for (b = 0; b < 256; b++) {     analogWrite(BLUEPIN, b);     delay(FADESPEED);   }   // fade от зеленовато-голубого к голубому   for (g = 255; g > 0; g–) {     analogWrite(GREENPIN, g);     delay(FADESPEED);   } }

Источник: http://www.radio-magic.ru

Источник: https://arduino-e.ru/shema-podklyucheniya-svetodiodnoy-lenty-k-arduino

Ссылка на основную публикацию
Adblock
detector