Hallo,
ich bin ziemlich neu hier in dem Thema und scheitere an einer (vermutlichen/hoffentlichen) Kleinigkeit.
Ich habe diese IR Receiver/Sender Kombination verbaut http://www.ebay.de/itm/291011302050?_trksid=p2060778.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT und nutze folgenden Code:
#include <IRremote.h>
#define PIN_IR 3
#define PIN_DETECT 11
#define PIN_STATUS 13
IRsend irsend;
void setup()
{
pinMode(PIN_DETECT, INPUT);
pinMode(PIN_STATUS, OUTPUT);
irsend.enableIROut(38);
irsend.mark(0);
Serial.begin(9600);
}
void loop() {
digitalWrite(PIN_STATUS, !digitalRead(PIN_DETECT));
int reader = digitalRead(PIN_DETECT);
Serial.println(reader);
}
Das funktioniert allerdings nur bedingt. Zwar bekomme ich 1 und 0 auf dem Serial Monitor angezeigt, aber nur wie folgt:
Strahl nicht unterbrochen (liegt unbewegt):
1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1, etc.
Strahl wird unterbrochen:
1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1 etc.
Die Kontroll LED am Sender ist dauerhaft an, die am Receiver blinkt schwach und ist nur kurz nach der Unterbrechung vollständig rot. Benutzt man aber das Beispiel aus der IR Library zum Empfangen von HEX Codes funktioniert alles reibungslos.
Es liegt also vermutlich am Senden.
Wie gesagt ich kenne mich wenig bis gar nicht aus, vermute aber, dass der Sender bereits 38KHz moduliert? Ich das also mit dem obigen Code doppelt mache? Nur den PIN auf HIGH zu stellen funktioniert nicht
Bewegt man den Empfänger ein wenig hin und her bleibt er übrigens auch rot.
Kann jemand den Code so verändern, dass das "Richtige" gesendet wird?
Vielen DanK!!