Fonction de temps long

Bonsoir,
Je débute dans l'univers de l'arduino.
J'essaye tant bien que mal à faire fonctionner un système de filtration sur mon bassin. Le but est de faire tourner un moteur(tambour) pendant 4secondes tout les 15minutes.
J'arrive à effectuer cette fonction avec le code ci-dessous pour l'essai 4 secondes toutes les 10 secondes. Mais dès que je veux entrer les 15 minutes en millisecondes, cela ne fonctionne plus.
Y a t'il un maximum avec cette fonction à ne pas dépasser?
Merci pour votre aide.

type or paste code here
int Etat_tambour = LOW;  
unsigned long previousMillis = 0;  
unsigned int interval; 
unsigned int interval1 = 900000; //Temps entre chaque rotation
unsigned int interval2 = 4000;  //Durée de rotation

void loop() {


unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) 
  {
    previousMillis = currentMillis;   
    if (Etat_tambour == LOW)     
    { 
      Etat_tambour = HIGH;    
      Etat_tambour = interval2;
      interval = interval2;
      
    } else                 
    {
      Etat_tambour= LOW;     
      interval = interval1; 
    }
    digitalWrite(tambour, Etat_tambour); 
  }

Le souci c’est unsigned int. Il faut utiliser unsigned long

Activez les options de compilation détaillée pour tous les warning, vous serez prévenu que la valeur 900000 est trop grande sans doute.

(Un int sur UNO ou MEGA c’est 16 bits)

Merci beaucoup J_M_L, je vais creuser dans cette direction.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.