Hallo ich habe an meinem Arduino einen IR-Empfänger angeschlossen. Mit diesem Code geht die interne LED auch an. if (irrecv.decode(&results)) { Serial.println(results.value, DEC); if (results.value == 58016) //Bei "58016" {digitalWrite (13, HIGH);} //soll die LED an gehen. irrecv.resume(); } Ich möchte aber die LED nur solange anlassen, wie ich auf die Taste drücke. Leider wird der Wert "58016" nur einmal gesendet. Dann kommen nur noch "Füllbits ?" . Wie kann man das Problem möglichst elegant lösen, damit die LED beim loslassen der Taste auch wieder ausgeht? Ich verstehe auch nicht, was "irrecv.resume();" genau bewirkt. Das Einlesen und dekodieren passiert ja schon in der 1. Zeile. Ich wäre für Hinweise dankbar.
Klaus M. schrieb: > Leider wird der Wert "58016" nur einmal gesendet. Dann kommen nur noch > "Füllbits ?" . Damit wird unterscheiden, ob man eine Taste ganz oft hintereinander drückt oder ob man sie gedrückt hält. > Wie kann man das Problem möglichst elegant lösen, damit > die LED beim loslassen der Taste auch wieder ausgeht? Verstehe ich nicht ganz. Du merkst doch, wenn nichts mehr ankommt.
Md M. schrieb: > Verstehe ich nicht ganz. Du merkst doch, wenn nichts mehr ankommt. Ja, man sieht es ja im ser. Monitor. Wenn aber nichts mehr ankommt kann man ja auch nichts dekodieren ((irrecv.decode(&results)). Der Einschaltcode wird eben nur einmal gesendet und dann kommt immer das gleiche. Ich stelle mir das so vor: Wenn 58016 empfangen wird, schalte die LED ein bis nichts mehr empfangen wird. Daran scheitere ich momentan. Dies soll auch nur ein Test sein, da später mehrere Ausgänge auf die gleiche Weise geschaltet werden sollen. Ich hoffe, ich drücke mich einigermaßen verständlich aus.
Das hier vielleicht? https://github.com/z3t0/Arduino-IRremote/wiki/Receiving-with-the-IRremote-library
Vielen Dank, genau das habe ich gesucht (Performing one action when a button is pressed an another when the button is released) Auf euch kann man sich eben verlassen :) Vielen Dank noch mal.
Von dem Code der IR-Fernbedienung hast du keine Ahnung, von dem Code zur Dekodierung hast du keine Ahnung, und genannt hast du uns beide nicht. Sollte ein Glücksfall sein, wenn du jetzt weiterkommst. Aber im Märchen ist das Glück oft auf Seiten der Unbedarften... ;-)
Dafür ist Arduino ja gemacht, und für Leute die nicht an einem Nachmittag einen TCPip Stack und eine komplette GLCD Library fehlerfrei in Assembler schreiben können ;-) mfg Michael
@ Michael_O Danke, du sprichst mir aus dem Herzen. @Jakob Ja, es ist wie im Märchen. Dank dem Hinweis von Md Ma habe ich es hinbekommen. Dein Beitrag hat leider nicht zur Problemlösung beigetragen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.