IR-ontvanger-0 (ontvanger voor afstandsbediening)
Doel:
| nodig:
|
Voorkennis:
| |
Met een IR ontvanger en de software voor het decoderen van IR-codes kun je je Arduino besturen met een IR afstandsbediening. We gebruiken dit om de LED aan- en uit te schakelen. | Pin-out voor TSOP34836: 1 = Out, 2=GND, 3=Vs |
Schakeling Verbind de IR ontvanger met de Arduino :
Verbind de LED met serieweerstand aan Arduino pin 12. | |
Library We gebruiken de IRremote library. Installeer deze library in de IDE: Bibliotheek gebruiken -> Bibliotheken beheren -> ...zoek op irremote... | |
Opdracht 1 - IRrevcDemo Met het programma Voorbeelden -> IRremote -> IRrevcDemo kun je de codes van je afstandsbediening leren kennen. De uitvoer bekijk je met de Seriële Monitor (9600 baud). Laad dit programma op je Arduino, en test dit met je afstandsbediening. | Vragen
|
Afstandsbediening Het onderstaande programma zet de LED op pin 12 aan met de knop "1", en uit met de knop "0". | Pas dit programma eventueel aan aan je eigen afstandsbediening. Het programma gebruikt alleen de laatste 2 bytes (4 hexadecimale cijfers) van de codes. |
#include <IRremote.h> int RECV_PIN = 11; int ledPin = 12; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Start receiver Serial.println("IR receiver started"); } void loop() { if (irrecv.decode(&results)) { int keycode = results.value & 0xFFFF; if (keycode == 0x6897) { digitalWrite(ledPin, LOW); } else if (keycode == 0x30CF) { digitalWrite(ledPin, HIGH); } Serial.println(results.value, HEX); irrecv.resume(); // restart receiver } // delay(100); } | Programma IRrecvLED Voordat je een IR-waarde kunt ontvangen, moet je eerst de ontvanger starten. Dit gebeurt met irrecv.enableIRin() De aanroep irrecv.decode(&results) geeft aan of er een nieuwe IR-code ontvangen is. Het resultaat vindt je in de results.value. De constructie results.value & 0xFFFF levert de laatste 2 bytes van de 32-bits results.value; dit zijn 4 hexadecimale cijfers. Deze bevatten de eigenlijke toetscode, de eerste bytes bevatten soms andere informatie. Het afdrukken van de ontvangen code is optioneel; dit kan handig zijn voor foutzoeken. Nadat je de ontvangen code verwerkt hebt, moet je de ontvanger herstarten. |
Opdracht 2 Bouw en test deze schakeling. |
|
Arduino lessen IR-ontvanger-0 --