Close

Le_Ze

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (celkem z 7)
  • Autor
    Příspěvky
  • odpověď na: Časovane spinaní pinu #6165
    Le_Ze
    Účastník

    A nedá se časovač programově vynulovat?

    odpověď na: Časovane spinaní pinu #6161
    Le_Ze
    Účastník

    Tak 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?

    odpověď na: Časovane spinaní pinu #6147
    Le_Ze
    Účastník

    Ano mam 4 rele a 4 timery a jednu splečnou funkcí pro vypinaní

    odpověď na: Časovane spinaní pinu #6133
    Le_Ze
    Účastník

    Tak 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.

    odpověď na: Časovane spinaní pinu #6131
    Le_Ze
    Účastník

    Ty činske relay moduly sepinají při LOW
    Při spuštění arduina je na pinu HIGH

    Poš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();
        }
    
    odpověď na: Časovane spinaní pinu #6127
    Le_Ze
    Účastník

    Nejjednodušší ř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 HIGH

    odpověď na: Časovane spinaní pinu #6124
    Le_Ze
    Účastník

    No 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ě

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (celkem z 7)