У адресных светодиодов есть два основных достоинства:
Подключим светодиоды к контроллеру.
Контакт на светодиоде | Пин на контроллере |
---|---|
GND | GND |
4-7VDC | 5V |
DIN | GPIO16 |
Для управления адресными светодиодами чаще всего используется библиотека Adafruit_NeoPixel. Её можно установить, используя Менеджер библиотек Arduino IDE.
Для начала, просто помигаем синим цветом, а затем разберёмся, как сохранить в памяти контроллера несколько режимов работы.
#include <Adafruit_NeoPixel.h>
#define LED_PIN 16
#define NUMPIXELS 8
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
void color(int R,int G, int B)
{
pixels.clear();
for(int i=0;i<NUMPIXELS;i++){
pixels.setPixelColor(i, pixels.Color(R,G,B));
}
pixels.show();
}
void blue_blink(int delay_time)
{
color(0,0,255);
delay(delay_time);
color(0,0,0);
delay(delay_time);
}
void setup() {
pixels.begin();
}
void loop() {
blue_blink(300);
}
Для начала, необходимо импортировать библиотеку, затем определить к какому пину подключены светодиоды и сколько их.
После этого необходимо создать переменную типа Adafruit_NeoPixel, c которой мы и будем работать.
Функция color
окрашивает все светодиоды в цвет, заданный с помощью RGB-cхемы.
Внутри функции blue_blink
, включается и выключается синий цвет, с заданым интервалом. Поскольку это функция вызывается внутри стандартной функции loop
, она будет вызываться постоянно.
Модифицируем функцию blue_blink
так, что бы можно было указывать не только задержку, но и желаемый цвет.
void color_blink(int delay_time,char color_v)
{
int R = 0,G = 0, B = 0;
switch (color_v)
{
case 'R':
R = 255;
break;
case 'G':
G = 255;
break;
case 'B':
B = 255;
break;
}
color(R,G,B);
delay(delay_time);
color(0,0,0);
delay(delay_time);
}
Для того, что бы создать веб-сайт, вам понадобится библиотека ESPAsyncWebServer, её можно скачать тут
server.on("/post", HTTP_GET, [](AsyncWebServerRequest *request){
String message;
message = request->getParam("color")->value();
Serial.println(message);
MODE = message[0];
request->send(200, "text/plain", "Цвет обновлён");
});
Основная задача сервера - обрабатывать запросы на смену цвета.
Запрос выглядит так:
192.168.4.1/post?color=цвет
, где вместо параметра цвет
можно указать r,g или b.
Ваша гирлянда с управлением через веб-сайт готова!
Полный искодный код проекта можно найти в этом репозитории.
Но не останавливайтесь на достигнутом! Добавляйте свои режимы!
P.S. В следующих уроках мы добавим к нашему сайту интерфейс и научимся управлять им с помощью приложения на компьютер или телефон.
Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
Комментарии