IR-Empfänger

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten

IR-Empfänger

Beitrag von Valentin Killer am Do März 03, 2016 8:22 pm

Aufgabenstellung:
Programmierung eines IR-Empfängers der die Signale des IR-Senders empfangen und am seriellen Monitor anzeigen kann.

Schaltung:

Der IR-Empfänger wird mit dem Datenpin auf den Pin 9 gelegt.
+ und - des Senders werden an +5V bzw. GND gelegt.



Programmierung:

Beim Empfänger wurde ebenso wie beim Sender die IRLib Libary verwendet.

Code:

Code:
#include <IRremote.h>

int empf = 11;                     // Pin an dem die Steuerleitung des Empfängers angeschlossen ist

IRrecv irrecv(empf);             // definiert den Empfänger (Libary Funktion)

decode_results results;         // dekodiert die empfangengen Signale und speichert sie in einer Variable (Libary Funktion)

void setup()
{
Serial.begin(9600);           // initialisiert den seriellen Monitor
irrecv.enableIRIn();          // startet Empfang (Libary Funktion)
}

void loop() {

  // schreibt den, zum in HEX empfangegen Wert, passenden Buchstaben in den seriellen Monitor

if(irrecv.decode(&results))
{
  if (results.value == 0x910) { Serial.print("0");}irrecv.resume();
  if (results.value == 0x10)  { Serial.print("1");}irrecv.resume();
  if (results.value == 0x810) { Serial.print("2");}irrecv.resume();
  if (results.value == 0x410) { Serial.print("3");}irrecv.resume();
  if (results.value == 0xC10) { Serial.print("4");}irrecv.resume();
  if (results.value == 0x210) { Serial.print("5");}irrecv.resume();
  if (results.value == 0xA10) { Serial.print("6");}irrecv.resume();
  if (results.value == 0x610) { Serial.print("7");}irrecv.resume();
  if (results.value == 0xE10) { Serial.print("8");}irrecv.resume();
  if (results.value == 0x110) { Serial.print("9");}irrecv.resume();
  if (results.value == 0x120) { Serial.print("a");}irrecv.resume();
  if (results.value == 0x220) { Serial.print("b");}irrecv.resume();
  if (results.value == 0x320) { Serial.print("c");}irrecv.resume();
  if (results.value == 0x420) { Serial.print("d");}irrecv.resume();
  if (results.value == 0x520) { Serial.print("e");}irrecv.resume();
  if (results.value == 0x620) { Serial.print("f");}irrecv.resume();
  if (results.value == 0x720) { Serial.print("g");}irrecv.resume();
  if (results.value == 0x820) { Serial.print("h");}irrecv.resume();
  if (results.value == 0x920) { Serial.print("i");}irrecv.resume();
  if (results.value == 0x130) { Serial.print("j");}irrecv.resume();
  if (results.value == 0x230) { Serial.print("k");}irrecv.resume();
  if (results.value == 0x330) { Serial.print("l");}irrecv.resume();
  if (results.value == 0x430) { Serial.print("m");}irrecv.resume();
  if (results.value == 0x530) { Serial.print("n");}irrecv.resume();
  if (results.value == 0x630) { Serial.print("o");}irrecv.resume();
  if (results.value == 0x730) { Serial.print("p");}irrecv.resume();
  if (results.value == 0x830) { Serial.print("q");}irrecv.resume();
  if (results.value == 0x930) { Serial.print("r");}irrecv.resume();
  if (results.value == 0x140) { Serial.print("s");}irrecv.resume();
  if (results.value == 0x240) { Serial.print("t");}irrecv.resume();
  if (results.value == 0x340) { Serial.print("u");}irrecv.resume();
  if (results.value == 0x440) { Serial.print("v");}irrecv.resume();
  if (results.value == 0x540) { Serial.print("w");}irrecv.resume();
  if (results.value == 0x640) { Serial.print("x");}irrecv.resume();
  if (results.value == 0x740) { Serial.print("y");}irrecv.resume();
  if (results.value == 0x840) { Serial.print("z");}irrecv.resume();
  if (results.value == 0x940) { Serial.print(" ");}irrecv.resume();
  if (results.value == 0x250) { Serial.println("");}irrecv.resume();
  if (results.value == 0x350) { Serial.print(",");}irrecv.resume();
  if (results.value == 0x450) { Serial.print(".");}irrecv.resume();
  if (results.value == 0x550) { Serial.print(":");}irrecv.resume();
  if (results.value == 0x650) { Serial.print("!");}irrecv.resume();
  if (results.value == 0x750) { Serial.print("^");}irrecv.resume();
  if (results.value == 0x950) { Serial.print("$");}irrecv.resume();
  if (results.value == 0x160) { Serial.print("%");}irrecv.resume();
  if (results.value == 0x260) { Serial.print("&");}irrecv.resume();
  if (results.value == 0x360) { Serial.print("/");}irrecv.resume();
  if (results.value == 0x460) { Serial.print("(");}irrecv.resume();
  if (results.value == 0x560) { Serial.print(")");}irrecv.resume();
  if (results.value == 0x660) { Serial.print("=");}irrecv.resume();
  if (results.value == 0x760) { Serial.print("?");}irrecv.resume();
  if (results.value == 0x860) { Serial.print("#");}irrecv.resume();
  if (results.value == 0x960) { Serial.print(";");}irrecv.resume();
}
}

Anmerkungen:

Grundsätzlich sind Zahlen von 1 bis 9, klein Buchstaben, und die gängisten Sonderzeichen empfangbar.
Jedoch wird mit 0x940 (am dazupassenden Sender eine "Leertaste") ein Leerzeichen und mit
0x250 (am dazupassenden Sender ein "+") eine neue Zeile begonnen.

Um  weitere Zeichen hinzuzufügen müssen nur die bestehenden Zeilen kopiert, neue HEX- Werte vergeben, und neue "Anzeigezeichen" eingetragen werden.

Valentin Killer
Admin

Anzahl der Beiträge : 2
Anmeldedatum : 23.02.16
Ort : 3AHET

Nach oben Nach unten

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben

- Ähnliche Themen

 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten