Bibliotheken installieren

Vor dem Start der Programmierung müssen wir noch zwei Bibliotheken über die Bibliotheksverwaltung installieren.

Library IRremoteESP8266 installieren

Abbildung 1: IRremoteESP8266 Bibliothek

Quelle: BBS2 Wolfsburg


Dazu muss die Bibliotheksverwaltung über "Werkzeuge" -> "Bibliotheken verwalten..." (Ctrl+Shift+I) geöffnet werden. Folgende Bibliotheken müssen installiert werden:

  • "IRremoteESP8266"
  • "IRremote"

Die Bibliotheken sind erst installiert, wenn der grüne Schriftzug "INSTALLED" neben der Versionsnummer erscheint. 

Library IRremote installieren

Abbildung 2: IRremote Bibliothek

Quelle: BBS2 Wolfsburg


Erstes Programm mit dem IR-Empfänger schreiben

(Hinweis: Sollte der ESP 32 noch nicht über den Boardverwalter installiert worden sein, so ist im Anhang eine PDF mit Erklärung dazu.)

Der Quellcode des Programms ist in der Datei "T1_IR_read" angeheftet.

Mit Hilfe dieses ersten Programms können nun die übermittelten Codes bei Betätigung der verschiedenen Tasten im Seriellen Monitor (SM) festgestellt werden.

Im SM können nach einander alle Tasten betätigt werden und dann die jeweiligen Tastencodes angesehen werden. Diese werden mit diesem Programm sowohl Binär als auch Hexadezimal dargestellt. 

Hinweis: Sollte der Serial Monitor nicht funktionieren, überprüfe ,ob unten dieselbe Baudrate wie im Programm eingestellt ist.
              Außerdem stelle den SM auf "kein Zeilenende".

Ein IR-Signal einer Fernbedienung besteht immer aus zwei teilen. Zum einen der Geräte Code und unmittelbar danach der Tastencode.

Hier sind zwei Dinge erkennbar: 

  1. Der Gerätecode ist "FF" das heißt ein Byte voller Einsen. 
  2. Die Fernbedienung sendet konstant Einsen, wenn eine Taste gedrückt gehalten wird.

Abbildung 3: Serial Monitor 1

Quelle: BBS2 Wolfsburg

Abbildung 4: Serial Monitor 2

Quelle: BBS2 Wolfsburg

Mit Hilfe des SM wurden alle Tastencodes ausgelesen und sind hier Dargestellt:

Tastencodes
 CH-   FFA25D   CH   FF629D   CH+   FFE21D 
 PREV   FF22DD   NEXT   FF02FD   PL/PA   FFC23D 
 VOL-   FFE01F   VOL+   FFA857   EQ   FF906F 
 0   FF6897   100+   FF9867   200+   FFB04F 
 1   FF30CF   2   FF18E7   3   FF7A85 
 4   FF10EF   5   FF38C7   6   FF5AA5 
 7   FF42BD   8   FF4AB5   9   FF52AD 


Erläuterung zum Arduino Programm



#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
Einbinden der Bibliotheken



#define RECV_PIN 34

Eine Textersetzung für den Empfangspin festlegen. Erleichtert die Lesbarkeit des Codes.

IRrecv irrecv(RECV_PIN);
decode_results results;

Es muss ein Objekt der Klasse IRrecv erstellt werden. Dies erstellt aus allen Möglichen IR Sensoren einen bestimmten, mit dem kommuniziert wird, das ist besonders wichtig, wenn es mehrere Sensoren gibt. 
Des Weiteren muss die Variable "results" zum Speichern des Ergebnisses nach der Übertragung angelegt werden. 
int IRcode = 0;
Diese Variable bekommt das Ergebnis von "results" und speicher es als Integer ab.

void setup() 
{
  irrecv.enableIRIn();
  Serial.begin(115200);
}

Hier muss das Lesen des IR Sensors aktiviert werden
und die Serielle Übertragung wird gestartet.
void loop() 
{
  if(irrecv.decode(&results))
  {
    IRcode = (results.value);

Hier wird abgefragt, ob ein Code empfangen wurde.

Wenn dies der Fall ist, wird die Variable als Integer gespeichert.

    Serial.print(IRcode, BIN);
    Serial.println("");
    Serial.print(IRcode,HEX);
    Serial.println("");
Hier wird das Ergebnis einmal Binär und einmal Hexadezimal in den Serial Monitor (SM) geschrieben.
    irrecv.resume();
    delay(100);
  }
}
Der Sensor wird wieder zum Empfangen vorbereitet und es wird 100ms gewartet, damit der Code nicht zu schnell durchläuft.




Zuletzt geändert: Montag, 5. Februar 2024, 11:02