Regimanto Sensoriai

Elektronika, mikrovaldikliai, automatikos projektai ir programavimas – viskas, kas įkvepia kurti ir tobulėti.

EasyInterval Arduino Biblioteka

2025-08-27 22:47

🧰 EasyInterval

Pilnai suderinta su Metro: Arduino biblioteka skirta neblokuojamam laikui – su papildomomis funkcijomis!

🟢 Tiesioginis pakeitimas Metro bibliotekai
🟢 Papildyta palaikant delta laiko matavimus, dviejų fazių intervalus ir dinaminį valdymą


✅ Kodėl naudoti EasyInterval?

  • Pilnai suderinama su Metro: check(), expired(), reset(), interval(), checkCatchUp(), running()
  • Pridedama get() funkcija laikui matuoti nuo paskutinio iškvietimo
  • Pridedama setPhases(onTime, offTime) funkcija keičianti įtraukimo/atsijungimo laikotarpius
  • Pridedamos .enable(), .disable() ir .isEnabled() dinamiškai valdyti laikmačius
  • Saugu millis() persipildymui (~49,7 dienos)
  • Supaprastina neblokavimo kodo kūrimą: mirksinantys LED'ai, mygtukų debouncinimas, periodinės operacijos

🔄 Metro vs EasyInterval

Savybė Metro EasyInterval
check()
expired()
interval(ms)
reset()
checkCatchUp()
running()
get()
setPhases()
phase()
enable()
disable()
isEnabled()

🚀 Greitas pradžios pavyzdys: Mirksinti LED kas 1 sekundę

#include <EasyInterval.h>

const int ledPin = 13;
EasyInterval blink(1000); // 1 sekundė
// Metro blink(1000); // <- tik pakeiskite šią eilutę, jei naudojate Metro

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

void loop() {
  if (blink.check()) {
    digitalWrite(ledPin, !digitalRead(ledPin));
  }
}

🔹 Pavyzdys: Dviejų fazių LED mirksėjimas (1s ON, 3s OFF)

#include <EasyInterval.h>

const int ledPin = 13;
EasyInterval timer;

void setup() {
  pinMode(ledPin, OUTPUT);
  timer.setPhases(1000, 3000); // ĮJUNGTA 1s, IŠJUNGTA 3s
}

void loop() {
  if (timer.check()) {
    digitalWrite(ledPin, timer.phase() == 0 ? HIGH : LOW);
  }
}

Galima rasti Arduino bibliotekų tvarkyklėje ir Github EasyInterval

Lankytojai: 0