Relais temporisés


bonjour tout le monde,
je me décide enfin à venir demander de l'aide car je commence à être à court de solution..

je désirerais faire basculer un relais pour deux périodes données, pour par exemple le déclencher 5 min toutes les 25 min.

- avec delay() : ce n'est pas possible parce qu'à l'avenir, il y aura plusieurs relais et donc stopper le programme n'est pas envisageable.

- avec millis() : ça fonctionne très bien mais d'après ce que j'ai vu il y quand même une limite dans le temps et on ne peut pas faire de reset. j'aimerai que mon projet puisse tourner 24h/24h pendant plusieurs mois. il est peut être possible de faire redémarrer l'arduino au bout d'un mois pour tout remettre à zéro mais cela nécessiterait de stocker quelques variables dans l'eeprom et je préférerais m'en passer. je garde cette solution au cas où..

- avec la librairie timer.h : là je pense avoir trouver exactement ce qu'il me faut, sauf que en pratique je dois mal m'y prendre car mon relais commute plusieurs fois avant de lancer la tempo...

voici une partie du code :

code: [select]

// temporisation relais 1
if(etatrelais1 == high)
    {       
      time1.pulse(sortie1, h_ontime1*3600000 + m_ontime1*60000, high);     
      etatrelais1 = low;
       
    }
    else if (etatrelais1 == low)
    {     
      time1.pulse(sortie1, h_offtime1*3600000 + m_offtime1*60000, low);
      etatrelais1 = high;     
    }
}


les variables h_ontime et m_ontime sont correspondent aux temps de déclenchement saisis via un encodeur et un lcd

j'ai du mal à comprendre pourquoi cela ne fonctionne pas, le relais bascule plusieurs fois très vite puis déclenche la temporisation puis une fois celle-ci terminée rebascule plusieurs fois avant de relancer une tempo.. comme si l'instruction "étatrelais = low" était exécutée avant que la tempo soit terminée..

pouvez-vous m'aider, s'il vous plaît?

merci beaucoup et à bientôt!!

bonjour,

ca fonctionne très bien avec millis().
si tu fais une différence comme millis()-debut, il n'y pas de problème de débordement.


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Relais temporisés


arduino

Comments

Popular posts from this blog

Error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode - Raspberry Pi Forums

class MPU6050 has no member named begin

missing filename after '-o'