PROBLEME D'EXECUTION " VOID LOOP " ( ARDUINO )

Bonjour, j’ai réalisé un code arduino qui permet en appuyant sur le bouton power d’une télécommande IR d’activer la rotation d’un servo-moteur.Je veux au final faire en sorte qu’en appuyant sur power le servo-moteur qui est à 0° aille à 110° puis revienne à zéro au bout d’une demi-seconde puis refasse la même chose dès que je appuie sur power. Le problème est qu’actuellement, quand j’appuie sur power le servo-moteur tourne bien à 110° puis reviens à 0° mais repars ensuite à 110° puis revient à 0° ainsi desuite et ça indéfiniment jusqu’à que je coupe l’alimentation. Pouvez-vous m’aider et me dire la cause de ce problème ? Merci d’avance !

Le code :

#include <Servo.h>
#include <IRremote.h> // Bibliothèque IR
#include <IRremoteInt.h> // Bibliothèque IR

const char DIN_RECEPTEUR_INFRAROUGE = 12;  // Déclare l'emplacement sur la broche

decode_results message; // décode les résultats

Servo myservo;  // create servo object to control a servo
IRrecv monIr(DIN_RECEPTEUR_INFRAROUGE); // renomme IRrecv

int pos = 0;    // variable to store the servo position

void setup() {
 myservo.attach(9);  // attaches the servo on pin 9 to the servo object
 myservo.write(0);   // Met le servo a 0
  monIr.enableIRIn();  // Démarre le IRreceiver
}

void loop() {
     if ( monIr.decode( &message ) ) {
     if ( message.value == 0xFFA25D ) { //FFA25D est le code du bouton power
 for (pos = 0; pos <= 110; pos += 1) { // goes from 0 degrees to 180 degrees
   // in steps of 1 degree
   myservo.write(pos);              // tell servo to go to position in variable 'pos'
   delay(5);                       // waits 15ms for the servo to reach the position
 }
 for (pos = 110; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
   myservo.write(pos);              // tell servo to go to position in variable 'pos'
   delay(5);                       // waits 15ms for the servo to reach the position
      }
    }
  }
}

Vous manquez un monIr.resume(). Voir les exemples.