Communication IR : Différence entre versions

De Wiki L.A.B
Aller à : navigation, rechercher
(Page créée avec « ===== Matériel ===== * 2 Arduino Uno * LED IR émittrice (exemple TSAL 6200) * KIT IR Réception (exemple SGK0002) * 2 résistances de 190 ohm (+/-) * APN avec déclenche... »)
 
Ligne 74 : Ligne 74 :
  
 
[[Catégorie:Communiquer avec un ordinateur]]
 
[[Catégorie:Communiquer avec un ordinateur]]
[[Catégorie:Formations]]
+
[[Catégorie:Formation_Arduino]]

Version du 3 janvier 2016 à 13:41

Matériel
  • 2 Arduino Uno
  • LED IR émittrice (exemple TSAL 6200)
  • KIT IR Réception (exemple SGK0002)
  • 2 résistances de 190 ohm (+/-)
  • APN avec déclenchement IR (Nikon D80 par exemple)
Principe

L'arduino couplé avec la LED IR va émettre en direction de l'arduino couplé avec le kit IR. Les exemples de code se basent sur la librairie IR REMOTE Cette librairie permet d’émettre et de recevoir via l’infrarouge; elle permet de gérer les protocoles NEC, Sony, Philips RC5/RC6 et le traitement de données brutes. La librairie comporte 2 fonctions essentielles, IRsend pour émettre un code et IRrecv pour recevoir un code. Article intéressant complémentaire : http://www.righto.com/2009/11/ir-bubbles-controlling-relay-with.html

Il est possible grâce à cette barrière IR de détecter qu'un objet la coupe par exemple et ainsi déclencher une action.

Montage
PARTIE RECEPTION

Recepteur-ir-fritz.jpg Recepteur-ir-photo2.jpeg

PARTIE EMISSION

Attention à bien utiliser le PIN 3 PWM

Emetteur-ir-fritz.jpg Emetteur-ir-photo.jpeg

Programme
PARTIE RECEPTION
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
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
  }
}
PARTIE EMISSION

Comme déjà précisé, il et nécessaire d'utiliser le PIN 3 PWM, dixit la documentation de la librairie

#include <IRremote.h>
IRsend irsend;
void setup()
{
  Serial.begin(9600);
}
void loop() {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(40);
    }
}