{"id":443,"date":"2023-01-13T11:34:27","date_gmt":"2023-01-13T10:34:27","guid":{"rendered":"http:\/\/giveback.danielmenzel.de\/?p=443"},"modified":"2023-03-09T13:02:35","modified_gmt":"2023-03-09T12:02:35","slug":"ir-signal-mit-arduino-senden","status":"publish","type":"post","link":"http:\/\/giveback.danielmenzel.de\/?p=443","title":{"rendered":"IR Signal mit Arduino senden"},"content":{"rendered":"\n<p>Hat man ein RAW-Paket im NEC-Format einer Infrarotfernbedienung ermittelt, kann man es einfach \u00fcber die IRremote-Library, einem Arduino, einer IR-LED und einem Vorwiderstand versenden.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Hier ist die IR-LED an PIN 3 mit einem 220 Ohm Vorwiderstand zur Strombegrenzung angeschlossen. Das lange Beinchen einer LED ist + und kommt an den Vorwiderstand.   Das kurze Beinchen wird an GND angeschlossen. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;IRremote.h&gt;\n\nconst int IR_SEND_PIN = 3; \/\/ LED-Sende-PIN als Konstante\n\nuint32_t reverseBits( uint32_t val )\n{\n  uint32_t ret = 0;\n  for (uint8_t i = 0; i &lt; 32; i++)\n  {\n    ret = (ret &lt;&lt; 1) | ((val &gt;&gt; i) &amp; 1);\n  }\n  return ret;\n}\n\nvoid setup() {\n  Serial.begin(9600);\n  IrSender.begin(IR_SEND_PIN, ENABLE_LED_FEEDBACK); \n}\n\nvoid loop() {\n  unsigned long code = 0xF807FE01; \/\/ RAW-NEC-Code der gesendet werden soll (Hier: \"Brilo Nachtlicht\")\n  IrSender.sendNECMSB(reverseBits(code), 32);\n  Serial.println(\"Sende...\");\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<p><strong>Info zum Vorwiderstand der LED:<\/strong><\/p>\n\n\n\n<p>220 Ohm ist recht konservativ. Es sollte also keine LED durchbrennen. Daf\u00fcr leuchtet die LED nicht so hell (was man im IR-Bereich mit blo\u00dfem Auge sowie nicht sehen kann).  Die 16mA die maximal gezogen werden schaden auch dem GPIO-Ausgang des Arduino nicht.<\/p>\n\n\n\n<p>Ist also die Leistung zu gering, kann man durch Anpassen des Vorwiderstands erreichen, dass die LED heller leuchtet und gr\u00f6\u00dfere Entfernungen \u00fcberbr\u00fccken kann. Die LED-Lebensdauer verk\u00fcrzt sich dadurch und man muss aufpassen den Arduino nicht zu \u00fcberlasten.<\/p>\n\n\n\n<p><strong>Die Rechnung ist:<\/strong><\/p>\n\n\n\n<p>U(Gesamt) = 5V (Spannung die der Arduino i.d.R. abgibt)<\/p>\n\n\n\n<p>U(LED) = 1.5V (Durchlassspannung \/ hier gibt es je nach LED Unterschiede, aber 1,5V sollte grob passen)<\/p>\n\n\n\n<p>Ich nehme hier an, dass nicht mehr als max. 40mA durch die LED durchflie\u00dfen soll. Auch hier gibt es je nach LED Unterschiede. 40mA k\u00f6nnen es ganz grob aber im Pulsbetrieb sein. Dauerhaft ist das eher ein kritischer Wert und die LED w\u00fcrde (je nach Typ\/Datenblatt) schnell durchbrennen bzw. noch wahrscheinlicher nimmt der Arduino (!) Schaden. <\/p>\n\n\n\n<p>ACHTUNG: Es gibt Arduinos mit max. 20mA pro GPIO- oder 40mA pro GPIO-Port! An einem Arduino Pro Mini hat es bei MIR auch schon l\u00e4nger mit 100mA funktioniert. Ein Digispark hat aber nach ein paar Impulsen das Zeitliche gesegnet&#8230;<\/p>\n\n\n\n<p>Die grunds\u00e4tzliche Formel ist ja U = R * I umgestellt also R = U \/ I<\/p>\n\n\n\n<p>Konkret: R = (U(Gesamt) &#8211; U(LED) ) \/ 0,04 A = 3,5 V \/ 0,04A = 87,5 Ohm<\/p>\n\n\n\n<p>Ich nehme nun den n\u00e4chst gr\u00f6\u00dferen (!) Widerstand aus meinem Vorrat und die LED leuchtet nun deutlich heller und \u00fcberbr\u00fcckt eine gr\u00f6\u00dfere Strecke.<\/p>\n\n\n\n<p>Soll die LED noch heller leuchten, muss ein Transistor oder MOSFET vorgeschaltet werden, um den Arduino nicht zu sch\u00e4digen\/zerst\u00f6ren. z.B. einen IRLZ44N (der reicht auch bis 47A mit entsprechender K\u00fchlung \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hat man ein RAW-Paket im NEC-Format einer Infrarotfernbedienung ermittelt, kann man es einfach \u00fcber die IRremote-Library, einem Arduino, einer IR-LED und einem Vorwiderstand versenden.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-443","post","type-post","status-publish","format-standard","hentry","category-arduino"],"_links":{"self":[{"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=\/wp\/v2\/posts\/443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=443"}],"version-history":[{"count":9,"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=\/wp\/v2\/posts\/443\/revisions"}],"predecessor-version":[{"id":457,"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=\/wp\/v2\/posts\/443\/revisions\/457"}],"wp:attachment":[{"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=443"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/giveback.danielmenzel.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}