Stránka 1 z 1
Problém s pauzou při změně stavu relé
Napsal: 24 říj 2017, 19:06
od PB1
Zdravím, potřeboval bych prosím Vás poradit s kódem. Používám tento kód
ale mám ho upraveny pro ultrazvukový modul kterým ovládám LED pasek. Když je vzdálenost menši než je nastavena po dobu 500ms tak relé mění stav ale mění svůj stav vždy po 500ms což je dost rychle přeblikávání. Potřeboval bych jestli by mi někdo mohl na tomhle kódu kdy se relé ovládá tlačítkem ukázat jak nastavit po každé změně stavu relé pauzu na par sekund ať proste tlačítko i po stisknuti (v mém případě ultrazvuk ) nemůže měnit stav na opačný. Doufám že se dotaz dá pochopit

a děkuji za jakoukoliv radu.
Re: Problém s pauzou při změně stavu relé
Napsal: 25 říj 2017, 13:08
od Wojta
Můžete se odrazit od milis(). To ke příkaz který vrátí jak dlouho je arduino zapnuté (v milisekundách).
Při stisknutí tlačítka si tedy můžete zapsat aktuální hodnotu milis()
Kód: Vybrat vše
int milis_old = 0;
If(stisknu){
milis_old=milis();
//vas kod
}
Pak si jen do podmínky přidáte zda je aktuální čas o Xms větší než ten minulý.
Kód: Vybrat vše
int milis_old = 0;
If(stisknu && milis() > (milis_old + casPauzy){ //Pokud je tlacitko stisknute a aktualni cas je o "casPauzy" vetsi nez ten stary tak pokracuj do smycy
milis_old=milis();
// vas kod
}
Tlačítko tu u mě reprezentuje váš ultrazvuk. "caspauzy" je ta hodnota pauzy v milisekundách.
Re: Problém s pauzou při změně stavu relé
Napsal: 25 říj 2017, 22:19
od PB1
Děkuji za radu, kód funguje ale k mému nepochopeni relé mění stav vždy jen párkrát. Zatím testuji jen se žárovkou a ta se vždy při přiloženi ruky před ultrazvuk rozsvítí a zhasne jak by měla, pauza mezi změnou stavu je dodržena jak je nastaveno ale vždy to reaguje jen +- 6x a konec, nic se dále neděje.
Re: Problém s pauzou při změně stavu relé
Napsal: 26 říj 2017, 21:14
od Wojta
Ale já vím proč

mojí blbostí. Deklaroval jsem vám milis_old jako int ale ten má max hodnotu +-32000 tzn. pouze 32 sekund, poté proměnná přeteče a program přestane fungovat. Změňte int na unsigned long a vše bude v pořádku.
Re: Problém s pauzou při změně stavu relé
Napsal: 26 říj 2017, 21:31
od PB1
Děkuji moc, nyní zcela funkční
