{"id":2211,"date":"2025-02-04T08:00:00","date_gmt":"2025-02-04T07:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=2211"},"modified":"2024-12-17T07:47:01","modified_gmt":"2024-12-17T06:47:01","slug":"arduino-infrarot-fernbedienung-5","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2025\/02\/04\/arduino-infrarot-fernbedienung-5\/","title":{"rendered":"Arduino Infrarot Fernbedienung (5)"},"content":{"rendered":"\n<p><br>Die Arduino Infrarot Fernbedienung macht immer noch nicht ganz was sie machen soll und wird nun weiter optimiert und bearbeitet\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><br><strong>Programmierung (Version 5):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;IRremote.h>\nint RECV_PIN = 11;\nIRrecv irrecv(RECV_PIN);\ndecode_results results;\nint led1 = 2; \nint led2 = 3; \n\nvoid setup()\n{\nSerial.begin(9600);\npinMode (2, OUTPUT);\npinMode (3, OUTPUT); \npinMode (11, OUTPUT);\nirrecv.enableIRIn();\n}\n\nvoid loop() {\nif (irrecv.decode(&amp;results))\n{\nSerial.println(results.value, DEC);\nswitch(results.value)\n{\ncase (16) :\ndigitalWrite(led1, HIGH);\ndigitalWrite(led2, LOW);\ndelay(1);\nbreak;\n   \ncase (2064) :\ndigitalWrite(led1, LOW);\ndigitalWrite(led2, HIGH);\ndelay(1); \nbreak;\n\ndefault: delay(1);\n}\nirrecv.resume();\n}\n}<\/code><\/pre>\n\n\n\n<p><br><strong>Programmierung (Version 6):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;IRremote.h>\nint RECV_PIN = 11;\nIRrecv irrecv(RECV_PIN);\ndecode_results results;\nint led1 = 2;                                    \/\/ LED 1 (rote LED) am Arduino-Pin 2\nint led2 = 3;                                    \/\/ LED 2 am Arduino-Pin 2\n\nboolean value = LOW;\nunsigned long previousMillis = 0;\nunsigned long interval = 1000;\nint flag = 0;\n\nvoid setup()\n{\npinMode (2, OUTPUT);\npinMode (3, OUTPUT);\npinMode (11, OUTPUT);\nirrecv.enableIRIn();\n}\n\nvoid loop() {\nif (irrecv.decode(&amp;results))\n{\nSerial.println(results.value, DEC);\n\nswitch(results.value)\n{\ncase (2320) :\nflag = 0;\ndigitalWrite(led1, LOW);\ndigitalWrite(led2, LOW);\ndelay(1);\nbreak;\n\ncase (16) :\nflag = 0;\ndigitalWrite(led1, HIGH);\ndigitalWrite(led2, LOW);\ndelay(1);\nbreak;\n\ncase (2064) :\nflag = 0;\ndigitalWrite(led1, LOW);\ndigitalWrite(led2, HIGH);\ndelay(1); \nbreak;\ncase (1040) :\nflag = 0;\ndigitalWrite(led1, HIGH);\ndigitalWrite(led2, HIGH);\ndelay(1);\nbreak;\n\ncase (3088) :\nflag = 1;\ndigitalWrite(led1, LOW);\ndelay(100);\ndigitalWrite(led1, HIGH);\ndigitalWrite(led2, LOW);\nbreak;\n\ncase (528) :\nflag = 2;\nbreak;\n\ncase (2576) :\nflag = 3;\nbreak;\n\ndefault: delay(1);\n}\n\nirrecv.resume();\n}\n\nif(flag == 1 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, value);\n}\n\nif(flag == 2 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, LOW);\ndigitalWrite(led2, value);\n}\n\nif(flag == 3 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, value);\ndigitalWrite(led2, value);\n}\n}<\/code><\/pre>\n\n\n\n<p><br>Die Erfahrungen aus dem Tastenfeld-Code wurden hier erfolgreich \u00fcbertragen. Es gibt aber noch Details die ich optimieren k\u00f6nnte&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>case (3088) :\nflag = 1;\ndigitalWrite(led1, LOW);\ndelay(100);\ndigitalWrite(led1, HIGH);\ndigitalWrite(led2, LOW);\nbreak;\n\ncase (528) :\nflag = 2;\nbreak;<\/code><\/pre>\n\n\n\n<p>Die Auswahl f\u00fcr Taste 4 und Taste 5 habe ich etwas abgewandelt. Vermutlich braucht es auch gar nicht die &#8222;digitalWrite&#8220; Befehle f\u00fcr Taste 4, denn bei Taste 5 braucht es die ja auch nicht.<\/p>\n\n\n\n<p>Die Wechselwirkung dieser Befehle mit der if-Anweisung ist mir noch nicht ganz klar.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if(flag == 1 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, value);\n}<\/code><\/pre>\n\n\n\n<p><br>Wenn die Variable &#8222;flag&#8220; auf eins steht, wird LED 1 an und aus geschaltet&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if(flag == 2 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, LOW);\ndigitalWrite(led2, value);\n}<\/code><\/pre>\n\n\n\n<p><br>Wenn die flag auf zwei steht, dann wird LED 1 erstmal explizit ausgeschaltet und LED 2 f\u00e4ngt an zu blinken&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if(flag == 3 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, value);\ndigitalWrite(led2, value);\n}<\/code><\/pre>\n\n\n\n<p><br>Bei flag mit Wert 3 blinken beide LEDs gleichzeitig. Die LEDs sollen nun abwechselnd blinken, geht das so?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if(flag == 4 &amp;&amp; millis() - previousMillis > interval)\n{\npreviousMillis = millis();\nvalue = !value;\ndigitalWrite(led1, value);\ndigitalWrite(led2, !value);\n}<\/code><\/pre>\n\n\n\n<p>Antwort: Ja das geht so und damit sollte die Infrarot Fernbedienung auch vorerst erledigt sein.<\/p>\n\n\n\n<p>Dies war jetzt der vorerst letzte Arduino Webartikel. Hinter den Kulissen geht es zwar weiter, doch ab n\u00e4chsten Dienstag werden hier keine neuen Artikel ver\u00f6ffentlicht.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Arduino Infrarot Fernbedienung macht immer noch nicht ganz was sie machen soll und wird nun weiter optimiert und bearbeitet\u2026<\/p>\n","protected":false},"author":1,"featured_media":48,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[22],"class_list":["post-2211","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","tag-arduino-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/2211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=2211"}],"version-history":[{"count":1,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/2211\/revisions"}],"predecessor-version":[{"id":2212,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/2211\/revisions\/2212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/48"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=2211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=2211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=2211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}