EgLang - это компактная библиотека для Arduino, которая позволяет управлять пинами через простые текстовые правила.
Особенности
- Простой синтаксис для логики управления
- Оптимизирована для ограниченной памяти Arduino
- Поддержка условных операторов, циклов и простых команд
- Автоматическая настройка пинов INPUT/OUTPUT
- Защита от повторных установок состояний
Поддерживаемые пины
-INPUT пины: 3, 5, 7, 9, 11, 13 (с подтяжкой к питанию) -OUTPUT пины: 2, 4, 6, 8, 10, 12
Синтаксис правил
Простые команды R("2,1"); // Включить пин 2 R("4,0"); // Выключить пин 4
Условные правила R("?3,0!4,1"); // Если пин 3 = LOW, то пин 4 = HIGH R("?3,0&5,0!6,1"); // Если пин 3 = LOW И пин 5 = LOW, то пин 6 = HIGH
Циклы R("[3:8,1]"); // Пока пин 3 нажат, держать пин 8 включенным R("[5:10,1;10,0]"); // Пока пин 5 нажат, мигать пином 10
Быстрый старт
#include <EgLang.h>
AUTO_START R("2,1"); // Включить LED R("?3,0!4,1"); // Кнопка включает пин 4 R("[5:6,1;6,0]"); // Мигание при нажатии AUTO_END
API
Основные функции
- R(rule) - добавить правило
- addRule(rule) - добавить правило (альтернативный синтаксис)
- processRules() - обработать правила (в loop)
- shutdownEgLang() - завершить работу
Макросы
- AUTO_START / AUTO_END - автоматическая настройка setup/loop
Примеры
Управление светодиодами AUTO_START R("2,1"); // Включить LED на старте R("?3,0!4,1"); // Кнопка управляет LED R("?3,1!4,0"); // Отпускание кнопки выключает LED AUTO_END
Система сигнализации
AUTO_START R("?7,0&9,0!2,1"); // Два датчика включают сирену R("[11:6,1;6,0]"); // Кнопка запускает мигание AUTO_END
Технические характеристики
- Максимум правил: 20
- Максимум символов в правиле: 32
- Поддерживаемые платы: Arduino Uno, Nano, Pro Mini
- Потребление SRAM: ~200 байт
- Потребление Flash: ~4KB
Лицензия
MIT License
Автор
Моя почта - donat.egos@gmail.com
Поддержка
Если у вас есть вопросы или предложения, создайте Issue в репозитории GitHub.