Arduino - Kein auslesen der Daten beim Ir-Empfänger?
Ich haben ein kleines Problem beim Auslesen des Ir-Empfänges am Arduino. Ich habe nähmlich als nächstes Projekt vor, den Arduino über eine Infrarotfernbedinung ferzusteuern. Um dies jedoch machen zu können, muss ich natürlich erst einmal die Werte auslesen, welche von der Fernbedinung kommen. Das Problem jedoch dabei ist, dass mir im Seriellen Monitor bei der Ausgabe der Wert 0 angezeigt wird (bei jeder Taste).
Ich sehe jedoch dass der Ir-Empfänger reagiert und verarbeitet. Zudem sind sowohl Hardware als auch Software richtig:
#include <IRremote.h>
int RECV_PIN =7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode()) {
Serial.println(results.value, HEX);
irrecv.resume();
}
}
Das seltsame begann schon für mich, als ich in dem if-statement das &results entfernen musstem weil der Serielle Monitor mir sonst folgendes anzeigte:
Aber noch einmal zurück zu auslesen. An der Hardware kann es auch nicht liegen. Ich hatte sowahl den Arduino, als auch den Infrarot-Sensor ausgetauscht. Ich habe auch schon versucht den Ir-Empfänger am AnalogPin anzuschließen, jedoch mit dem selben resultat. Auch die Fernbedinungen untereinander habe ich ausgetauscht.
Würde micht über Antworten freuen
Ps. Ich nutzte einen ArduinoUno R3
1 Antwort
Du benutzt offenbar eine alte Anleitung. Die decode()-Funktion hat in der Tat keinen Parameter mehr und entsprechend wird auch nichts in der Variable result hinterlegt, sodass dieser Aufruf nutzlos ist.
Serial.println(results.value, HEX);
Ersetze ihn bspw. durch diesen Befehl:
irrecv.printIRResultShort(&Serial);
Als ich das letzte Mal mit der IRRemote-Bibliothek gearbeitet habe (vielleicht ein gutes Jahr her), hat sie noch genauso funktioniert, wie es in deinem Skript war. Deswegen hatte mich stutzig gemacht, warum dein Skript nicht mehr funktioniert. Also habe ich mir die neueste Version der Bibliothek heruntergeladen, in die Beispielskripte geschaut und gesehen, dass sie jetzt anders angesteuert wird. Da ich also die neue Version genauso wenig kenne wie du, kann ich dir keine konkreten Hinweise geben. Schau doch einfach selbst mal in die Beispielskripte, ob sich noch irgendetwas verändert hat.
Danke erst einmal für deine Antwort. Jetzt funktioniert es auch. Ich habe nur noch eine Frage. Du hast mich ja drauf hingewiesen, dass ich einen etwas veralteten Code genutz habe. Ab wie verändert es sich weiterhin, wenn ich nun den Code ausgelesen habe und anfangen möchte, die Ergebnisse einzuprogrammieren. Muss ich dabei auch noch etwas beachten, was sich geändert hat, oder ist dabei noch alles gleich geblieben?