MSG4LED - Arduino-библиотека для 4-х светодиодов

Исходный код библиотеки доступен на GitHub - https://github.com/3akep/MSG4LED

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

Arduino-библиотека MSG4LED позволяет устройствам на базе платформы Arduino управлять 4-мя светодиодами с целью организацию интерфейса оповещения пользователя о текущем статусе наблюдаемой среды или другой информации, обрабатываемой и генерируемой устройством.

Основные структурные элементы библиотеки

LEDS[] - Массив разъемов подключения светодиодов.

LEDorder[] - Массив разъемов подключения светодиодов в порядке их обработки. По-умолчанию, соответствует порядку в функции инициализации объекта класса MSG4LED.

Инициализация объекта класса MSG4LED:
MSG4LED (BLUE, RED, GREEN, YELLOW), где цвета-параметры - номера разъемов подключения соответствующих диодов.

Функции библиотеки MSG4LED

void ChangeOrder(byte, byte, byte, byte);
Изменение порядка обработки светодиодов. Параметры - номера разъемов подключения соответствующих светодиодов.

void ResetOrder();
Восстановление порядка обработки светодиодов на основе порядка, заданного при инициализации класса MSG4LED.

byte ReMap(long x, long max_x);
Преобразование любого значения X с максимальным значением MAX_X в номер разъема светодиода, с учетом порядка обработки.

Функции включения/отключения светодиодов

void PowerOnColor(byte ColorPin), где параметр ColorPin - номер разъема светодиода. Повторный вызов функции изменяет текущий статус светодиода.

void PowerOnNum(byte OrderNum), где параметр OrderNum - номер светодиода в массиве порядка обработки. Номера диодов: 1-4.

void TurnOffLine() - функция принудительного отключения всех светодиодов.

void TurnOnLine() - функция реверсного включения всех диодов. Т.е., если до вызова этой функции светодиод горел, то после вызова функции он погаснет.

void FillTo(byte OrderNum, bool TurnOff) - функция реверсного включения светодиодов с первого светодиода до OrderNum, определяемых порядком обработки светодиодов. Необязательный параметр TurnOff позволяет произвести принудительное отключение всех светодиодов перед выполнением функции. По-умолчанию, параметр TurnOff = true. Номера диодов: 1-4.

void FillFrom(byte OrderNum, bool TurnOff) - функция реверсного включения светодиодов, начиная с номера OrderNum и заканчивая четвертым, определяемых порядком обработки светодиодов. Необязательный параметр TurnOff позволяет произвести принудительное отключение всех светодиодов перед выполнением функции. По-умолчанию, параметр TurnOff = true. Номера диодов: 1-4.

Функции мигания светодиодами

void BlinkByColor(byte ColorPin, byte countBlink, unsigned long time) - функция вызывает мигание светодиода на указанном параметром ColorPin номере разъема, количество миганий определяется необязательным параметром countBlink (по-умолчанию: 1). Длительность задержки мигания определяется параметром time (по-умолчанию: 1000).

void BlinkByNum(byte OrderNum, byte countBlink, unsigned long time) - функция вызывает мигание светодиода c номером OrderNum, определяемым порядком обработки (возможные значения: 1-4), количество миганий определяется необязательным параметром countBlink (по-умолчанию: 1). Длительность задержки мигания определяется параметром time (по-умолчанию: 1000).

void BlinkRandom(byte countBlink, unsigned long time) - функция вызывает мигание случайным светодиодом из заданных разъемов в порядке обработки, количество миганий определяется необязательным параметром countBlink (по-умолчанию: 1). Длительность задержки мигания определяется параметром time (по-умолчанию: 1000).

void BlinkLine(unsigned long time) или void BlinkLineRTL(unsigned long time) - функция поочередного мигания каждым светодиодом в порядке справа на лево в порядке обработки. Длительность задержки мигания определяется параметром time (по-умолчанию: 1000).

void BlinkLineLTR(unsigned long time) - функция поочередного мигания каждым светодиодом в порядке слева на право в порядке обработки. Длительность задержки мигания определяется параметром time (по-умолчанию: 1000).

Функции модифицированной "Азбуки Морзе"

Модификация "Азбуки Морзе" заключается в перераспределение одинарных и двойных знаков азбуки в разные цвета:
"." - мигание синего цвета (или цвета №1 с учетом порядка обработки);
".." - мигание красного цвета (или цвета №2 с учетом порядка обработки);
"-" - мигание зеленого цвета (или цвета №3 с учетом порядка обработки);
"--" - мигание желтого цвета (или цвета №4 с учетом порядка обработки).

void MorseCode(String mcode) - параметр MCODE содержит строку для ее посимвольного преобразования в специальную цифровую последовательность с выводом результата функцией MorseCodeBlinkChar().

void MorseCodeBlinkChar (long DigCode) - вспомогательная функция, реализующая мигание заданного специальным цифровым кодом DigCode каждого символа строки функции MorseCode(). Функция также определяет интервал мигания.