1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| // Filename: "Code tuto 10.3.ino"
/* Ceci est le code correspondant au Tuto 10.2 (càd complété avec la 2ème partie permettant l'allumage des LEDs)
sur la Réception IR sur Arduino, MAIS adapté à la télécommande de HiFiCollective envisagée pour le PERREAUX
et qui utilise les mêmes codes que ma Philips de BANDOL.
disponible sur Arduino TV, ici: http://arduinotvfr.livehost.fr/tutoriels/tutoriel-n102--interpretati.html
*/
#include <IRremote.h> // librairy permettant d'utiliser l'IR
const int RECV_PIN = 12; // car on relie la sortie du récepteur IR à la pin 12 de l'Arduino
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600); // Démarre le transmetteur série pour voir les résultats sur PC
irrecv.enableIRIn(); //
irrecv.blink13(true);
pinMode(3,OUTPUT); // c'est à cette Pin 3 qu'est reliée la 1ère LED de sortie
pinMode(4,OUTPUT); // c'est à cette Pin 4 qu'est reliée la 2ème LED de sortie
pinMode(5 ,OUTPUT); // c'est à cette Pin 5 qu'est reliée la 3ème LED de sortie
}
void loop() {
if (irrecv.decode(&results)) {
if (results.decode_type == NEC) {
Serial.print("NEC: "); // comme dans le Tuto 10 précédent, cela affiche la marque de la télécommande
} else if (results.decode_type == SONY) {
Serial.print("SONY: ");
} else if (results.decode_type == RC5) {
Serial.print("RC5: ");
} else if (results.decode_type == RC6) {
Serial.print("RC6: ");
} else if (results.decode_type == UNKNOWN) {
Serial.print("UNKNOWN: ");
}
Serial.println(results.value, HEX); // comme dans le tuto 10 précédent cela affiche en Hexadécimal ce que reçoit le capteur IR
// c'est dans cette section que l'on rajoute les lignes supplémentaires par rapport au Tuto 10 précédent
if(results.value==0xFD08F7){ // "FD08F7" correspond au Bouton 1 de la Télécommande DFRobot DFR0107 utilisée: les codes ont été trouvés au précédent Tuto 10
// au cours duquel il a lu la valeur reçue par le capteur IR quand il appuyait sur le Bouton 1
// ATTENION: bien mettre 0x devant FD087 car sinon l'Arduino ne comprends pas que c'est un code hexadécimal...
digitalWrite(3,HIGH); // si le capteur a reçu "FD08F7" càd si on a appuyé sur le Bouton 1, alors on allume la 1ère LED et on éteint les 2 autres LED.
digitalWrite(4,LOW);
digitalWrite(5,LOW);
delay(100); // on introduit ici un délai de 100millisecondes pour que le code de la télécommande ne se répète pas plusieurs fois
}
if(results.value==0xFD8877){ // on répète le raisonnement avec la valeur "FD8877" correspondant au Bouton 2 de la Télécommande
// sans oublier le 0x devant le code pour que l'Arduino comprenne que c'est de l'hexadécimal...
digitalWrite(3,LOW); // et ici on décide d'allumer la LED 2 et d'éteindre les LED 1 et 3.
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
delay(100); // on introduit ici un délai de 100millisecondes pour que le code de la télécommande ne se répète pas plusieurs fois
}
if(results.value==0xFD48B7){ // idem avec la valeur "FD48B7" correspondant au Bouton 3 de la Télécommande
digitalWrite(3,LOW); // on éteint LED 1
digitalWrite(4,LOW); // on éteint LED 2
digitalWrite(5,HIGH); // où on allume la LED 3
delay(100); // on introduit ici un délai de 100millisecondes pour que le code de la télécommande ne se répète pas plusieurs fois
}
irrecv.resume();
}} |
Partager