Étape 9: Le Code
Avant de télécharger le code, vous devez télécharger la bibliothèque IRremote.
#include < Servo.h >
#include < IRremote.h >
Servo servoLeft ; Définir la servocommande gauche
Servo servoRight ; Définir le servo de droite
Palonnier de servo ; Définir le servo Arm
Servo servoClaw ; Définir le servo de griffe
int RECV_PIN = 11 ; Zone de réception Pin IR
IRrecv irrecv(RECV_PIN) ;
résultats de la decode_results ;
void setup() {}
servoLeft.attach(10) ; La valeur gauche servo numérique broche 10
servoRight.attach(9) ; Set servo de droite jusqu'à la broche numérique 9
servoArm.attach(5) ; Set servo Arm à la broche numérique 5
servoClaw.attach(6) ; Set servo de griffe sur la broche numérique 6
Serial.Begin(9600) ;
irrecv.enableIRIn() ; Démarrer le récepteur}
void loop() {/ / Loop grâce à des tests de mouvement
Si (irrecv.decode (et résultats)) {}
long int decCode = results.value ;
Serial.println(decCode) ;
Switch (results.value) {}
affaire 0x2F0 :
Serial.println("Forward") ;
servoLeft.writeMicroseconds(1700) ;
servoRight.writeMicroseconds(1300) ;
rupture ;
affaire 0x810 :
Serial.println("SlowForward") ;
servoLeft.writeMicroseconds(1520) ;
servoRight.writeMicroseconds(1480) ;
rupture ;
affaire 0xAF0 :
Serial.println("Reverse") ;
servoLeft.writeMicroseconds(1300) ;
servoRight.writeMicroseconds(1700) ;
rupture ;
affaire 0x910 :
Serial.println("SlowReverse") ;
servoLeft.writeMicroseconds(1480) ;
servoRight.writeMicroseconds(1520) ;
rupture ;
affaire 0xCD0 :
Serial.println("Right") ;
servoLeft.writeMicroseconds(1600) ;
servoRight.writeMicroseconds(1600) ;
rupture ;
affaire 0xA50 :
Serial.println("SlowRight") ;
servoLeft.writeMicroseconds(1520) ;
servoRight.writeMicroseconds(1525) ;
rupture ;
affaire 0x2D0 :
Serial.println("left") ;
servoLeft.writeMicroseconds(1400) ;
servoRight.writeMicroseconds(1400) ;
rupture ;
affaire 0x710 :
Serial.println("SlowLeft") ;
servoLeft.writeMicroseconds(1480) ;
servoRight.writeMicroseconds(1475) ;
rupture ;
affaire 0xA70 :
Serial.println("Stop") ;
servoLeft.writeMicroseconds(1500) ;
servoRight.writeMicroseconds(1500) ;
rupture ;
affaire 0x290 :
Serial.println("Pos4") ;
servoArm.writeMicroseconds(1700) ;
rupture ;
affaire 0xC90 :
Serial.println("Pos3") ;
servoArm.writeMicroseconds(1500) ;
rupture ;
affaire 0x490 :
Serial.println ("Pos 2") ;
servoArm.writeMicroseconds(1300) ;
rupture ;
affaire 0x5CE9 :
Serial.println("Pos1") ;
servoArm.writeMicroseconds(900) ;
rupture ;
cas 0 x 70 :
Serial.println("Pos0") ;
servoArm.writeMicroseconds(2000) ;
rupture ;
affaire 0x890 :
Serial.println("Open") ;
servoClaw.writeMicroseconds(1700) ;
rupture ;
affaire 0x90 :
Serial.println("Close") ;
servoClaw.writeMicroseconds(1000) ;
rupture ;
rupture ;
par défaut : Serial.println ("Waiting...");}
irrecv.Resume() ; Recevoir la valeur suivante
}
}
Ce code est très simple à comprendre, car il y a beaucoup de répétition.
Le début #includes sont juste diriger la Commission d’utiliser les deux bibliothèques (Servo.h vient téléchargé avec IDE Arduino)
Après cela, Servos sont définis pour que le jury sait combien servos y sont et ce qu’il faut les appeler.
Puis, l’axe récepteur IR est définie comme la broche 11 et invitée à décoder les résultats de ce qu’il reçoit.
Dans void_setup, les numéros de broches de servo sont définis, et la série et le récepteur IR sont démarrés.
Dans le void_loop, le programme décode les codes IR et fait des choses dans une instruction case. Une instruction case est semblable à un if instruction, mais il utilise moins de lignes de code. Il vérifie si le cas est respecté, et si donc, il exécute le code sous elle, jusqu'à ce que l’instruction break.
Pour obtenir les codes IR de la télécommande TV, exécuter l’exemple de IRrecv_demo de la bibliothèque de télécommande IR. Appuyez sur les boutons et notez les codes que vous recevez par bouton. Remplacer mes codes de télécommande de téléviseur (après l’instruction case suite x 0) dans le programme basé sur les boutons que vous souhaitez utiliser. Vous n’avez pas à utiliser toutes les fonctionnalités. Le servo.writeMicroseconds(xxxx) indique simplement les servos ce qu’il faut faire, telle que tourner dans un sens, ou quelle est la position d’aller. Ces valeurs peuvent également être joués avec.
Télécharger le programme sur votre Arduino et vous devriez être bon d’aller !
Si vous avez des questions, n’hésitez pas à commenter et je répond rapidement.