KY-005 Infrarot Transmitter Modul: Unterschied zwischen den Versionen
Aus Linkerkit.de
(→Pin-Belegung) |
(→Codebeispiel Arduino) |
||
Zeile 36: | Zeile 36: | ||
==Codebeispiel Arduino== | ==Codebeispiel Arduino== | ||
+ | ======Codebeispiel ON/OFF====== | ||
Diese Codebeispiel zeigt auf, wie eine LED mittels eines definierbaren Ausgangspins abwechselnd für Vier Sekunden ein- und danach zwei Sekunden ausgeschaltet werden kann. | Diese Codebeispiel zeigt auf, wie eine LED mittels eines definierbaren Ausgangspins abwechselnd für Vier Sekunden ein- und danach zwei Sekunden ausgeschaltet werden kann. | ||
+ | |||
+ | <pre class="brush:cpp">int Led = 13; | ||
+ | |||
+ | void setup () | ||
+ | { | ||
+ | pinMode (Led, OUTPUT); // Initialisierung Ausgangspin für die LED | ||
+ | } | ||
+ | |||
+ | void loop () //Hauptprogrammschleife | ||
+ | { | ||
+ | digitalWrite (Led, HIGH); // LED wird eingeschaltet | ||
+ | delay (4000); // Wartemodus für 4 Sekunden | ||
+ | digitalWrite (Led, LOW); // LED wird ausgeschaltet | ||
+ | delay (2000); // Wartemodus für weitere zwei Sekunden in denen die LED dann ausgeschaltet ist | ||
+ | } | ||
+ | </pre> | ||
+ | '''Beispielprogramm Download:''' | ||
+ | |||
+ | '''[[Medium:LedTestArduino_4On_2Off.zip|LedTestArduino_4On_2Off.zip]]''' | ||
+ | |||
+ | |||
+ | ---- | ||
+ | ======Codebeispiel Fernbedienung====== | ||
+ | <br />Mithilfe der beiden Sensormodule KY-005 und KY-022 lässt sich ein Infrarot-Fernbedienung + Infrarot Receiver System aufbauen. Hierzu werden neben den zwei Modulen auch zwei einzelne Arduinos benötigt. Der eine fungiert hierbei dann als Sender und der andere empfängt die Signale und gibt diese dann in der seriellen Konsole aus. | ||
+ | |||
+ | |||
+ | Für das folgende Codebeispiel wird eine zusätzliche Library benötigt: | ||
+ | |||
+ | - [Arduino-IRremote] von [http://z3t0.github.io/Arduino-IRremote/ Ken Shirriff] | veröffentlicht unter LGPL | ||
+ | |||
+ | Die Library ist im Paket enthalten und muss vor dem Start der Arduino IDE in den "library"-Ordner kopiert werden.<br /><br />Diesen finden Sie standardmäßig unter dem folgenden Pfad Ihrer Windows-Installation: | ||
+ | |||
+ | C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries | ||
+ | |||
+ | <br />Bei Infrarot-Sendesystemen, gibt es verschiedene Protokolle, in denen die Daten versendet werden können. In dem folgenden Beispiel wird für das versenden das RC5 Protokoll verwendet - die verwendete Library "Arduino-IRremote" kümmert sich eigenständig um die Konvertierung in die richtige Datenfolge. Es gibt innerhalb der Library jedoch auch andere Protokolle/Kodierungen - diese sind in der Dokumentation/Code der Library gekennzeichnet. | ||
+ | |||
+ | |||
+ | <u>Code für den Empfänger:</u> | ||
+ | |||
+ | <pre class="brush:cpp"> | ||
+ | |||
+ | // Arduino-IRremote Iibrary wird hinzugefuegt | ||
+ | #include <IRremote.h> | ||
+ | |||
+ | // Hier kann der entsprechende Eingangspin für den Signalausgang | ||
+ | // des KY-022 deklariert werden | ||
+ | int RECV_PIN = 11; | ||
+ | |||
+ | // Arduino-IRremote Library wird initialisiert | ||
+ | IRrecv irrecv(RECV_PIN); | ||
+ | decode_results results; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(9600); | ||
+ | irrecv.enableIRIn(); // Infrarot-Receiver wird gestartet | ||
+ | } | ||
+ | |||
+ | // Hauptprogrammschleife | ||
+ | void loop() { | ||
+ | |||
+ | // Es wird geprüft ob am Recveiver ein Signal eingegangen ist | ||
+ | if (irrecv.decode(&results)) { | ||
+ | //Bei Signaleingang wird das empfangene und dekodierte Signal in der serriellen Konsole ausgegeben | ||
+ | Serial.println(results.value, HEX); | ||
+ | irrecv.resume(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
+ | <u>Code für den Sender:</u> | ||
<pre class="brush:cpp">int Led = 13; | <pre class="brush:cpp">int Led = 13; |
Version vom 27. April 2016, 12:53 Uhr
Inhaltsverzeichnis
Bild
Technische Daten / Kurzbeschreibung
Eine Leuchtdiode, die im infraroten Bereich ausstrahlt. Je nach Eingangsspannung, werden Vorwiderstände benötigt
Vf= 1,1V
If= 20mA
emittierende Wellenlänge: 940nm (nicht sichtbares Licht)
Vorwiderstände:
Rf (3,3V) = 120Ω
[z.B. beim Einsatz mit ARM CPU-Kern basierten Mikrokontrollern wie Raspberry-Pi]
Rf (5V) = 220Ω
[z.B. beim Einsatz mit Atmel Atmega basierten Mikrokontrollern wie Arduino]
Pin-Belegung
- *Auf der Platine gibt es die Möglichkeit den jeweils benötigten Widerstand direkt aufzulöten. In dem Falle kann dann der mittlere Pin genutz werden, der dann den Widerstand beihnaltet.
Codebeispiel Arduino
Codebeispiel ON/OFF
Diese Codebeispiel zeigt auf, wie eine LED mittels eines definierbaren Ausgangspins abwechselnd für Vier Sekunden ein- und danach zwei Sekunden ausgeschaltet werden kann.
int Led = 13; void setup () { pinMode (Led, OUTPUT); // Initialisierung Ausgangspin für die LED } void loop () //Hauptprogrammschleife { digitalWrite (Led, HIGH); // LED wird eingeschaltet delay (4000); // Wartemodus für 4 Sekunden digitalWrite (Led, LOW); // LED wird ausgeschaltet delay (2000); // Wartemodus für weitere zwei Sekunden in denen die LED dann ausgeschaltet ist }
Beispielprogramm Download:
Codebeispiel Fernbedienung
Mithilfe der beiden Sensormodule KY-005 und KY-022 lässt sich ein Infrarot-Fernbedienung + Infrarot Receiver System aufbauen. Hierzu werden neben den zwei Modulen auch zwei einzelne Arduinos benötigt. Der eine fungiert hierbei dann als Sender und der andere empfängt die Signale und gibt diese dann in der seriellen Konsole aus.
Für das folgende Codebeispiel wird eine zusätzliche Library benötigt:
- [Arduino-IRremote] von Ken Shirriff | veröffentlicht unter LGPL
Die Library ist im Paket enthalten und muss vor dem Start der Arduino IDE in den "library"-Ordner kopiert werden.
Diesen finden Sie standardmäßig unter dem folgenden Pfad Ihrer Windows-Installation:
C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries
Bei Infrarot-Sendesystemen, gibt es verschiedene Protokolle, in denen die Daten versendet werden können. In dem folgenden Beispiel wird für das versenden das RC5 Protokoll verwendet - die verwendete Library "Arduino-IRremote" kümmert sich eigenständig um die Konvertierung in die richtige Datenfolge. Es gibt innerhalb der Library jedoch auch andere Protokolle/Kodierungen - diese sind in der Dokumentation/Code der Library gekennzeichnet.
Code für den Empfänger:
// Arduino-IRremote Iibrary wird hinzugefuegt #include <IRremote.h> // Hier kann der entsprechende Eingangspin für den Signalausgang // des KY-022 deklariert werden int RECV_PIN = 11; // Arduino-IRremote Library wird initialisiert IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Infrarot-Receiver wird gestartet } // Hauptprogrammschleife void loop() { // Es wird geprüft ob am Recveiver ein Signal eingegangen ist if (irrecv.decode(&results)) { //Bei Signaleingang wird das empfangene und dekodierte Signal in der serriellen Konsole ausgegeben Serial.println(results.value, HEX); irrecv.resume(); } }
Code für den Sender:
int Led = 13; void setup () { pinMode (Led, OUTPUT); // Initialisierung Ausgangspin für die LED } void loop () //Hauptprogrammschleife { digitalWrite (Led, HIGH); // LED wird eingeschaltet delay (4000); // Wartemodus für 4 Sekunden digitalWrite (Led, LOW); // LED wird ausgeschaltet delay (2000); // Wartemodus für weitere zwei Sekunden in denen die LED dann ausgeschaltet ist }
Beispielprogramm Download: