Časovač s prodloužením času

Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Časovač s prodloužením času

Příspěvek od Le-Ze »

Zdravím Vás tu všechny

Kód: Vybrat vše

#include "Timer.h"

Timer t;

void setup()
{
  Serial.begin(9600);
  digitalWrite(8, HIGH);
  pinMode(8,OUTPUT);     
 
  pinMode(7, INPUT_PULLUP); 
}

void vratPinNaHigh()
{
  digitalWrite(8, HIGH);
}

void loop()
{
  if (digitalRead(7)== LOW)
    {
     Serial.println("hups");
     digitalWrite(8, LOW);
     t.after(30*1000, vratPinNaHigh); 
    }
  t.update();
}
Už několikrát jsem pro tyto učelý tuto knihovnu použil a spkojený.
Je to funkční.
Potřebují však aby při každem detekovaní LOW na pinu 7 se ten čas znovu prodloužíl na těch pul minuty a to nefunguje.
Půjde to vyřešit přes tuto knihovnu?
Naposledy upravil(a) Le-Ze dne 05 pro 2017, 08:48, celkem upraveno 1 x.
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: Časovač (dříve čavovač :-)) s prodloužením času

Příspěvek od DavidO »

Je to tahle knihovna https://playground.arduino.cc/Code/Timer ?
Od stolu:

Kód: Vybrat vše

#include "Timer.h"

Timer t;
int eventID=-1;

void setup()
{
  Serial.begin(9600);
  digitalWrite(8, HIGH);
  pinMode(8,OUTPUT);     
 
  pinMode(7, INPUT_PULLUP); 
}

void vratPinNaHigh()
{
  digitalWrite(8, HIGH);
}

void loop()
{
  if (digitalRead(7)== LOW)
    {
     Serial.println("hups");
     digitalWrite(8, LOW);
     if( eventID != -1 )
     	t.stop(eventID);
     eventID = t.after(30*1000, vratPinNaHigh); 
    }
  t.update();
}
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: Časovač (dříve čavovač :-)) s prodloužením času

Příspěvek od Le-Ze »

JJ, funkční :D
Ses kop jen o jednu závorku a to se omlouvá :lol:
Obrázek
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: Časovač (dříve čavovač :-)) s prodloužením času

Příspěvek od DavidO »

O kterou? Se mi zdá, že tam mám všechny a zároveň ani žádná lichá nepřebývá...
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: Časovač s prodloužením času

Příspěvek od Le-Ze »

Dobře to maš,chyba byla u mně při kopirovaní ctrl - c, a v :oops:
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: Časovač s prodloužením času

Příspěvek od DavidO »

KÓD: VYBRAT VŠE :idea:
:)
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: Časovač s prodloužením času

Příspěvek od Le-Ze »

No jo, chybami se člověk učí.
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: Časovač s prodloužením času

Příspěvek od Le-Ze »

Ono to je nějaké divné.
Nepochopil jsem proč tam je čas žadan 30*1000 a ne přimo 30000.
Třeba 40*1000 už nefunguje a rele je furt seple.Musí se zadat přímo 40000.

To cos tu dal tak funguje ok v unu.
Když to nahrají do mega a relé mam na pinu 22, tak to blbne.
I když se na testovaném pinu nachází LOW třeba co 5 vteřin, stejně rele na pinu 22 co 30 vteřín procvakne.
MartinL
Příspěvky: 202
Registrován: 24 úno 2013, 14:13
Kontaktovat uživatele:

Re: Časovač s prodloužením času

Příspěvek od MartinL »

Těch 30*1000 je tam kvůli přehlednosti (30s, zadáno v milisekundách). 40*1000 nefunguje, protože 40 i 1000 jsou čísla, která se vejdou do 16 bitů (takže je kompilátor bere jako int16_t), pokud je vynásobím tak dojde k přetečení (maximální hodnota int16_t je 32 767). Pokud napíšeš přímo 40000, tak to kompilátor bere jako číslo, které se nevejde do 16 bitů, a tak mu vyhradí více, tj. 32 bitů.
Le-Ze
Příspěvky: 82
Registrován: 31 kvě 2017, 15:37

Re: Časovač s prodloužením času

Příspěvek od Le-Ze »

A kde muže být problém že to v unu funguje perfektně a mega hapruje?
Odpovědět