Elk Apparaat Besturen met Je TV Afstandsbediening via Arduino IR – Stap-voor-Stap Tutorial
In deze Arduino IR tutorial leer je hoe je elektronische apparaten kunt besturen met een TV afstandsbediening en een Arduino. We maken enkele voorbeelden: van een simpele LED, over een DC ventilator snelheidsregeling, tot het besturen van hoogspannings huishoudelijke apparaten. Bekijk de video of lees de tutorial hieronder.
Hoe Het Werkt
We kunnen zien dat de LED voor de TV afstandsbediening knippert wanneer we op een knop drukken. Dit is alleen zichtbaar door een camera, want het is infrarood licht, onzichtbaar voor het menselijk oog.

Het knipperen betekent dat bij een knopdruk de IR LED een burst van lichtpulsen uitzendt die we met een infrarood ontvanger moeten ontvangen.

In deze tutorial gebruiken we de VS 34838 IR Ontvanger. Het blokdiagram toont dat hij het ontvangen signaal versterkt, filtert en demoduleert, en een schone logische uitgang geeft die geschikt is voor de digitale input van de Arduino.

Met de Arduino-IRremote bibliotheek van Ken Shirriff en het demo-voorbeeld zien we op de seriële monitor een unieke hexadecimale code voor elke knopdruk, die we in ons programma kunnen gebruiken.

Link naar Ken Shirriff's Arduino-IRremote Library: https://github.com/z3t0/Arduino-IRremote
Een RGB LED Besturen met een TV Afstandsbediening
Je kunt de componenten verkrijgen via:
- IR Ontvanger
- RGB LED
- 3x 220 Ohm weerstanden
- Arduino Board
- Breadboard en Jumper Draden
We besturen de LED-kleur met de 4 kleurenknoppen van de TV afstandsbediening. Eerst moeten we de hexadecimale codes van deze knoppen achterhalen door het IRrecvDemo voorbeeld te uploaden en de Seriële Monitor te draaien. We drukken op elke knop en noteeren de codes.

Nu passen we de democode aan met if-statements die uitgevoerd worden bij een specifieke knopdruk. Voor elke knop stellen we de juiste RGB waarden in, en de setColor() functie laat de LED in die kleur branden. Voor meer details over RGB LED met Arduino, zie mijn Arduino RGB Tutorial.
/*
* Een RGB LED besturen met een TV afstandsbediening
* Gewijzigd IRrecvDemo voorbeeld uit Ken Shirriff IRremote Library
* Ken Shirriff, https://arcfn.com
* Gewijzigd door Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include <IRremote.h>
int RECV_PIN = 8; // IR Ontvanger - Arduino Pin 8
IRrecv irrecv(RECV_PIN);
decode_results results;
int redPin = 5; int greenPin = 6; int bluePin = 7;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start de ontvanger
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
if (results.value == 0xF21D7D46) { // Rode knop
setColor(255, 0, 0); delay(100);
}
if (results.value == 0x87CF1B29) { // Groene knop
setColor(0, 255, 0); delay(100);
}
if (results.value == 0x6623D37C) { // Gele knop
setColor(255, 255, 0); delay(100);
}
if (results.value == 0x854115F2) { // Blauwe knop
setColor(0, 0, 255); delay(100);
}
if (results.value == 0x1639AB6E) { // Stop knop
setColor(0, 0, 0); // UIT
delay(100);
}
irrecv.resume(); // Ontvang volgende waarde
}
delay(100);
}
// Aangepaste functie voor RGB LED aansturing
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Hier is het schakelschema van de Arduino IR gestuurde RGB LED:

Een DC Ventilator Snelheid Besturen met een TV Afstandsbediening
Componenten voor dit voorbeeld:
- DC Motor of DC Ventilator
- NPN Transistor
- Diode
- Condensator – 1uF
- Weerstand – 1k Ohm
In dit voorbeeld besturen we de snelheid van een DC ventilator met de vooruit en achteruit knoppen van de TV afstandsbediening. We gebruiken dit schakelschema om de motordraaisnelheid te regelen via PWM. Voor meer details over dit schema, zie mijn Arduino Motoren Tutorial.

Hier is de broncode. Met analogWrite() sturen we een PWM signaal naar de basis van de transistor. De PLAY knop start de motor op maximale snelheid (100% duty cycle), STOP stopt hem. De vooruit knop verhoogt de snelheid met elke druk (duty cycle +10), de achteruit knop verlaagt het.
/*
* DC Ventilator Snelheid Besturen met TV Afstandsbediening
* Gewijzigd IRrecvDemo uit Ken Shirriff IRremote Library
* Ken Shirriff, https://arcfn.com
* Gewijzigd door Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include <IRremote.h>
int RECV_PIN = 8;
int pwmPin = 7; // Arduino Pin 7 naar basis transistor
int pwmValue;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(pwmPin, OUTPUT);
pwmValue = 0; // Start met motor uit
}
void loop() {
if (irrecv.decode(&results)) {
analogWrite(pwmPin, pwmValue);
if (results.value == 0xAFAF8374) { // PLAY knop
pwmValue = 255; // 100% Duty Cycle | Max Snelheid
}
if (results.value == 0x98519C65) { // STOP knop
pwmValue = 0; // 0% Duty Cycle | Uit
}
if (results.value == 0x93F1BA08) { // VOORUIT knop
if(pwmValue <= 245){ pwmValue += 10; delay(20); }
}
if (results.value == 0x71D086FF) { // ACHTERUIT knop
if(pwmValue >= 20){ pwmValue -= 10; delay(20); }
}
Serial.print(pwmValue); Serial.print(" "); Serial.println(results.value, HEX);
irrecv.resume();
}
delay(100);
}
Hoogspannings Huishoudelijke Apparaten Besturen met een TV Afstandsbediening
Benodigde componenten:
- 5V Relais Module Amazon / Banggood / AliExpress
- Kabel, stekker, stopcontact
Het laatste voorbeeld: hoogspanningsapparaten besturen met de TV afstandsbediening. Hiervoor gebruiken we een relaismodule. Ik gebruik de HL-52S relaismodule met een schakelvermogen van 10A bij 250 en 125 V AC. Hier is het schakelschema. Met pin 7 van de Arduino besturen we het relais waarop een stopcontact zit voor het aansluiten van elk hoogspanningsapparaat.

WAARSCHUWING: We werken met HOOGSPANNING. Onjuist gebruik kan leidern tot ernstige letsel of dood. Wees uitermate voorzichtig; ik aanvaard geen verantwoordelijkheid voor jouw acties. Voor meer details over het relais en het maken van een stopcontact, zie mijn Arduino Relais Tutorial.

Hier is de broncode van dit voorbeeld:
/*
* Hoogspannings Huishoudelijke Apparaten Besturen met TV Afstandsbediening
* Gewijzigd IRrecvDemo uit Ken Shirriff IRremote Library
* Ken Shirriff, https://arcfn.com
* Gewijzigd door Dejan, www.HowToMechatronics.com
*/
#include <IRremote.h>
int RECV_PIN = 8;
int relayOut = 7;
int buttonState;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(relayOut, OUTPUT);
buttonState = HIGH; // Start met relais UIT. Relais input werkt invers: HOOG = gedeactiveerd
}
void loop() {
buttonState = digitalRead(relayOut);
if (irrecv.decode(&results)) {
if (results.value == 0xAFAF8374) { // PLAY knop
digitalWrite(relayOut, LOW); // Activeert relais
}
if (results.value == 0x98519C65) { // STOP knop
digitalWrite(relayOut, HIGH); // Deactiveert relais
}
irrecv.resume();
}
Serial.print(" "); Serial.println(results.value, HEX);
delay(100);
}
Productieproces
- Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Zelfgemaakte Arduino TV-afstandsbediening – Batterij, 3D-geprinte behuizing
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Twee Stappenmotors Sturen met Arduino Nano & Joystick – Simpele Tutorial
- Je Billy Bass Vis Laten Zingen met Elke Audiobron – Stapsgewijze Handleiding
- ThimbleKrox: Vingergemonteerde Muizenbesturing met Arduino Micro & MPU-6050
- DIY Arduino Kakerlakbesturingssysteem – Bouw voor minder dan $30
- Arduino Uno & Bluetooth voor afstandsbediening van auto: stap-voor-stap handleiding
- Arduino robotarm besturen via speciale Android-app
- 25 kHz 4-pins PWM-ventilatorbesturing met Arduino Uno – Bouw, Code & Test