IR-ontvanger-1 (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 het knipperen van de LED aan te passen. | |
Schakeling Verbind de IR ontvanger met de Arduino :
Verbind de LED met serieweerstand aan Arduino pin 12. | |
Opdracht 1 Het onderstaande programma (IRrecvLED-1) laat de LED via de knoppen 0, 1, 2, 3 met verschillende snelheden knipperen. Breid dit uit voor de knoppen 4 t/m 9. | |
#include <IRremote.h> int RECV_PIN = 11; int ledPin = 12; int ledState = 0; unsigned long timerStart; unsigned long timerPeriod = 1000L; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); Serial.println("Enabling IRin"); irrecv.enableIRIn(); // Start the receiver Serial.println("Enabled IRin"); } void loop() { if (millis() - timerStart >= timerPeriod) { timerStart = timerStart + timerPeriod; ledState = 1 - ledState; digitalWrite(ledPin, ledState); }
if (irrecv.decode(&results)) { Serial.println(results.value, HEX); unsigned int keycode = results.value & 0xFFFF; // last 2 bytes irrecv.resume(); // start receiving the next value switch (keycode) { case 0x6897: timerPeriod = 0L; break; case 0x30CF: timerPeriod = 100L; break; case 0x18E7: timerPeriod = 200L; break; case 0x7A85: timerPeriod = 400L; break; default: ; } } } | IRrecvLED-1 |
De constructie switch (x) { case 1: actie1; break; case 2: actie2; break; ... default: actied; } | komt overeen met: if (x == 1) { actie1; } else if (x == 2) { actie2; ... } else { actied; } |
Opdracht 2 Breid het programma uit voor de knoppen + en -. Welke functie zou je deze willen geven? |
Arduino lessen IR-ontvanger-1 --