Mon programme se bloque?

Bonjour à tous, J'ai un montage sur CI à base d'atmega329 qui m'active un relai pour allumer un brumisateur et un second pour allumer un néon. Tant que l'humidité dans mon terrarium est inférieur à 85%, je lance un monostable qui active le brumisateur 30 secondes, puis je fais une pause de 30 secondes. Après quelque tours, mon arduino semble se bloquer. L'humidité sur l'écran LCD ne bouge plus, et le brumisateur reste allumé. Ca arrive aussi qu'il se reset sans que je lui demande. Pourquoi se comportement ? J'ai cherché toute la journée je ne comprends pas :(

Merci de votre aide :)

Voici peut-être le code qui pose problème

void Terrarium::autoGestionHygrometrie(const byte niveauBas, const byte niveauHaut)
{
 
  /*
    Dans cette fonction, je créé une impulsion toutes les X secondes afin d'activer la sortie d'un monostable
    qui activera l'humidifacteur pendant Y secondes
  
  */
  unsigned long time = millis();
  static unsigned long previousMillis = 0;
  int hygrometrie = getHygrometrie();
  
    
  static bool activerHygrometrie = false;
  
  
  if(hygrometrie < niveauBas && hygrometrie != 0)
    activerHygrometrie = true;

    
  if(activerHygrometrie)
  {
    const unsigned long tempsMonostable = 37300UL;
    //const unsigned long tempsMonostable = 11000UL;
    if(time - previousMillis >= (1000UL * 20UL) + tempsMonostable || previousMillis == 0) // impulsion toute les x secondes
    {
      //pinMode(PIN_BRUMISATEUR, OUTPUT);
      previousMillis = time;
      digitalWrite(PIN_BRUMISATEUR, HIGH);
      delay(10);
      digitalWrite(PIN_BRUMISATEUR, LOW);      
      delay(10);
      digitalWrite(PIN_BRUMISATEUR, HIGH);
    }
    
    if(hygrometrie >= niveauHaut)
    {
      activerHygrometrie = false;
    }
  }
  else
  {
    Serial.println("hygro inactif");
    //pinMode(PIN_BRUMISATEUR, INPUT_PULLUP);
  }
  
  Serial.println("\n");
  Serial.println(activerHygrometrie);
 
}

Je ne vois rien de suspect dans le code.

Est ce que l'alimentation du montage est suffisante ? En cas de chute de tension ça peut faire planter.

Bonjour,

la commutation du néon, pourrais être à l'origine de perturbations qui plateraient le µC.

A voir..

Yan_Duino.

Bonjour, Merci pour vos réponse ! J'utilise un relai pour commander mon néon. Il y a donc une isolation entre la partie commande et la partie puissance. Ca ne devrait pas perturbé mon uc ? Si ?

Mon alimententation est suffisante, j'ai déjà fais cette vérification :)

J'ai passé le temps de l'impulsion à 100 us pour essayer, je vous tiens au courant

Oui mais le relais lui même ? Quel montage ? Quelle alim ?