/SimpleLED

Библиотека для простого контроля группами светодиодов или светодиодными лентами (-R/G/B/+12/5v) посредством Arduino.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

SimpleLED

Данная библиотека упрощает работу со светодиодами, в частности светодиодными лентами, разработана для использования в качестве компактного встраиваемого модуля. Библиотека включает в себя функции установки цвета посредством RGB или HSV, регулировки общей яркости. Для использования библиотеки требуется 3 свободных цифровых PWM пина (например 3, 5, 6).

Пример использования

#include <SimpleLED.h>

SimpleLED diode(3, 5, 6); // использование пина 3 для красного, 5 для зелёного, 6 для синего цветового канала.
float progress = 0;
float val = 0.025;

void setup() 
{
  diode.SetDefColor(SL_WHITE); // установка всех цветовых каналов на максимум (т.е. белый цвет)
}

void loop() 
{
  diode.SetBrightness(progress); // установка яркости каждую итерацию цикла
  progress = progress + val;
  if (progress <= 0 || progress >= 255) {
    val = -val;
  }
}

Схемы использования

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

Preview

Схема для использования с группами светодиодов:

Preview

Установка

Для начала, скачайте архив этого репозитория (нажмите сюда).
После, откройте Arduino IDE -> выберите в меню "Скетч" -> Подключить библиотеку -> Добавить .ZIP библиотеку -> найти и выберите ранее скачанный архив.
Установка завершена.

Функции

void SetColor(byte red, byte green, byte blue) - установка цветовой величины для каждого канала.
void SetHSVColor(float hue, float saturation, float brightness) - установка цветовой величины для каждого канала, посредством цветовой модели HSV.
bool SetDefColor(int num) - установка объявленного цвета (подробнее в разделе Объявленные цвета).
SL_RGB GetColor() - возвращает структуру с последним установленным цветом (подробнее смотрите в разделе Структуры).
void SetBrightness(float value) - установка яркости для всех цветовых каналов.
void Flush() - отключение всех цветовых каналов, эквивалентно функции SetColor(0, 0, 0).

Структуры

Библиотека содержит в себе данные структуры:

struct SL_RGB 
{
	byte r, g, b;
};

struct SL_PIN 
{
	int r, g, b;
};

Пример извлечения цветов из структуры:

#include <SimpleLED.h>

SimpleLED diode(3, 5, 6);

void setup()
{
  Serial.begin(9600);
  diode.SetColor(255, 128, 20);
}

void loop()
{
  SL_RGB color = diode.GetColor();
  Serial.println(color.r); // результат - 255
  Serial.println(color.g); // результат - 128
  Serial.println(color.b); // результат - 20
}

Объявленные цвета

Конструктив раздела: название директивы цвета - число для цвета - эквивалент функции SetColor().
Пример использования таких цветов в коде: obj.SetDefColor(SL_GREEN) или obj.SetDefColor(2), также можно использовать obj.SetColor(0, 255, 0)

SL_WHITE - 0 - obj.SetColor(255, 255, 255)
SL_RED - 1 - obj.SetColor(255, 0, 0)
SL_GREEN - 2 - obj.SetColor(0, 255, 0)
SL_BLUE - 3 - obj.SetColor(0, 0, 255)