Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Arduino - read and decode infrared signals from a remote controller

    Arduino IR Signal decodieren

    Alex @ AEQ-WEB

    Für dieses Projekt gibt es auch ein Video auf Youtube: Infrarot Signale einer Fernbedienung decodieren mit dem Arduino und einem IR-Receiver

    Infrarot ist eine optische Übertragung, die heute noch vielfach in Fernsteuerungen und Fernbedienungen verwendet wird. Bevor Bluetooth auf den Markt kam, war ein Infrarot Modul in vielen Smartphones, PDAs und Notebooks verbaut. Eine Infrarot Datenübertragung (IRDA) wird heutzutage im privaten Bereich kaum noch verwendet.

    IR Frequenzbereich

    Am Spektrum befindet sich Infrarot zwischen Mikrowellen (über 100 THz) und den sichtbaren licht (unter 790 Thz). Grundsätzlich ist Infrarot für das menschliche Auge nicht sichtbar. Da sich das exakte IR-Licht, was für Datenübertragungen verwendet wird, im Bereich des "nahen Infrarots" befindet, ist es für eine Kamera oft sichtbar. Sehr starke Infrarot-LEDs, wie sie z.B. in Überwachungskameras vorkommen, können vom menschlichen Auge oft als ein schwaches rotes licht wahrgenommen werden.

    Werbung:

    Decodieren mittels Arduino

    Der Sensor benötigt neben der Stromversorgung nur eine Leitung für die Datenübertragung. Diese Leitung muss am Arduino auf einen digitalen I/O Pin angeschlossen werden. In unserem Beispielcode wird der PIN 7 verwendet. Der Empfänger gibt standardmäßig ein HIGH aus und wechselt dann beim Empfang von Infrarotsignalen zwischen HIGH und LOW. Der Empfänger demodulieret das Lichtsignal und gibt es dann, so wie es eigentlich vom Sender ausgesendet wird, 1:1 in binär an den Mikrocontroller weiter.

    Die Software

    Grundsätzlich würde man für den Sensor keine Bibliothek benötigen, wenn man z.B. die empfangen Zustände (HIGH und LOW) in ein Array speichert. Dies könnte man dann in hexadezimal ausgeben. Allerdings muss man dann im Code auch eine Funktion schreiben, die den Anfang und das Ende vom Signal erkennt und richtig abspeichert. Da gerade das nicht so einfach, vor allem für Anfänger ist, haben wir uns dann doch für eine Library entschieden, die uns das erspart. Der Beispielcode in Verbindung mit der Library ist nun in der Lage, das Signal zu decodieren und als hexadezimal und binär im Serial Monitor auszugeben. Das nachfolgende Bild zeigt ein Rohsignal, wie es vom IR-Receiver an das Arduino Board weitergegeben wird.

    Werbung:

    Arduino Code
    //More information at: https://www.aeq-web.com
    #include <IRremote.h>
    
    const int RECV_PIN = 7;
    IRrecv irrecv(RECV_PIN);
    decode_results results;
    
    void setup(){
      Serial.begin(9600);
      irrecv.enableIRIn();
    }
    
    void loop(){
      if (irrecv.decode(&results)){
            Serial.print(" HEX: ");
            Serial.print(results.value, HEX);
            Serial.print(" BIN: ");
            Serial.println(results.value, BIN);
            irrecv.resume();
      }
    }


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Arduino LM358 PT1000 Sensor Converter

    Temperatur messen mit PT1000 & Arduino

    • Video
    • DE/EN

    PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?

    Weiterlesen
    Arduino PT100 Temperature Sensor Converter

    PT100 Temperatur messen mit Arduino

    • Video
    • DE/EN

    Der PT100 ist ein sehr präziser industrieller Temperatursensor. In diesem Artikel geht es um den Bau eines Messverstärkers zum Einlesen eines PT100 am Arduino

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden