arduino kapalı ortamda kaç gün çalışır
  • arduino uno için röle açıp kapatmalı program yazdım basit bir programdı. 2 gün geçtikten sonra arduinon load ışığı yanmasına rağmen röleleri çektirmedi. reset atınca problem çözüldü. fakat ben sürekli çalışmasını istiyorum programa eklemem gereken birşey var mı
  • watchdog timer diye birşey var,
    bunu araştır. Derdine derman olur
  • köpeği tekmele(watchdog timer kick the dog) kavramına bak, arduinoda yaptığın işlemler + delay kullandıysan bunların toplamı 8 sn den küçük olmalı yoksa bekçi köpeği(watchdog) başına bela olur :))
  • watchdog timer ı basitçe anlatayım her işlemcide isteğe bağlı olarak kullanılan bağımsız bir sayaçtır bu sayaç onceden belirlenen zaman dolmadan sıfırlanmasını gerektirir eğer bır aksılık olurda programda bu zamanlayıcı sıfırlanmazsa yani program kıtlenırse veya ıstenenden cok uzun bır sure gerı donemezse gırdıgı yerden bu reset mekanızması işlemcıyı resetleyerek herşeyı yenıden başlatır.
    benım en sevmedıgım program yazma şeklıdır eğer herşeyı guzel yazmışsan işlemci nıye dursunkı ama durabılır.
    yazdıgın kodları ve alt rutınlerın çalışma surelerınden haberın varsa ve planladıgın sureen uzun sureceklerse kodun cogu yerıne watchdog resetleri serpelemen lazım. gıcık yani
  • void setup() {
    pinMode(4,OUTPUT) ;
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT) ;
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);


    }

    void loop() {
    digitalWrite(4,LOW);
    delay(3000);
    digitalWrite(4,HIGH);
    delay(60000);

    digitalWrite(5,LOW) ;
    delay(3000);
    digitalWrite(5,HIGH);
    delay(60000);

    digitalWrite(6,LOW) ;
    delay(3000);
    digitalWrite(6,HIGH);
    delay(60000);

    digitalWrite(7,LOW) ;
    delay(3000);
    digitalWrite(7,HIGH);
    delay(60000);

    digitalWrite(8,LOW) ;
    delay(3000) ;
    digitalWrite(8,HIGH);
    delay(60000);

    digitalWrite(9,LOW) ;
    delay(3000);
    digitalWrite(9,HIGH);
    delay(60000);

    digitalWrite(10,LOW) ;
    delay(3000) ;
    digitalWrite(10,HIGH) ;
    delay(60000);

    digitalWrite(11,LOW) ;
    delay(3000) ;
    digitalWrite(11,HIGH);
    delay(60000);

    digitalWrite(12,LOW) ;
    delay(3000) ;
    digitalWrite(12,HIGH);
    delay(60000);

    digitalWrite(13,LOW) ;
    delay(3000) ;
    digitalWrite(13,HIGH);
    delay(60000);

    }
  • kodum yukarıda watch dogları araya nasıl sıkıştırabilirim.kod 2 gün çalıştı sonra çalışmadı reset de atmadı kendine malesef problemim bu yardımcı olursanız çok sevibirim
  • hacıdayı burada watchdogdan ziyade millis(); fonksiyonuna bakman lazım.
    Böyle delayla bekleme yapılması çok sağlıklı değil. Önce sistemi olması gerektiği gibi yap he yine donuyor kitleniyorsa watchdoga bak.
  • 60 saniye niye bekletiyorsun, watchdog u aktif etsen beş para etmez, reset yer durursun.
  • rölelerin çektirdiği valfin tekrar hava dolması için 1 dakika beklemesi lazım, milis fonksiyonu delay yerine daha sağlıklı fakat benim 2 gün sonra sistemin durmasına etkisi var mı ona pek emin olamadım, sonuç olarak tam manada bu sorunun çözümü yok mu

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.