Jojon2711
Messages postés20Date d'inscriptionsamedi 16 mai 2020StatutMembreDernière intervention13 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
}
}
}
}