Le_Ze
Vytvořené odpovědi
-
AutorPříspěvky
-
Le_ZeÚčastník
A nedá se časovač programově vynulovat?
Le_ZeÚčastníkTak zbyla chvilka času a ja chtěl vzykoušet i to s millis.
Dočet jsem se, že u funkce millis dochazí co 50 dní k přetečení.
Da se to nějak pořešít?Le_ZeÚčastníkAno mam 4 rele a 4 timery a jednu splečnou funkcí pro vypinaní
Le_ZeÚčastníkTak vyřešene a odzkoušené přes tu knihovnu timer :).
Přimo v if zapnu pin.
digitalWrite(pin, HIGH);
t.after(10 * 60 * 10000, vypnirele);
a pak se po určité době spusti funkce, která ho vypne.
Pokud si při volaní funkce pošlu i čislo pinu, postači mi 1 funkce pro všechny rele.Le_ZeÚčastníkTy činske relay moduly sepinají při LOW
Při spuštění arduina je na pinu HIGHPošlu přes serial 1
pin se přepne na Low na 10 vteřin a rele sepne.
Pak je na pinu HIGH 10 vteřin.
Po 10 vteřinach zase LOW a už se to nepřekopí a rele zustava furt seple.#include "Timer.h" Timer t; int pin = 4; void setup() { Serial.begin(9600); pinMode(pin,INPUT_PULLUP); pinMode(pin, OUTPUT); } void loop() { int val = Serial.parseInt(); if(val == 1){ t.pulse(pin, 10 * 60 * 1000, LOW); } t.update(); }
Le_ZeÚčastníkNejjednodušší řešení by bylo tady.
https://playground.arduino.cc/Code/Timer
Do kažede podminky dat t.pulse.#include "Timer.h" Timer t; int pin = 3; void setup() { pinMode(pin, OUTPUT); t.pulse(pin, 10 * 60 * 1000, HIGH); // 10 minutes } void loop() { t.update(); }
Proč toto nefunguje jak má?
Zapnu arduino.
Po najetí mam na pinu 3 10 vteřin HIGH
Pak 10 vteřin LOW
A pak až se začne odpočitavat těch 10 minut HIGHLe_ZeÚčastníkNo dalkač mi vrací kod jako číslo
Podmínkou IF hlídám ten správný.
Pokud je pominka splněna tedy spustit třeba thead.Nějak však nemohu pochopit princip toho vlakna.
Proč je u vlakna setInterval()
Ve škole jsme měli delphi a bud bylo vlakno co vykonalo svou funkcí a ukončilo se, nebo vlakno ktere běželo furt dokola.
Interval byl u timeru.A i kdybych to dal s tym theadem, nevím jak vyřešit to druhe zmačknutí po minutě
-
AutorPříspěvky