IR-Empfänger
Seite 1 von 1
IR-Empfänger
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:
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.
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
Seite 1 von 1
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten
|
|