KY-005 Infrarot Transmitter Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
(Codebeispiel Arduino)
(Codebeispiel Fernbedienung)
Zeile 61: Zeile 61:
 
----
 
----
 
======Codebeispiel Fernbedienung======
 
======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.
+
<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.<br /><br />
 
+
  
 
Für das folgende Codebeispiel wird eine zusätzliche Library benötigt:
 
Für das folgende Codebeispiel wird eine zusätzliche Library benötigt:
Zeile 77: Zeile 76:
 
<u>Code für den Empfänger:</u>
 
<u>Code für den Empfänger:</u>
  
<pre class="brush:cpp">
+
<pre class="brush:cpp">// Arduino-IRremote Iibrary wird hinzugefuegt
 
+
// Arduino-IRremote Iibrary wird hinzugefuegt
+
 
#include <IRremote.h>
 
#include <IRremote.h>
  
Zeile 112: Zeile 109:
 
<u>Code für den Sender:</u>
 
<u>Code für den Sender:</u>
  
<pre class="brush:cpp">int Led = 13;
+
<pre class="brush:cpp">
 +
//Arduino-IRremote Library wird hinzugefügt...
 +
#include <IRremote.h>
  
void setup ()
+
//...und hier initialisiert
 +
IRsend irsend;
 +
 
 +
// Die Einstellungen für den Ausgang werden von der Library übernommen
 +
// Die entsprechenden Ausgänge unterscheiden sich je nach verwendeten Arduino
 +
// Arduino UNO:  Ausgang = D3
 +
// Arduino MEGA: Ausgang = D9
 +
// Eine komplette Auflistung der entsprechenden Ausgänge finden Sie unter
 +
// http://z3t0.github.io/Arduino-IRremote/
 +
void setup()
 
{
 
{
  pinMode (Led, OUTPUT); // Initialisierung Ausgangspin für die LED
 
 
}
 
}
  
void loop () //Hauptprogrammschleife
+
// Hauptprogrammschleife
{
+
void loop() {
  digitalWrite (Led, HIGH); // LED wird eingeschaltet
+
        // Der Sender verschickt in diesem Beispiel das Signal A90 (in hexdezimaler Form) in der Kodierung "RC5"
  delay (4000); // Wartemodus für 4 Sekunden
+
        // Dieses wird dreimal hintereinander gesendet und danach eine Pause für 5 Sekunden eingelegt
  digitalWrite (Led, LOW); // LED wird ausgeschaltet
+
for (int i = 0; i < 3; i++) {
  delay (2000); // Wartemodus für weitere zwei Sekunden in denen die LED dann ausgeschaltet ist
+
irsend.sendRC5(0xA90, 12); // [0xA90] zu versendetes Signal | [12] Bit-Länge des zu versendeten Signals (hex A90=1010 1001 0000)
 +
delay(40);
 +
}
 +
delay(5000); //Zwischen den Sendeimpulsen gibt es eine Pause von 5 Sekunden
 
}
 
}
 
</pre>
 
</pre>
Zeile 130: Zeile 140:
 
'''Beispielprogramm Download:'''
 
'''Beispielprogramm Download:'''
  
'''[[Medium:LedTestArduino_4On_2Off.zip|LedTestArduino_4On_2Off.zip]]'''
+
[[Medium:Arduino_Fernbedienung.zip|Arduino_Fernbedienung.zip]]

Version vom 27. April 2016, 13:06 Uhr

Bild

ky-005.jpg

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

3 G V+R S.png


  • *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:

LedTestArduino_4On_2Off.zip



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:

//Arduino-IRremote Library wird hinzugefügt...
#include <IRremote.h>

//...und hier initialisiert
IRsend irsend;

// Die Einstellungen für den Ausgang werden von der Library übernommen
// Die entsprechenden Ausgänge unterscheiden sich je nach verwendeten Arduino
// Arduino UNO:  Ausgang = D3
// Arduino MEGA: Ausgang = D9
// Eine komplette Auflistung der entsprechenden Ausgänge finden Sie unter
// http://z3t0.github.io/Arduino-IRremote/
void setup()
{
}

// Hauptprogrammschleife
void loop() {
        // Der Sender verschickt in diesem Beispiel das Signal A90 (in hexdezimaler Form) in der Kodierung "RC5"
        // Dieses wird dreimal hintereinander gesendet und danach eine Pause für 5 Sekunden eingelegt
	for (int i = 0; i < 3; i++) {
		irsend.sendRC5(0xA90, 12); // [0xA90] zu versendetes Signal | [12] Bit-Länge des zu versendeten Signals (hex A90=1010 1001 0000)
		delay(40);
	}
	delay(5000); //Zwischen den Sendeimpulsen gibt es eine Pause von 5 Sekunden
}

Beispielprogramm Download:

Arduino_Fernbedienung.zip