πŸ“‘

IR-Fernbedienung

Projekt I08 - Infrarot-Empfaenger VS1838B

Intermediate
VS1838B
IR-Remote
1
Lernziele

Was du lernst

  • IR-Protokoll - NEC-Format mit 38 kHz Traegerfrequenz verstehen
  • IRremote Library - Bibliothek einbinden und konfigurieren
  • Codes dekodieren - Empfangene Tasten-Codes auswerten
  • switch-case - Verschiedene Tasten unterschiedlichen Aktionen zuordnen

Voraussetzungen

Beginner-Projekte abgeschlossen, Grundlagen der seriellen Kommunikation und switch-case bekannt

Komponenten

Was du brauchst

πŸ“‘

VS1838B IR-Empfaenger

Miniatur-Infrarot-Empfaengermodul fuer 38 kHz modulierte IR-Signale. Demoduliert das Signal und gibt digitale Impulse aus.

Frequenz: 38 kHz Traeger

Reichweite: bis 18 Meter

πŸ“Œ

VS1838B Pinbelegung

  • Pin 1 (DAT) - Datenausgang (Signal)
  • Pin 2 (GND) - Masse
  • Pin 3 (VCC) - Versorgung 2.7V-5.5V

Hinweis: In Wokwi heisst der Empfaenger "IR Receiver"

IR-Fernbedienung

In Wokwi ist eine virtuelle Fernbedienung integriert. Echte Fernbedienungen (TV, DVD, etc.) funktionieren meist mit dem NEC-Protokoll.

2
Theorie

Infrarot-Kommunikation

Wie funktioniert IR?

  • Unsichtbares Licht bei 940nm Wellenlaenge
  • 38 kHz Traegerfrequenz gegen Stoerlicht
  • Timing-basierte Kodierung (NEC-Protokoll)
  • 32 Bit pro Befehl: Adresse + Daten + Invers

NEC-Protokoll Timing

  • Start: 9ms Burst + 4.5ms Pause
  • Bit 0: 562us Burst + 562us Pause
  • Bit 1: 562us Burst + 1687us Pause

NEC-Signalstruktur

   Start        32 Bit Daten         Ende
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”
β”‚ 9ms+4.5ms β”‚ β”‚ Adresse + Command   β”‚ β”‚Endβ”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”˜

   Bit 0          Bit 1
β”Œβ”€β”€β”€β” β”Œβ”€β”€β”€β”   β”Œβ”€β”€β”€β”     β”Œβ”€β”€β”€β”
β”‚562β”‚ β”‚562β”‚   β”‚562β”‚     β”‚1687β”‚
β””β”€β”€β”€β”˜ β””β”€β”€β”€β”˜   β””β”€β”€β”€β”˜     β””β”€β”€β”€β”˜
 Burst Pause   Burst    Pause
            

Vorteil: Traegerfrequenz filtert Sonnenlicht und Lampen aus

Schaltplan

Verbindungen zum Arduino

Wokwi-Aufbau

    Arduino Uno           VS1838B
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”
   β”‚           β”‚        β”‚ β”Œβ”€β”€β”€β” β”‚
   β”‚  5V ──────┼────────┼──VCCβ”‚ β”‚
   β”‚           β”‚        β”‚ β””β”€β”€β”€β”˜ β”‚
   β”‚  Pin 7 ───┼────────┼──DATβ”‚ β”‚
   β”‚           β”‚        β”‚ β””β”€β”€β”€β”˜ β”‚
   β”‚  GND ─────┼────────┼──GNDβ”‚ β”‚
   β”‚           β”‚        β”‚ β””β”€β”€β”€β”˜ β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”˜
            

Wichtige Verbindungen

  • VS1838B VCC β†’ Arduino 5V
  • VS1838B DAT β†’ Arduino Pin 7
  • VS1838B GND β†’ Arduino GND

Wokwi-Fernbedienung

Klicke in der Simulation auf die Fernbedienung und druecke die Tasten - die Codes werden sofort gesendet!

3
Code

Schritt 1: Library einbinden

// Schritt 1: IRremote-Library einbinden

#include <IRremote.h>

// IR-Empfaenger an Pin 7
#define IR_PIN 7

void setup() {
    Serial.begin(9600);

    // IR-Empfaenger initialisieren
    IrReceiver.begin(IR_PIN, ENABLE_LED_FEEDBACK);

    Serial.println("Warte auf IR-Signale...");
}

void loop() {
    // Wird gleich gefuellt...
}

Erklaerung

  • #include <IRremote.h> - Bindet die IR-Bibliothek ein
  • IrReceiver.begin() - Startet den Empfaenger
  • ENABLE_LED_FEEDBACK - LED blinkt bei Empfang

IRremote Library

Die Library dekodiert automatisch NEC, Sony, RC5, RC6 und viele weitere IR-Protokolle. Du musst nur die empfangenen Codes auswerten!

3
Code

Schritt 2: Signal dekodieren

void loop() {
    // Pruefen ob IR-Signal empfangen wurde
    if (IrReceiver.decode()) {

        // Pruefen ob bekanntes Protokoll
        if (IrReceiver.decodedIRData.protocol != UNKNOWN) {

            // Tasten-Code ausgeben
            Serial.print("Code: 0x");
            Serial.println(IrReceiver.decodedIRData.command, HEX);

            // Protokoll-Name ausgeben
            Serial.print("Protokoll: ");
            Serial.println(getProtocolString(IrReceiver.decodedIRData.protocol));
        }

        // Empfaenger fuer naechstes Signal vorbereiten
        IrReceiver.resume();
    }
}

Wichtige Funktionen

decode() gibt true zurueck wenn ein Signal empfangen wurde. decodedIRData.command enthaelt den Tasten-Code. resume() bereitet den Empfang des naechsten Signals vor.

3
Code

Schritt 3: Tasten zuordnen

// Typische Tasten-Codes (China-Fernbedienung)
void handleKey(uint8_t code) {
    switch (code) {
        case 0x0C: Serial.println("Taste 1"); break;
        case 0x18: Serial.println("Taste 2"); break;
        case 0x5E: Serial.println("Taste 3"); break;
        case 0x44: Serial.println("PREV");    break;
        case 0x40: Serial.println("NEXT");    break;
        case 0x43: Serial.println("PLAY");    break;
        case 0x07: Serial.println("VOL-");    break;
        case 0x15: Serial.println("VOL+");    break;
        default:  Serial.println("Unbekannt");
    }
}

switch-case Struktur

Jeder case vergleicht mit einem Hex-Code. Bei Treffer wird die Aktion ausgefuehrt. break verhindert Durchfallen zum naechsten case.

Eigene Codes finden

Starte das Programm und druecke jede Taste. Notiere die Hex-Codes im Serial Monitor und passe die switch-Werte an!

Ausprobieren

Simulation in Wokwi

Wokwi Projekt

Erstelle ein neues Projekt mit Arduino Uno und IR-Receiver:

So testest du

  • Fuege einen "IR Receiver" hinzu (Suche: "ir receiver")
  • Fuege eine "IR Remote" hinzu (Suche: "ir remote")
  • Verbinde: VCC β†’ 5V, DAT β†’ Pin 7, GND β†’ GND
  • Kopiere den Code in die sketch.ino
  • Klicke auf Play - dann auf die Fernbedienungs-Tasten
  • Tipp: Im Serial Monitor siehst du die empfangenen Codes!
4
Challenges

Erweiterungen

Probiere diese Aufgaben aus

πŸ’‘

Challenge 1: LED-Steuerung

3 LEDs mit den Tasten 1, 2 und 3 ein- und ausschalten (Toggle)

πŸ”†

Challenge 2: LED-Dimmer

LED-Helligkeit mit VOL+ erhoehen und VOL- verringern

🌈

Challenge 3: RGB-Farbwechsel

RGB-LED mit Zifferntasten 1-6 in verschiedenen Farben steuern

πŸ”„

Challenge 4: Servo-Steuerung

Servo mit PREV/NEXT Tasten links/rechts bewegen

πŸ“‘

Geschafft!

Du beherrschst jetzt die IR-Fernsteuerung

πŸ“š

IRremote Library

Externe Bibliothek genutzt

πŸ”’

NEC-Protokoll

38 kHz IR-Signale dekodiert

πŸŽ›οΈ

switch-case

Tasten Aktionen zugeordnet

Intermediate komplett!

Du hast alle 8 Intermediate-Projekte abgeschlossen! Bereit fuer die Advanced-Projekte?

← β†’
1 / 11