{"id":560,"date":"2015-06-15T14:05:25","date_gmt":"2015-06-15T12:05:25","guid":{"rendered":"http:\/\/ignus.co.pl\/blog\/?p=560"},"modified":"2016-02-12T18:57:56","modified_gmt":"2016-02-12T17:57:56","slug":"obsluga-czujnika-podczerwieni-vs1838b-za-pomoca-arduino","status":"publish","type":"post","link":"http:\/\/ignus.co.pl\/blog\/?p=560","title":{"rendered":"Obs\u0142uga czujnika podczerwieni VS1838B za pomoc\u0105 Arduino"},"content":{"rendered":"<p>Poradnik prezentuje w jaki spos\u00f3b pod\u0142\u0105czy\u0107 czujnik podczerwieni do Arduino i odbiera\u0107 transmisje wysy\u0142ane za pomoc\u0105 pilota. W przyk\u0142adzie zostanie wykorzystany uk\u0142ad VS1838B.<\/p>\n<p><!--more--><\/p>\n<h4>Potrzebne cz\u0119\u015bci<\/h4>\n<ul>\n<li>Arduino b\u0105d\u017a jakikolwiek kompatybilny klon, ja u\u017cywam Arduino Uno<\/li>\n<li>Dioda\u00a0VS1838B lub jakakolwiek inna<\/li>\n<li>Pilot do transmisji &#8211; w artykule b\u0119dzie u\u017cywany pilot od samochodowego odtwarzacza mp3, mo\u017ce by\u0107 nawet pilot od telewizora<\/li>\n<li>P\u0142ytka stykowa i 3 sztuki kabelk\u00f3w po\u0142\u0105czeniowych<\/li>\n<\/ul>\n<h4>Pod\u0142\u0105czenie<\/h4>\n<p>Pod\u0142\u0105czamy wed\u0142ug schematu:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2016\/02\/Arduino-IR_bb.jpg\" rel=\"attachment wp-att-654\"><img class=\"alignnone size-medium wp-image-654\" src=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2016\/02\/Arduino-IR_bb-250x114.jpg\" alt=\"Arduino IR_bb\" \/><\/a><\/p>\n<p style=\"text-align: left;\">\n<table id=\"tablepress-3\" class=\"tablepress tablepress-id-3\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">VS1838B PIn<\/th><th class=\"column-2\">VS1838B Nazwa<\/th><th class=\"column-3\">Arduino Pin<\/th><th class=\"column-4\">Arduino Nazwa<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\">1<\/td><td class=\"column-2\">Signal<\/td><td class=\"column-3\">2<\/td><td class=\"column-4\">PD2<\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\">2<\/td><td class=\"column-2\">GND<\/td><td class=\"column-3\">GND<\/td><td class=\"column-4\">GND<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\">3<\/td><td class=\"column-2\">VCC<\/td><td class=\"column-3\">5V<\/td><td class=\"column-4\">5V<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-3 from cache --><\/p>\n<p style=\"text-align: left;\">(Uwaga: na rysunku jest przedstawiona jest uk\u0142ad TSOP312 z innym rozk\u0142adem wyj\u015b\u0107 ni\u017c m\u00f3j odbiornik, najlepiej na wszelki wypadek znale\u017a\u0107 w internecie pinout danego uk\u0142adu)<\/p>\n<h4 style=\"text-align: left;\">Oprogramowanie<\/h4>\n<p>Uruchamiamy Arduino studio i wklepujemy kod:<\/p>\n<pre class=\"lang:default decode:true \">#include &lt;IRremote.h&gt;\r\nint input_pin = 2; \/\/ wpisujemy nazw\u0119 pinu, po kt\u00f3rym nastepuje komunikacja\r\nIRrecv irrecv(input_pin);\r\ndecode_results signals;\r\n\r\nvoid setup()\r\n{\r\n    Serial.begin(9600);\r\n    irrecv.enableIRIn(); \/\/ w\u0142\u0105czenie odbierania danych\r\n}\r\n\r\nvoid loop() {\r\nif (irrecv.decode(&amp;signals)) {\r\n        Serial.println(signals.decode_type); \/\/ typ nadajnika\r\n        Serial.print(F(\"wynik = 0x\"));\r\n        Serial.println(signals.value, HEX); \/\/ wynik w systemie szesnatkowym\r\n        Serial.println(signals.bits); \/\/ ilo\u015b\u0107 przes\u0142anych danych\r\n        irrecv.blink13(true); \/\/ mrugamy diodami w arduino\r\n        \r\n        \/\/ Przyk\u0142adowe por\u00f3wnanie:\r\n        \r\n        if (signals.value == 0x9716BE3F)\r\n        {\r\n          Serial.println(\"Wcisnieto klawisz 1\");\r\n        }\r\n        \r\n        \/\/ ... i tak dalej\r\n        \r\n        irrecv.resume(); \/\/ nas\u0142uchujemy na nast\u0119pne nadanie     \r\n    }\r\n}<\/pre>\n<p>Nast\u0119pnie kompilujemy ca\u0142o\u015b\u0107. Je\u017celi dostaniemy b\u0142\u0105d typu:<\/p>\n<pre class=\"lang:default decode:true\">'TKD2' was not declared in this scope<\/pre>\n<p>to \u015bci\u0105gamy paczk\u0119:<\/p>\n<p><img src=\"http:\/\/tomortk.webd.pl\/blog\/wp-content\/plugins\/wp-downloadmanager\/images\/ext\/unknown.gif\" alt=\"\" title=\"\" class=\"download_icon\" style=\"vertical-align: middle;\" \/>&nbsp;&nbsp;<strong><a href=\"http:\/\/ignus.co.pl\/blog\/?dl_id=17\">IRemote<\/a><\/strong> (25,1 KiB, 3&nbsp;056 hits)<\/p>\n<p>i rozpakowujemy j\u0105 do katalogu libraries, znajduj\u0105cego si\u0119 w g\u0142\u00f3wnym folderze gdzie zainstalowano Arduino Studio.<\/p>\n<p>Nast\u0119pnie kasujemy \/ przenosimy z powy\u017cszego folderu katalog o nazwie &#8222;RobotIRremote&#8221;. Po tej czynno\u015bci kompilacja powinna odby\u0107 si\u0119 bezproblemowo:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_studio.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-567\" src=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_studio-290x300.jpg\" alt=\"arduino_infrared_studio\" width=\"290\" height=\"300\" srcset=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_studio-290x300.jpg 290w, http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_studio.jpg 681w\" sizes=\"(max-width: 290px) 100vw, 290px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Po poprawnej kompilacji i wgraniu kodu do Arduino przechodzimy do &#8222;Szeregowego monitora&#8221; (Narz\u0119dzia -&gt; Szeregowy monitor). Je\u017celi wszystko jest dobrze pod\u0142\u0105czone, po skierowaniu pilota na diod\u0119 i naci\u015bni\u0119ciu jakiekolwiek przycisku, powinny pojawia\u0107 si\u0119 odebrane warto\u015bci:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_serial.jpg\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-569\" src=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_serial-300x231.jpg\" alt=\"arduino_infrared_serial\" width=\"300\" height=\"231\" srcset=\"http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_serial-300x231.jpg 300w, http:\/\/ignus.co.pl\/blog\/wp-content\/uploads\/2015\/06\/arduino_infrared_serial.jpg 627w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Kod jest odpowiednio skomentowany, wi\u0119c nie b\u0119dzie problemu z dalsz\u0105 rozbudow\u0105 wedle w\u0142asnych upodoba\u0144.<\/p>\n","protected":false},"excerpt":{"rendered":"Poradnik prezentuje w jaki spos\u00f3b pod\u0142\u0105czy\u0107 czujnik podczerwieni do Arduino i odbiera\u0107 transmisje wysy\u0142ane za pomoc\u0105 pilota. W przyk\u0142adzie zostanie wykorzystany uk\u0142ad VS1838B.","protected":false},"author":1,"featured_media":561,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,10],"tags":[96,98,99,97],"_links":{"self":[{"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/posts\/560"}],"collection":[{"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=560"}],"version-history":[{"count":5,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions"}],"predecessor-version":[{"id":655,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions\/655"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=\/wp\/v2\/media\/561"}],"wp:attachment":[{"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ignus.co.pl\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}