Accueil > Arduino, Matériel > Utiliser un capteur infrarouge pour décoder une télécommande IR

Utiliser un capteur infrarouge pour décoder une télécommande IR

Le but de cet article est d’avoir un programme qui permettra de décoder les télécommandes IR.

Il suffit de récupérer un capteur infrarouge dans un vieux hélicoptère miniature; le brochage sera le suivant :

image

  Broche 1 : Sortie

Broche 2 : GND

   Broche 3 : 3 à 5v

Le schéma de câblage entre l’Arduino et le capteur sera le suivant :

image

Le programme sera le suivant récupéré sur le site Adafruit et modifié par mes soins :

/*
  Hacking Infrarouge
*/

// initialise la broche 2 en mode brut
#define IRpin_PIN PIND
#define IRpin 2
// définit le nombre de µs maximum à utiliser pour récupérer le signal
#define MAXPULSE 65000
// définit la résolution
#define RESOLUTION 20
// définit le tableau qui contiendra les 100 impulsions
uint16_t pulses[100][2];
uint8_t currentpulse=0;

void setup() {
  Serial.begin(9600);
  Serial.println("Ready to decode IR !");
}

void loop() {
  uint16_t highpulse, lowpulse;
  highpulse = lowpulse = 0;
  while (IRpin_PIN & (1 << IRpin)) {
    highpulse++;
    delayMicroseconds(RESOLUTION);
    if ((highpulse >= MAXPULSE) && (currentpulse != 0)) {
      printpulses();
      currentpulse = 0;
      return;
    }
  }
  pulses[currentpulse][0] = highpulse;
  while (! (IRpin_PIN & _BV(IRpin))) {
    lowpulse++;
    delayMicroseconds(RESOLUTION);
    if ((lowpulse >= MAXPULSE) && (currentpulse != 0)) {
      printpulses();
      currentpulse = 0;
      return;
    }
  }
  pulses[currentpulse][1] = lowpulse;
  currentpulse++;
}

void printpulses(void) {
  Serial.println("\n\r\n\rReceived:\n\rOFF \tON");
  for (uint8_t i = 0; i < currentpulse; i++) {
    Serial.print(pulses[i][0] * RESOLUTION, DEC);
    Serial.print(" usec, ");
    Serial.print(pulses[i][1] * RESOLUTION, DEC);
    Serial.println(" usec");
  }
}

Lancer le et ouvrir le moniteur série.

Prenez la télécommande (dans l’exemple c’est une télécommande Phillips) et appuyer sur la touche On/Off en dirigeant la télécommande sur le capteur; voici le résultat obtenu :

Ready to decode IR !

 

Received:

OFF     ON
29756 usec, 2600 usec
880 usec, 420 usec
880 usec, 420 usec
440 usec, 440 usec
420 usec, 440 usec
860 usec, 860 usec
440 usec, 440 usec
420 usec, 440 usec
420 usec, 440 usec
420 usec, 440 usec
440 usec, 420 usec
440 usec, 360 usec
500 usec, 440 usec
420 usec, 440 usec
420 usec, 440 usec
420 usec, 360 usec
520 usec, 420 usec
440 usec, 860 usec
420 usec, 440 usec
880 usec, 420 usec
440 usec, 440 usec
16064 usec, 2600 usec
880 usec, 360 usec
940 usec, 440 usec
420 usec, 440 usec
440 usec, 420 usec
840 usec, 900 usec
420 usec, 440 usec
440 usec, 420 usec
440 usec, 360 usec
500 usec, 420 usec
440 usec, 360 usec
500 usec, 360 usec
500 usec, 440 usec
420 usec, 440 usec
440 usec, 420 usec
440 usec, 420 usec
440 usec, 440 usec
420 usec, 880 usec
420 usec, 420 usec
880 usec, 420 usec
440 usec, 440 usec
16084 usec, 2600 usec
860 usec, 440 usec
880 usec, 420 usec
440 usec, 440 usec
420 usec, 440 usec
860 usec, 860 usec
440 usec, 420 usec
440 usec, 420 usec
440 usec, 440 usec
420 usec, 440 usec
420 usec, 440 usec
420 usec, 440 usec
440 usec, 420 usec
440 usec, 420 usec
440 usec, 420 usec
440 usec, 440 usec
420 usec, 440 usec
440 usec, 860 usec
420 usec, 440 usec
880 usec, 420 usec
440 usec, 340 usec

 

Si on ignore le premier signal ‘OFF’, et après détection de la répétition des codes, on obtient le code suivant :

PWM ON

OFF (pas de signal)

2.6 ms 0.8 ms
0.4 ms 0.8 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.8 ms 0.8 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.4 ms
0.8 ms 0.4 ms
0.4 ms 0.4 ms
0.4 ms 0.8 ms
0.4 ms 0.4 ms

La pulsation PWM ON veut dire que pendant x ms on envoie un signal modulé ayant une fréquence d’environ 38 KHz.

Nous verrons dans un prochain article comment piloter un appareil via l’Arduino.

Advertisements
Catégories :Arduino, Matériel Étiquettes : , ,
  1. Em
    01/11/2015 à 11:52

    Bonjour,
    Une fois le code de la télécommande obtenu , comment faire pour l’exploiter?
    Merci pour votre réponse.

  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :