Skip to content

SoSaddy/Arduino-timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Назначение библиотеки

Таймер не прерывает поток, как это делает delay().

Свойства

Подключение библиотеки

#include <Timer.h>

Объявление экземпляра

Timer timer;                  // по умолчанию: задержка 1000мс, режим AS_TRIGGER
// или
Timer timer(2000, AS_SWITCH); // аргументы [задержка, режим]

Методы

bool get();                   // -> возвращает состояние
bool get(const uint32_t);     // -> возвращает состояние (по указанной в аргументе задержке)
void setCooldown(uint32_t);   // -> установка задержки
void setMode(const uint8_t);  // -> установка режима: AS_SWITCH, AS_TRIGGER
void clear();                 // -> синхронизирует задержку (сброс)

Примеры работы таймера

Пример 1. Мигание светодиода.
Таймер по срабатыванию переключает состояние переменной state, которая затем используется для передачи логического уровня на пин со светодиодом.

#include <Timer.h>

Timer timer;  // по умолчанию: задержка 1000мс, режим AS_TRIGGER
bool state = false;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  if (timer.get()) state = !state;
  digitalWrite(LED_BUILTIN, state);
}

Пример 2. Мигание светодиода - альтернативный.
Таймер по срабатыванию переключает внутреннее состояние каждые 2000мс.

#include <Timer.h>

Timer timer(2000, AS_SWITCH);

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, timer.get());
}

Пример 3. Гибкая настройка.

#include <Timer.h>

Timer timer;

void setup() {
  timer.setCooldown(5000);
  timer.setMode(AS_SWITCH);
}

void loop() {
  if (timer.get()) {
    timer.setCooldown(3000);
    // ...
  } else {
    // ...
  }
}

About

The timer will ensure that the code runs without interruptions, as does delay().

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages