Vous êtes sur la page 1sur 17

FORMATION ARDUINO (6 SÉANCE)

TAHRI KHALID

011010100111001

IR Remote control
SOMMAIRE

 Hardware :
 Capteur IR
 Technologies IR

 Software :
 Bibliothèque infrarouge
 TP
CAPTEUR ET TECHNOLOGIE IR

011010100111001
Applications

 Télécommander par infrarouge des projets


(commande de volet, éclairage...)
 Réémettre à l'identique une télécommande
pour augmenter la distance
 Remplacement d'une télécommande perdue
 Regrouper plusieurs télécommandes en une
seule (TV + DVD + éclairage du salon ..?).
Emetteur IR
L’émetteur est une simple LED infra-rouge
qui transmette un signal codé (0 et 1), vers
un récepteur infra-rouge placé dans une
autre appareil
Récepteur IR
Le récepteur est un composant électronique
qui permit la réception du signal infrarouge
d’une fréquence de 38KHz et d’une portée
de 18 mètres.

WS 1838B
Récepteur IR Emetteur IR
Technologie IR
Il existe de nombreux protocoles de
transmissions (NEC, Sony SIRC, Philips RC5,
Philips RC6, données brutes...) et plusieurs
manières de coder les informations.
Certains protocoles demande de répéter trois
fois l'information.
Protocole RC5 de Philips

1) Deux bits de début (S1 et S2), les deux à '1' logique.


2) Un Toggle bit . Ce bit est inversé chaque fois qu'une touche est relâchée et
appuyée à nouveau.
3) L'adresse à 5 bits pour le périphérique de réception
4) La commande 6 bits. Pour les buttons d’une télécommande
BIBLIOTHÈQUE INFRAROUGE

IRremote
https://github.com/z3t0/Arduino-IRremote
Protocoles prise en charge
#include <IRremoteInt.h>
#include <IRremote.h>

IRrecv irrecv(13);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode( &results )) {
Serial.println( results.value , HEX );
irrecv.resume(); // Receive the next value
}
delay(100);
}
#include <IRremote.h>

IRsend irsend;

void setup()
{
}
void loop() {
for (int i = 0; i < 3; i++) {
irsend.sendSony(0xa90, 12);
delay(40);
}
delay(5000); //5 second delay between each signal burst
}
#include <IRremoteInt.h>
#include <IRremote.h>

boolean led1=LOW ,led2=LOW;


IRrecv irrecv(13);
decode_results results;

void setup()
{
irrecv.enableIRIn(); // Start the receiver
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);

}
void loop() {
if (irrecv.decode( &results )) {
if(results.value == 0x20DF8877)
{
led1=!led1;
digitalWrite(5,led1);
}

if(results.value == 0x20DF48B7)
{
led2=!led2;
digitalWrite(6,led2);
}
irrecv.resume(); // Receive the next value
}
delay(100);
}