Skip to content

GyverLibs/GyverBlinker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

latest PIO Foo Foo Foo

Foo

GyverBlinker

Таймер со счётчиком для мигания светодиодом и других задач

  • Простыми словами: библиотека позволяет асинхронно мигнуть светодиодом несколько раз
  • Асинхронная работа
  • Установка количества срабатываний
  • Установка активного и пассивного времени
  • Два инструмента: VirtBlinker без привязки к пину и Blinker с указанием пина

Совместимость

Все Arduino

Содержание

Установка

  • Библиотеку можно найти по названию GyverBlinker и установить через менеджер библиотек в:
    • Arduino IDE
    • Arduino IDE v2
    • PlatformIO
  • Скачать библиотеку .zip архивом для ручной установки:
    • Распаковать и положить в C:\Program Files (x86)\Arduino\libraries (Windows x64)
    • Распаковать и положить в C:\Program Files\Arduino\libraries (Windows x32)
    • Распаковать и положить в Документы/Arduino/libraries/
    • (Arduino IDE) автоматическая установка из .zip: Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… и указать скачанный архив
  • Читай более подробную инструкцию по установке библиотек здесь

Обновление

  • Рекомендую всегда обновлять библиотеку: в новых версиях исправляются ошибки и баги, а также проводится оптимизация и добавляются новые фичи
  • Через менеджер библиотек IDE: найти библиотеку как при установке и нажать "Обновить"
  • Вручную: удалить папку со старой версией, а затем положить на её место новую. "Замену" делать нельзя: иногда в новых версиях удаляются файлы, которые останутся при замене и могут привести к ошибкам!

Использование

VirtBlinker

// конструктор
Blinker();
Blinker(uint8_t pin);

// начать мигание (количество, период вкл, период выкл)
void blink(int8_t amount, uint16_t high, uint16_t low = 0);

// мигать бесконечно
void blinkForever(uint16_t high, uint16_t low = 0);

void force();           // спровоцировать вызов ready (последний блинк)
void stop();            // остановить мигание. Не спровоцирует вызов ready
bool state();           // статус выхода
bool ready();           // однократно вернёт true, когда мигание закончится
bool running();         // возвращает true, пока система мигает
uint16_t getLeft();     // получить остаток до следующего переключения в мс
uint8_t getLeft8();     // получить остаток до следующего переключения в диапазоне 0-255
uint8_t getCountLeft(); // получить количество оставшихся миганий

bool tick();            // тикер, вызывать в loop. Однократно вернёт true при переключении состояния

Blinker

void init(uint8_t pin); // указать пин
void invert(bool inv);  // инвертировать выход
// + наследует все функции из VirtBlinker

Пример

Реальный

#include <Blinker.h>
Blinker led(13);

void setup() {
  // мигнуть 5 раз, 700мс вкл, 400мс выкл
  led.blink(5, 700, 400);
}
void loop() {
  led.tick();
}

Виртуальный

#include <Blinker.h>
VirtBlinker blink;

void setup() {
  Serial.begin(115200);
  // мигнуть 5 раз, 700мс вкл, 400мс выкл
  blink.blink(5, 700, 400);
}
void loop() {
  if (blink.tick()) Serial.println(blink.state());
}

Версии

  • v1.0
  • v1.1.0 - добавлен blinkForever

Баги и обратная связь

При нахождении багов создавайте Issue, а лучше сразу пишите на почту alex@alexgyver.ru
Библиотека открыта для доработки и ваших Pull Request'ов!

При сообщении о багах или некорректной работе библиотеки нужно обязательно указывать:

  • Версия библиотеки
  • Какой используется МК
  • Версия SDK (для ESP)
  • Версия Arduino IDE
  • Корректно ли работают ли встроенные примеры, в которых используются функции и конструкции, приводящие к багу в вашем коде
  • Какой код загружался, какая работа от него ожидалась и как он работает в реальности
  • В идеале приложить минимальный код, в котором наблюдается баг. Не полотно из тысячи строк, а минимальный код

About

Библиотека для мигания светодиодом и планирования событий по таймеру

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages