PROBLEME D'EXECUTION " VOID LOOP " ( ARDUINO )

Fermé
Jojon2711 Messages postés 20 Date d'inscription samedi 16 mai 2020 Statut Membre Dernière intervention 13 juin 2020 - Modifié le 19 mai 2020 à 18:56
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
      }
    }
  }
}