Récepteur IR (InfraRouge)

Un capteur infrarouge et un composant qui est sensible aux ondes lumineuses situées dans l'infrarouge.

Un récepteur infrarouge doit transformer un signal lumineux en signal numérique.

38kHz

Récepteur Infrarouge

DéfinitionIRremote.h 2.x

Pour simplifier la programmation, on peut utiliser une bibliothèque.

Nous utilisons ici IRremote.h

Circuit IR
1
#include <IRremote.h>
2
3
int PinIR = 11; // Pin de reception
4
5
IRrecv receptionIR(PinIR); // Instance de IRrecv
6
decode_results resultats;
7
void setup()
8
{
9
  Serial.begin(9600);
10
  Serial.println("Affichage de la ligne de données");
11
  receptionIR.enableIRIn(); // Demarrage de la reception
12
}
13
14
void loop()
15
{
16
  if (receptionIR.decode(&resultats)) // Si on reçoit un signal
17
  {
18
    switch (resultats.value) // selon la valeur du signal
19
    {
20
    case 0xFD08F7:
21
      Serial.println("1");
22
      break;
23
    case 0xFD8877:
24
      Serial.println("2");
25
      break;
26
    case 0xFD48B7:
27
      Serial.println("3");
28
      break;
29
30
    default:
31
      Serial.print(resultats.value, HEX);
32
      Serial.println("  : autre   ");
33
    }
34
35
    receptionIR.resume(); // relance la reception d'un prochain signal
36
  }
37
}

DéfinitionIRremote.h 3.x

La dernière version de IRremote contient quelques modifications

Circuit IR
1
#include <Arduino.h>
2
#include <IRremote.h>
3
4
int PinIR = 11; // Pin de reception
5
6
IRrecv receptionIR(PinIR);  // Instance de IRrecv
7
8
void setup()
9
{
10
  Serial.begin(9600);
11
  Serial.println("Affichage de la ligne de données");
12
  receptionIR.enableIRIn(); // Demarrage de la reception  
13
}
14
15
void loop()
16
{
17
  if (receptionIR.decode()) // Si on reçoit un signal
18
  {    
19
    Serial.print("DecodedRawData : ");
20
    Serial.println(receptionIR.decodedIRData.decodedRawData,HEX);
21
22
    receptionIR.resume(); // relance la reception d'un prochain signal
23
  }
24
}