Einmaleinsreihen - Anzeige mit Keyes-Fernbedienung

Lesezeit: 5 Minuten
Seite als PDF
Navigation

Das Programm soll zu jeder Zahlentaste der Fernbedienung die dazugehörige Einmaleinsreihe anzeigen.

So soll es aussehen:

Einmaleinsreihen - Anzeige im Serieller Monitor

Benötigte Bauteile:

  • Infrarotempfänger
  • Keyes Fernbedienung
  • Leitungsdrähte

Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)

Achte auf die Pinbelegung des Infrarotempfängers.

Achte darauf, dass die Batterie richtig eingelegt wurde. Der Minus-Pol liegt oben.

Benötigte Bibliothek:
Sketch → Bibliothek einbinden → Bibliotheken verwalten

Suche die Bibliothek IRremote ...

… kli­cke auf Instal­lie­ren.

Die Anleitung bezieht sich auf die Version 3.x der Bibliothek IRremote.

Anpassung von der Version 2.7x zu 3.x (externer Link, abgerufen am 12.3.2021)

Umwandlung von Zahlensystem (externer Link, abgerufen am 12.3.2021)

Die Fern­be­die­nung sen­det beim Druck auf die Tas­ten einen Zah­len­code.

Die Tastencodes beziehen sich auf die Keyes-Fernbedienung und die Opensmart-Fernbedienung.

Tastencodes Keyes-Fernbedienung (hexadezimal und dezimal)

obenlinksrechtsuntenOK1234
0x46
70
0x44
68
0x43
67
0x15
21
0x40
64
0x16
22
0x19
25
0xD
13
0xC
12
56789+0#
0x18
24
0x5E
94
0x8
8
0x1C
28
0x5A
90
0x42
66
0x52
82
0x4A
74

Tastencodes Opensmart-Fernbedienung (hexadezimal und dezimal)

Ein/ausMenuTest+| ◄ ◄►►|0-
0x45
69
0x47
71
0x44
68
0x40
64
0x40
64
0x7
7
0x15
21
0x9
9
0x16
22
0x19
25
C123456789
0xD
13
0xC
12
0x18
24
0x5E
94
0x8
8
0x1C
28
0x5A
90
0x42
66
0x52
82
0x4A
74

Die Tas­ten­codes kannst du mit fol­gen­dem Pro­gramm her­aus­fin­den. Sie wer­den im Seri­el­len Moni­tor ange­zeigt.

# include <IRremote.h>

int EmpfaengerPin = 11;

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

  // Empfänger starten
  IrReceiver.begin(EmpfaengerPin);
}

void loop()
{
  // Daten lesen
  if (IrReceiver.decode())
  {
    /*
      printIRResultMinimal zeigt die verwendete Taste
      P = Protokoll
      C = Kommando in Hex
    */

    Serial.print(F("P = Protokoll C = Taste hexadezimal: "));
    IrReceiver.printIRResultMinimal(&Serial);
    Serial.print(F(" Dezimal: "));
    Serial.println(IrReceiver.decodedIRData.command);

    delay(200);

    // nächsten Wert lesen
    IrReceiver.resume();
  }
}

Die rot umrandeten Werte werden von der Keyes-Fernbedienung ausgegeben, die blau umrandeten stammen von einer TV-Fernbedienung.

Binde die benötigte Bibliothek ein und definiere den Pin des Empfängers.

# include <IRremote.h>

int EmpfaengerPin = 11;

Im setup-Teil wird der Serielle Monitor gestartet und die Fernbedienung initialisiert.

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

  // Empfänger starten
  IrReceiver.begin(EmpfaengerPin);
}

Definiere eine ➨Methode ReiheAnzeigen, der als Variable Zahl übergeben wird:

void ReiheAnzeigen(int Zahl)
{
  // \t → Tabulator
  Serial.print("Einmaleins der\t");
  Serial.println(Zahl);
  for (int i = 1; i <= 10; i ++)
  {
    Serial.print(i);
    Serial.print(" * ");
    Serial.print(Zahl);
    Serial.print(" = ");
    Serial.print(i * Zahl);
    Serial.println();
  }
  Serial.println("-----------------------");
}

Im loop-Teil musst du jede Taste mit if einzeln abfragen und die Methode ReiheAnzeigen aufrufen:

void loop()
{
  // Daten lesen
  if (IrReceiver.decode())
  {
    /*
      printIRResultMinimal zeigt die verwendete Taste
      P = Protokoll
      C = Kommando in Hex
    */
    // auskommentiert lassen wenn die Tastencodes bekannt sind
    /*
      Serial.print(F("P = Protokoll C = Taste hexadezimal: "));
      IrReceiver.printIRResultMinimal(&Serial);
      Serial.print(F(" Dezimal: "));
      Serial.println(IrReceiver.decodedIRData.command);
    */
    delay(100);

    // nächsten Wert lesen
    IrReceiver.resume();

    // je nach Wert Zahl an die Methode ReiheAnzeigen() übergeben
    switch (IrReceiver.decodedIRData.command)
    {
      // Taste 1
      case 0x16:
        ReiheAnzeigen(1);
        break;

      // Taste 2
      case 0x19:
        ReiheAnzeigen(2);
        break;

      // Taste 3
      case 0xD:
        ReiheAnzeigen(3);
        break;

      // Taste 4
      case 0xC:
        ReiheAnzeigen(4);
        break;

      // Taste 5
      case 0x18:
        ReiheAnzeigen(5);
        break;

      // Taste 6
      case 0x5E:
        ReiheAnzeigen(6);
        break;

      // Taste 7
      case 0x8:
        ReiheAnzeigen(7);
        break;

      // Taste 8
      case 0x1C:
        ReiheAnzeigen(8);
        break;

      // Taste 9
      case 0x5A:
        ReiheAnzeigen(6);
        break;

      default:
        break;
    }
  }
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Verwandte Aufgaben:


Letzte Aktualisierung: 11. Apr 2021 @ 18:36