{"id":1972,"date":"2020-12-20T14:11:40","date_gmt":"2020-12-20T11:11:40","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=1972"},"modified":"2020-12-20T14:11:40","modified_gmt":"2020-12-20T11:11:40","slug":"kutuphanesiz-ir-uzaktan-kumanda-kodlarinin-cozulmesi","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2020\/12\/20\/kutuphanesiz-ir-uzaktan-kumanda-kodlarinin-cozulmesi\/","title":{"rendered":"K\u00fct\u00fcphanesiz IR uzaktan kumanda kodlar\u0131n\u0131n \u00e7\u00f6z\u00fclmesi"},"content":{"rendered":"<p>Bu yaz\u0131mda, IR uzaktan kumanda kodlar\u0131n\u0131 kolay bir \u015fekilde nas\u0131l bulabilece\u011finizi anlatt\u0131m. Arduino kullananlar bilirler. IR k\u00fct\u00fcphanesi vard\u0131r ve o program\u0131 kulland\u0131klar\u0131nda, kumanda tu\u015funun kodunu seri monit\u00f6rde g\u00f6r\u00fcrler.<br \/>\n<span style=\"color: #ff6600;\">Zaten kolayca bunu yapabiliyorken bu yaz\u0131n\u0131n anlam\u0131 ne diyebilirsiniz.<\/span><br \/>\nAnlatt\u0131\u011f\u0131m y\u00f6ntem ile k\u00fct\u00fcphaneye ihtiyac\u0131n\u0131z olmad\u0131\u011f\u0131 gibi, k\u00fct\u00fcphanelerde bulunan hatalardan dolay\u0131 yanl\u0131\u015f tu\u015f kodu geldi\u011finde, bu kodu do\u011fru zannedip, gelen kodu o kumandan\u0131n ger\u00e7ekten kontrol etti\u011fi cihazda denenmesi durumunda hata verece\u011fidir. \u00a0Ayr\u0131ca herkes kendi i\u015flemcisinde veya programlama dilinde IR k\u00fct\u00fcphanesine sahip olamayacakt\u0131r. Fakat anlatt\u0131\u011f\u0131m yol ile kendi i\u015flemcisine ya da kendi programlama diline kolayl\u0131kla uyarlayabilecektir.<\/p>\n<p>K\u00fct\u00fcphanelerin tamam\u0131 b\u00f6yle hatal\u0131 diyemem Fakat elimdeki k\u00fct\u00fcphane seri monit\u00f6rde g\u00f6sterirken veya yakalarken hata yap\u0131yor. Bu hata sizin arduino projelerinizi etkilemiyor. \u00c7\u00fcnk\u00fc algoritma, devaml\u0131 ayn\u0131 yerde ayn\u0131 hatay\u0131 yapt\u0131\u011f\u0131ndan buldu\u011fu kod hep ayn\u0131 oluyor. Bu \u015fekilde ise siz gelen kodu kullanmak istedi\u011finizde sorun yaratmadan tekrar, tekrar ayn\u0131 kodu bulaca\u011f\u0131ndan sizin projenizi etkilemeyecek.<br \/>\nBunun yan\u0131 s\u0131ra ald\u0131\u011f\u0131n\u0131z kodu protokol\u00fcne uygun kumandadan gelmi\u015f gibi sim\u00fcle edip ger\u00e7ek cihaz\u0131 \u00e7al\u0131\u015ft\u0131rmak isteseniz, Gelen kod yanl\u0131\u015f oldu\u011fundan dolay\u0131 kontrol edemeyeceksiniz.<\/p>\n<p><strong>K\u00fct\u00fcphanesiz \u00e7al\u0131\u015fmada ba\u015fl\u0131ca 2 y\u00f6ntem izlenebilir.<\/strong><br \/>\nKolay olan\u0131 ki benim kulland\u0131\u011f\u0131m bu. PULSIN komutu. Bu komut ile isterseniz HIGH seviyesinin ne kadar s\u00fcre devam etti\u011fini, isterseniz LOW seviyesinin ne kadar s\u00fcre devam etti\u011fini, mikro saniye olarak \u00f6\u011frenebilirsiniz.<br \/>\nZor olan\u0131 ise timer kesmesini kullanarak protokole uygun zaman aral\u0131klar\u0131nda sinyalin durumuna bakmak.<br \/>\nHer iki yoldan farkl\u0131 \u00e7\u00f6z\u00fcmler de bulunabilir. Fakat ben programlar\u0131mda PULSEIN komutunu tercih ettim.<\/p>\n<p><b>Pulsein komutu arduinoda kullan\u0131m.\u00a0 Bu sadece sinyal yakalama k\u0131sm\u0131d\u0131r.\u00a0<\/b><\/p>\n<p>while (pulseIn(RECV_PIN,LOW) &lt; 8000); \/\/ wait until start bit is received.<br \/>\n{<br \/>\n}<br \/>\nwhile (basla==0)<br \/>\n{<br \/>\nsayy=(pulseIn(RECV_PIN,HIGH));<br \/>\n\/\/ Serial.println(sayy);<br \/>\nif (sayy&gt;3000 &amp;&amp; sayy&lt;=5000){<br \/>\n\/\/Serial.println(sayy);<br \/>\nbasla=1;<br \/>\n}<br \/>\n}<br \/>\nfor (int i = 0; i &lt; 32; i++)<br \/>\n{<br \/>\nif (pulseIn(RECV_PIN, HIGH) &gt; 1000)<br \/>\nbin[i] = 1;<br \/>\nelse<br \/>\nbin[i] = 0;<br \/>\n}<\/p>\n<p>Protokollere ge\u00e7meden \u00f6nce sinyalin nas\u0131l okunmas\u0131 gerekti\u011fini anlatmak istiyorum. \u0130nternette NEC protokol dedi\u011finizde size herhangi bir tu\u015fa ait sinyal resmi gelecektir. Fakat gelen sinyal resmi Arduinoya gelen sinyalin tersi olarak g\u00f6r\u00fcnecektir. Sebep ise arduino al\u0131c\u0131 g\u00f6z\u00fcn i\u00e7indeki devre gelen sinyali terslemektedir. K\u00fct\u00fcphaneler bu terslenmi\u015f sinyale g\u00f6re kodu \u00e7\u00f6zer. Kendi program\u0131n\u0131z\u0131 bu terslenmi\u015f sinyale g\u00f6re yapabilirsiniz ( Ben terslenmi\u015f sinyale g\u00f6re yapt\u0131m ) Ya da sinyali tek bir transist\u00f6r kullanarak tekrar tersleyerek orijinal sinyale d\u00f6n\u00fc\u015ft\u00fcr\u00fcp program\u0131n\u0131z\u0131 ona g\u00f6re yapabilirsiniz.\u00a0 \u0130lk resimde ta\u015f\u0131y\u0131c\u0131 frekans geldi\u011finde al\u0131c\u0131 g\u00f6z \u00e7\u0131k\u0131\u015f\u0131nda LOW sinyal \u00e7\u0131k\u0131\u015f\u0131 oldu\u011funu g\u00f6rebilirsiniz. Olan i\u015flem budur. Ayn\u0131 zamanda ta\u015f\u0131y\u0131c\u0131 frekans\u0131ndan temizlenmi\u015f kontrol sinyalinin \u00e7\u0131kt\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/al%C4%B1c%C4%B1%20g%C3%B6z%20%C3%A7al%C4%B1%C5%9Fma.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/al%C4%B1c%C4%B1%20g%C3%B6z%20%C3%A7al%C4%B1%C5%9Fma.gif?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/al%C4%B1c%C4%B1%20g%C3%B6z%20tersleme.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/al%C4%B1c%C4%B1%20g%C3%B6z%20tersleme.gif?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p>Yukar\u0131daki transist\u00f6r \u00e7al\u0131\u015fmas\u0131nda ise giren ve \u00e7\u0131kan sinyallerin do\u011fru y\u00f6nde ve ters y\u00f6nde oldu\u011funu g\u00f6rebilirsiniz. Orjinal sinyale d\u00f6nmek isterseniz. Bu tip bir transist\u00f6rl\u00fc devre yap\u0131p giri\u015fine al\u0131c\u0131 g\u00f6z\u00fcn \u00e7\u0131k\u0131\u015f\u0131n\u0131 verirseniz ve \u00e7\u0131k\u0131\u015f\u0131 kollekt\u00f6r\u00fcnden al\u0131rsan\u0131z ilk gelen orjinal sinyale d\u00f6nm\u00fc\u015f oldu\u011funuzu g\u00f6r\u00fcrs\u00fcn\u00fcz.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Do\u011frusu hangisi derseniz orijinal sinyalin \u015fekline uygun oland\u0131r. Kendi \u00f6rnek programlar\u0131mda kolayl\u0131k olsun diye terslenmi\u015f sinyali kulland\u0131m.<\/span><\/strong><\/p>\n<p>Ayr\u0131ca sinyal resimlerine bakarken <span style=\"color: #ff0000;\"><strong>LSB ve MSB<\/strong><\/span> g\u00f6receksiniz. Bu binary say\u0131 sistemlerinde en y\u00fcksek bit ve en d\u00fc\u015f\u00fck biti tan\u0131mlamaktad\u0131r.<br \/>\nMesela BINARY 10001001 say\u0131s\u0131n\u0131 ele al\u0131rsak en sa\u011fdaki bit LSB dir. En soldaki bit ise MSB dir.<br \/>\nSinyal grafi\u011fi protokole g\u00f6re verildi\u011finden baz\u0131 protokollerde en d\u00fc\u015f\u00fck bit \u00f6nceden g\u00f6nderilir baz\u0131lar\u0131nda ise en d\u00fc\u015f\u00fck bit en son g\u00f6nderilir.<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/lsb_msb.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/lsb_msb.JPG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p>Bu neden \u00f6nemli derseniz, gelen 1 ve 0 lardan olu\u015fmu\u015f binary say\u0131n\u0131n 1 ler basama\u011f\u0131 neredeyse ona g\u00f6re say\u0131y\u0131 hesaplaman\u0131z i\u00e7in. Ayr\u0131ca matematikte soldaki s\u0131f\u0131r\u0131n bir \u00f6nemi yoktur. Baz\u0131 binary yazan programlar ( mesela kulland\u0131\u011f\u0131m k\u00fct\u00fcphane gibi) soldaki 0 de\u011ferini at\u0131p g\u00f6steriyor. Bu s\u0131f\u0131r MSB deyse sorun olmayacakt\u0131r. Fakat LSB de ise binary say\u0131 hatal\u0131 \u00e7\u0131kacakt\u0131r \u00e7\u00fcnk\u00fc 1 ler basama\u011f\u0131 yoktur.<\/p>\n<p>Bununla ilgili bir \u00f6rnek kod a\u015fa\u011f\u0131dad\u0131r.<br \/>\n01000000101111111000000001111111\u00a0 burada en soldaki s\u0131f\u0131r\u0131 k\u00fct\u00fcphane g\u00f6stermiyor. Fakat biz LSB k\u0131sm\u0131 en solda diye soldan itibaren kodlar\u0131 ay\u0131rmaya ba\u015flarsak, soldan ilk 8 bit diyoruz ve 0 orada g\u00f6r\u00fcnm\u00fcyorsa ilk bit 1 den ba\u015flar dedi\u011fimizde ise hata yapm\u0131\u015f olaca\u011f\u0131z. Benim yapt\u0131\u011f\u0131m program da ise 32 bitin tamam\u0131 s\u0131f\u0131r bile olsa oraya yaz\u0131l\u0131r. Bu da size ay\u0131rmada kolayl\u0131k sa\u011flar. Bununla ilgili \u00f6rnekler a\u015fa\u011f\u0131da verilecektir.<\/p>\n<p><strong>Not:<\/strong> <strong>Arduino al\u0131c\u0131 g\u00f6z mod\u00fcl\u00fc (KY-022)<\/strong> 38khz ta\u015f\u0131y\u0131c\u0131 frekans\u0131na g\u00f6re filtrelenmi\u015f gibi g\u00f6r\u00fcnse de 36Khz sinyalleri de alabiliyor.<br \/>\n<strong>Bununla birlikte Al\u0131c\u0131 g\u00f6z\u00fcn sinyali tersledi\u011fini de unutmamam\u0131z kaz\u0131m.<\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/KY-022_Infrared_Receiver_Module_-_BC-27_800x.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"alignleft lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/KY-022_Infrared_Receiver_Module_-_BC-27_800x.jpg?raw=true\" alt=\"\" width=\"175\" height=\"175\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 175px; --smush-placeholder-aspect-ratio: 175\/175;\" \/><\/a><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/Arduino_KY-022_Keyes_Infrared_Receiver_module_connection_diagram.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/Arduino_KY-022_Keyes_Infrared_Receiver_module_connection_diagram.png?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p><strong>Ta\u015f\u0131y\u0131c\u0131 frekans ne demek:<\/strong> IR sinyallerin daha uzak mesafelere gidebilmesi ve ayr\u0131ca IR verici led ak\u0131m\u0131n\u0131n daha y\u00fcksek ak\u0131mda anahtarlamal\u0131 \u00e7al\u0131\u015fabilmesi i\u00e7in ta\u015f\u0131y\u0131c\u0131 frekans kullan\u0131l\u0131r. DC olarak 20-30 ma ak\u0131ma dayanan bir LED 38Khz de anahtarland\u0131\u011f\u0131nda 100ma civar\u0131nda ak\u0131m da kullan\u0131labilmektedir. Bu da verici sinyalini kuvvetlendirecek ve mesafeyi artt\u0131racakt\u0131r. Baz\u0131 al\u0131c\u0131 g\u00f6zler 36Khz frekans\u0131na maksimum ge\u00e7irgenlik i\u00e7in ayarlanm\u0131\u015ft\u0131r. Baz\u0131lar\u0131 38Khz baz\u0131lar\u0131 40 Khz sinyale g\u00f6re dir. Belki daha farkl\u0131 modeller de vard\u0131r. En \u00e7ok kullan\u0131lan 36Khz ve 38Khz dir.<br \/>\nBuradaki al\u0131c\u0131 g\u00f6z yak\u0131n mesafe denendi\u011fi i\u00e7in t\u00fcm kumandalarda olumlu sonu\u00e7 verdi. Fakat 36Khz bir kumanda ile bu 38Khz lik al\u0131c\u0131 g\u00f6ze sinyal g\u00f6nderdi\u011finizde yak\u0131n mesafede sorun olmasa bile mesafe uzad\u0131k\u00e7a sorun olmaya ba\u015flayacakt\u0131r. Halbuki 36Khz lik bir kumanday\u0131 36Khz lik bir al\u0131c\u0131 g\u00f6zle kullansan\u0131z daha uzak mesafeden sinyal g\u00f6nderebilirsiniz.<br \/>\nTa\u015f\u0131y\u0131c\u0131 frekans sinyali nas\u0131ld\u0131r. Al\u0131c\u0131 g\u00f6ze resimdeki \u00fcst tarafta bulunan sinyal gelir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/carrier%20frequency.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/carrier%20frequency.png?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\nTa\u015f\u0131y\u0131c\u0131 frekans arka arkaya geldi\u011finde HIGH seviyesi hi\u00e7 gelmedi\u011finde LOW seviyesi olur. Al\u0131c\u0131 g\u00f6z ta\u015f\u0131y\u0131c\u0131 frekans\u0131 yok ederek ger\u00e7ek sinyali bizlere verir. Bu sinyali direkt olarak g\u00f6nderici Led\u2019e verip g\u00f6ndereyim deseniz mesafe \u00e7ok k\u00fc\u00e7\u00fck olacak. Fakat ta\u015f\u0131y\u0131c\u0131 frekansa bindirip g\u00f6nderdi\u011finizde daha uzun olacakt\u0131r. Bundan dolay\u0131 Kumanda vericisi yap\u0131l\u0131rken kontrol sinyali ve ta\u015f\u0131y\u0131c\u0131 frekans birle\u015ftirilerek g\u00f6nderilir. Al\u0131c\u0131 g\u00f6zlerde uygun ta\u015f\u0131y\u0131c\u0131 frekans\u0131 s\u00fczerek size kontrol sinyalini verir ve bu kontrol sinyalini al\u0131c\u0131 devrede i\u015flersiniz.<br \/>\nBu resimdeki devre ise basit olarak ta\u015f\u0131y\u0131c\u0131 frekans ile kontrol sinyali nas\u0131l birle\u015ftirildi\u011fi(mod\u00fcle edildi\u011fi) g\u00f6r\u00fclmektedir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/transmitter.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/transmitter.jpg?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p>Devre \u00e7al\u0131\u015fmas\u0131na bakarsak\u00a0 diyot ge\u00e7irgenli\u011fi ta\u015f\u0131y\u0131c\u0131 frekans\u0131n LOW k\u0131sm\u0131nda transistor \u00fcn beyz ucunu low durumuna getirir. HIGH seviyesinde ise diyot t\u0131kama y\u00f6n\u00fcnde \u00e7al\u0131\u015faca\u011f\u0131ndan kontrol sinyalinin durumuna ba\u011fl\u0131 olarak transistor\u00fcn \u00e7\u0131k\u0131\u015f vermesini sa\u011flar. Mesela kontrol sinyali HIGH oldu\u011funda \u00e7\u0131k\u0131\u015fta ta\u015f\u0131y\u0131c\u0131 frekans\u0131n da g\u00f6r\u00fclmesi gerekir. Bu durum diyota gelen ta\u015f\u0131y\u0131c\u0131 frekans sinyalinin HIGH ve LOW durumuna g\u00f6re \u00e7\u0131k\u0131\u015fa yans\u0131t\u0131l\u0131r. Bu durum tablodan daha kolay anla\u015f\u0131lmaktad\u0131r. Tabloda sar\u0131 ile g\u00f6sterilen alan ta\u015f\u0131y\u0131c\u0131 frekans\u0131n kar\u015f\u0131ya iletildi\u011fi aland\u0131r. Di\u011fer alanda ise \u00e7\u0131k\u0131\u015f LOW durumundad\u0131r. \u00c7\u00fcnk\u00fc Kontrol sinyali LOW durumundad\u0131r.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/transmitter_modulation.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/transmitter_modulation.JPG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>NEC PROTOKOL\u00dc :<\/strong><\/span><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NECMessageFrame.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NECMessageFrame.png?raw=true\" alt=\"\" width=\"725\" height=\"235\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 725px; --smush-placeholder-aspect-ratio: 725\/235;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NECRepeatCodes.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NECRepeatCodes.png?raw=true\" alt=\"\" width=\"725\" height=\"235\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 725px; --smush-placeholder-aspect-ratio: 725\/235;\" \/><\/a><br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/NEC_key1_noninvert.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/NEC_key1_noninvert.JPG?raw=true\" alt=\"\" width=\"725\" height=\"380\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 725px; --smush-placeholder-aspect-ratio: 725\/380;\" \/><\/a><\/p>\n<p>NEC protokol\u00fc bir\u00e7ok kumandada kullan\u0131l\u0131yor gibi. Hatta Samsung kumanda, NEC protokol\u00fc kullanmas\u0131na ra\u011fmen ba\u015ftaki 9ms start pals\u0131n\u0131 4.5ms olarak kullanm\u0131\u015f. Ba\u015fka NEC benzeri kumandalar da mevcut. \u00dcreticiler temelde NEC protokol\u00fc kullansalar da, belkide kumandalar kar\u0131\u015fmas\u0131n diye kendince k\u00fc\u00e7\u00fck ayr\u0131nt\u0131lar koymu\u015flar. Bunlar NEC protokol temelli olduklar\u0131ndan programlama NEC protokol\u00fcne g\u00f6re yap\u0131lacakt\u0131r. Sadece aradaki s\u00fcreler de\u011fi\u015fecektir. NEC protokol\u00fc 32 bitliktir. Start pals\u0131 hari\u00e7. 32 bit soldan sa\u011fa do\u011fru gidilirse ilk resimde g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere<br \/>\nAdress+adresin tersi+cmd+cmd tersi \u015feklinde 4 byte l\u0131k bir bilgidir. Ayr\u0131ca tu\u015f bas\u0131ld\u0131\u011f\u0131 s\u00fcrece tu\u015fun tekrar etti\u011fini g\u00f6steren sadece start pals\u0131ndan olu\u015fan sinyaller gelmektedir. 1. Sinyal katar\u0131 adres ve komuttan olu\u015fan 32 bit bilgidir. Bu bilginin sonunda 1 adet stop bit vard\u0131r. Bu da 562.5\u00b5s dir. Arkas\u0131ndakiler ise tu\u015f b\u0131rak\u0131las\u0131ya kadar gelen ve start pals\u0131ndan olu\u015fan tekrar (repeat) sinyalleridir. 2. resim bunu g\u00f6sterir.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>NEC protokol\u00fcn\u00fcn sinyal \u015fekilleri ve anlat\u0131m\u0131. <\/strong><\/span><\/p>\n<p>NEC protokol\u00fcnde HIGH ve LOW \u015fekilleri birbirinden kolayca ayr\u0131labilir. \u015eayet bir periyot i\u00e7inde HIGH ve LOW s\u00fcreleri e\u015fitse 0 olarak de\u011ferlendirilir. \u015eayet HIGH ve LOW s\u00fcreleri farkl\u0131ysa 1 olarak de\u011ferlendirilir. Resimdeki sinyal \u015feklinde 1 ve 0 durumlar\u0131n\u0131 hemen fark edebileceksiniz.<br \/>\nBu s\u00fcreler kontrol edilirken al\u0131c\u0131 g\u00f6z\u00fcn tersledi\u011fini de dikkate alarak sinyalin hangi k\u0131sm\u0131na g\u00f6re karar vermeniz gerekti\u011fini bulabilirsiniz. Orijinal sinyale g\u00f6re karar vereceksek, LOW seviyesi b\u00fcy\u00fck olana 1 dememiz gerekir. \u015eayet Al\u0131c\u0131 g\u00f6z\u00fcn terslemesine g\u00f6re karar vereceksek, HIGH seviyesi b\u00fcy\u00fck olana 1 dememiz gerekir.<br \/>\nBu durum yukar\u0131daki sinyal \u015fekillerinde g\u00f6r\u00fclmektedir.<span style=\"color: #ff6600;\"> \u0130lk sinyal<\/span> resmi, Terslenmemi\u015f (noninvert) durumu g\u00f6sterir.<span style=\"color: #ff6600;\"> 2. sinyal<\/span> resmi ise tekrar kodunu g\u00f6sterir.<span style=\"color: #ff6600;\"> 3. Sinyal<\/span> resmi ise ger\u00e7ek devrede al\u0131c\u0131 g\u00f6zde terslenmi\u015f (invert) sinyaldir. ( Bu t\u00fcm protokoller i\u00e7in ayn\u0131d\u0131r. T\u00fcm protokollere ait programlar al\u0131c\u0131 g\u00f6z\u00fcn tersledi\u011fi \u015fekle g\u00f6re yap\u0131lm\u0131\u015ft\u0131r) Osilaskoptan al\u0131nan bu g\u00f6r\u00fcnt\u00fc arduino ya da di\u011fer i\u015flemcilerin al\u0131c\u0131 g\u00f6zden sonra alaca\u011f\u0131 sinyali g\u00f6sterir.<br \/>\n\u0130lk resimde g\u00f6rece\u011finiz \u00fczere NEC protokol\u00fc LSB den ba\u015flayarak g\u00f6nderilir. Buna dikkat etmeniz gerekir. 38.222kHz. lik bir ta\u015f\u0131y\u0131c\u0131 frekans kullan\u0131r.<br \/>\nSinyal gelirken bu s\u0131rayla gelir. <span style=\"color: #ff6600;\"><b>start bit &#8211; Address &#8211; Address &#8211; Data &#8211; Inverse Data &#8211; <span style=\"color: #ff0000;\">stop bit<\/span><\/b><\/span><br \/>\nSinyal start palsi ile ba\u015flar (9ms ve 4.5ms) sonras\u0131nda 4 byte 32 bit veri gelir ve sonras\u0131nda 562.5\u00b5s olan Stop bit gelir.<br \/>\n0 olarak tan\u0131mlad\u0131\u011f\u0131m\u0131z sinyalin LOW ve HIGH k\u0131s\u0131mlar\u0131 e\u015fittir ve 562.5\u00b5s dir. toplamda 1.125ms dir<br \/>\n1 olarak tan\u0131mlad\u0131\u011f\u0131m\u0131z sinyalin LOW b\u00f6l\u00fcm\u00fc\u00a0 562.5\u00b5s, HIGH b\u00f6l\u00fcm\u00fc ise 1.6875ms, toplamda 2.25ms dir.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>SAMSUNG NEC PROTOKOL\u00dc :<\/strong><\/span><\/p>\n<figure style=\"width: 725px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/samsung_necmodulation.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/samsung_necmodulation.gif?raw=true\" alt=\"\" width=\"725\" height=\"380\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 725px; --smush-placeholder-aspect-ratio: 725\/380;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff6600;\">SAMSUNG NEC format\u0131 1 ve 0 s\u00fcreleri<\/span><\/strong><\/figcaption><\/figure>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/samsung.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/samsung.png?raw=true\" alt=\"\" width=\"725\" height=\"380\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 725px; --smush-placeholder-aspect-ratio: 725\/380;\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><span style=\"color: #ff6600;\"><b>start bit &#8211; Address &#8211; Address &#8211; Data &#8211; Inverse Data &#8211; <span style=\"color: #ff0000;\">stop bit<\/span><br \/>\n<\/b> start bit-\u00a011100000 11100000 00100000 11011111-<span style=\"color: #ff0000;\">stop bit<\/span><\/span><\/p>\n<figure style=\"width: 789px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/samsung_NEC_key1_noninvert.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/samsung_NEC_key1_noninvert.JPG?raw=true\" alt=\"\" width=\"789\" height=\"420\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 789px; --smush-placeholder-aspect-ratio: 789\/420;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff0000;\">Al\u0131c\u0131 g\u00f6zden sonra terslenmi\u015f sinyal. <\/span><\/strong><\/figcaption><\/figure>\n<p>Samsung ta NEC protokol\u00fcn\u00fc kullan\u0131yor. Fakat baz\u0131 farkl\u0131l\u0131klar olu\u015fturmu\u015f durumda<br \/>\n<span style=\"color: #ff6600;\">NEC protokol\u00fc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : <strong>9ms + 4.5ms <\/strong><\/span>+ <span style=\"color: #0000ff;\">adres + adres tersi<\/span> + komut + komut tersi + stop bit<br \/>\n<span style=\"color: #ff6600;\">Samsung protokol : <strong>4.5ms + 4.5ms <\/strong><\/span>+<span style=\"color: #0000ff;\"> adres + adres<\/span> + komut + komut tersi + stop bit<br \/>\n\u015eeklindedir. <span style=\"color: #ff6600;\">Fakat NEC protokol\u00fcnde kulland\u0131\u011f\u0131n\u0131z program\u0131n ayn\u0131s\u0131n\u0131 kullanabilirsiniz. Sadece ilk start pals\u0131ndaki 9ms yerine 4.5ms ile ba\u015flad\u0131\u011f\u0131ndan start pals\u0131 yakalama komutunun s\u00fcresini 4.5ms yapman\u0131z yeterli.<\/span> Kodlama k\u0131sm\u0131nda analiz ederken zaten adresin tersi ve komutun tersini dikkate almayaca\u011f\u0131m\u0131z i\u00e7in yine ayn\u0131 \u015fekilde hesaplanabilir.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>PHILIPS RC5 protokol\u00fc:<\/strong><\/span><br \/>\nBu protokol\u00fc yakalamak kolay fakat hesaplamak biraz daha zor g\u00f6r\u00fcn\u00fcyor. \u00c7\u00fcnk\u00fc gelen sinyalde start pals\u0131, HIGH seviyesi ve LOW seviyesi hep ayn\u0131 s\u00fcrededir. Burada kullan\u0131lan kodlama <strong>Manchester kodlama sistemidir<\/strong>. Bu kodlama sisteminde LOW pozisyondan HIGH pozisyona \u00e7\u0131k\u0131yorsa 1, HIGH seviyesinden LOW seviyesine d\u00fc\u015f\u00fcyorsa 0 seviyesi olarak de\u011ferlendirilir. (IEEE 802.3 standart yap\u0131s\u0131na g\u00f6re) A\u015fa\u011f\u0131daki resimde Manchester kodlama standartlar\u0131 g\u00f6r\u00fclmektedir. RC5 protokol\u00fc IEEE 802.3 standard\u0131n\u0131 kullan\u0131yor.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/975px-Manchester_encoding_both_conventions.svg.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/975px-Manchester_encoding_both_conventions.svg.png?raw=true\" alt=\"\" width=\"789\" height=\"420\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 789px; --smush-placeholder-aspect-ratio: 789\/420;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/RC5MessageFrame.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/RC5MessageFrame.png?raw=true\" alt=\"\" width=\"789\" height=\"420\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 789px; --smush-placeholder-aspect-ratio: 789\/420;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_key1_noninvert.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_key1_noninvert.JPG?raw=true\" alt=\"\" width=\"789\" height=\"420\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 789px; --smush-placeholder-aspect-ratio: 789\/420;\" \/><\/a><\/p>\n<p>Yukar\u0131daki ilk resimde Manchester kodlaman\u0131n <span style=\"color: #ff6600;\">2 tip standard\u0131<\/span> oldu\u011funu g\u00f6r\u00fcyorsunuz. Bizler RC5 orijinal sinyaline g\u00f6re i\u015flem yap\u0131yorsak<strong> IEEE 802.3<\/strong> standart yap\u0131s\u0131na g\u00f6re kodlamay\u0131 yapaca\u011f\u0131z. Fakat sizin de fark\u0131na varaca\u011f\u0131n\u0131z gibi al\u0131c\u0131 g\u00f6z\u00fcn tersledi\u011fi sinyale g\u00f6re bakarsak (3. resim)\u00a0 LOW seviyesinden HIGH seviyesine \u00e7\u0131karken 0 diyoruz. Burada <strong>G. E. Thomas<\/strong> standard\u0131na g\u00f6re kulland\u0131\u011f\u0131m\u0131z\u0131 g\u00f6receksiniz. Yani <strong><span style=\"color: #ff6600;\">al\u0131c\u0131 g\u00f6z tersledi\u011finde standart de\u011fi\u015fmi\u015f oluyor. Buna dikkat etmeniz gerekiyor.<\/span><\/strong> Ayr\u0131ca RC5 protokol\u00fcnde start pals\u0131ndan sonra veriler, MSB y\u00f6n\u00fcnden g\u00f6nderilmeye ba\u015flan\u0131r. Buna dikkat edin. NEC protokol\u00fcnde ise start pals\u0131ndan sonra, LSB y\u00f6n\u00fcnde bilgiler g\u00f6nderiliyordu.<\/p>\n<p>Bunun yan\u0131 s\u0131ra di\u011fer protokollerden farkl\u0131 olarak bu protokol 36Khz ta\u015f\u0131y\u0131c\u0131 frekans kullan\u0131yor. Yukar\u0131da da anlatt\u0131\u011f\u0131m gibi Al\u0131c\u0131da 36Khz lik g\u00f6z kullan\u0131ld\u0131\u011f\u0131nda maksimum mesafeye ula\u015f\u0131labilir. Arduino IR al\u0131c\u0131 mod\u00fcl\u00fc 38Khz e g\u00f6re ayarl\u0131d\u0131r. Fakat 36Khz de de sinyalleri alabilmektedir. Yak\u0131n mesafe oldu\u011fundan.<\/p>\n<p>Ayr\u0131ca bu protokolde bir de <strong>TOGGLE<\/strong> biti vard\u0131r. Her tu\u015fa bast\u0131\u011f\u0131n\u0131zda HIGH ise LOW, LOW ise HIGH durumuna ge\u00e7erek tu\u015fa ilk defa bast\u0131\u011f\u0131 belli olur. NEC protokol\u00fcnde sadece start pals\u0131ndan olu\u015fan tekrar sinyali vard\u0131. Burada ise yine tu\u015f bas\u0131l\u0131 oldu\u011fu anda kendini tekrar eder. Fakat sadece start pals\u0131 de\u011fil ayn\u0131 sinyali tekrar eder ve <span style=\"color: #ff6600;\">toggle bitini de\u011fi\u015ftirmez.<\/span> \u015eayet butonu b\u0131rak\u0131p ayn\u0131 tu\u015fa bile bassan\u0131z, <span style=\"color: #ff6600;\">toggle biti de\u011fi\u015fecektir.<\/span><\/p>\n<p>A\u015fa\u011f\u0131daki resimlerde sadece TOGGLE biti yer de\u011fi\u015ftirmi\u015ftir. Sinyal ayn\u0131 tu\u015fa aittir.<\/p>\n<figure style=\"width: 789px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_key1_T0_noninvert.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_key1_T0_noninvert.JPG?raw=true\" alt=\"\" width=\"789\" height=\"420\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 789px; --smush-placeholder-aspect-ratio: 789\/420;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff0000;\">TOGGLE = 1<\/span><\/strong><\/figcaption><\/figure>\n<figure style=\"width: 789px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_key1_T1_noninvert.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_key1_T1_noninvert.JPG?raw=true\" alt=\"\" width=\"789\" height=\"420\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 789px; --smush-placeholder-aspect-ratio: 789\/420;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff0000;\">TOGGLE= 0<\/span><\/strong><span style=\"color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px;\">\u00a0<\/span><\/figcaption><\/figure>\n<p>Program\u0131 yaparken yine ayn\u0131 \u015fekilde PULSIN komutu kullan\u0131l\u0131r. HIGH ve LOW seviyelerinin s\u00fcreleri al\u0131n\u0131r. Bu s\u00fcreler al\u0131nd\u0131\u011f\u0131nda durum a\u015fa\u011f\u0131daki gibidir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/excelden%20al%C4%B1nan%20sonkod%20hesap.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/excelden%20al%C4%B1nan%20sonkod%20hesap.JPG?raw=true\" alt=\"\" width=\"407\" height=\"369\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/369;\" \/><\/a><br \/>\nYukar\u0131daki tabloda gelen sinyalin HIGH ve LOW seviyelerinin s\u00fcreleri en soldaki s\u00fctunlard\u0131r. En ba\u015ftaki ye\u015fil 1 rakam\u0131 start pals\u0131n\u0131n yakalanmas\u0131 s\u0131ras\u0131nda, s\u00fcresi hesaplanmayan 1 dir ve kodlama da en ba\u015fa yaz\u0131lm\u0131\u015ft\u0131r.<br \/>\nDaha sonra ise sinyal \u015fekline bakarsak hangi sinyal geldiyse o sinyali 3. Ve 4. S\u00fctunlara yazd\u0131k. Bundan sonra ise <strong>Manchester <\/strong>kodlamaya (<strong>G. E. Thomas<\/strong> standard\u0131na )\u00a0 g\u00f6re<br \/>\n1, \u00f6nce yaz\u0131lm\u0131\u015f ise 1 dir.<br \/>\n0 \u00f6nce yaz\u0131lm\u0131\u015f ise 0 d\u0131r<br \/>\ndiyerek en sa\u011fdaki kodlamay\u0131 olu\u015fturduk.<br \/>\n\u0130lk 2 s\u00fctunda s\u00fcrelerin yakla\u015f\u0131k 900mikro saniye\u00a0 oldu\u011fu g\u00f6r\u00fclmektedir. RC5 sinyalinde LOW ve HIGH s\u00fcreleri 889us dir. Fakat bunun yan\u0131 s\u0131ra 1700 ve 1802 gibi de\u011ferler g\u00f6receksiniz. Bunlar ise 2 sinyalin HIGH, HIGH veya LOW, LOW olmas\u0131 durumudur. Bu durumda olanlar\u0131 ise 3. Ve 4. S\u00fctunda nas\u0131l ay\u0131rd\u0131\u011f\u0131ma dikkat edin. \u00c7\u00fcnk\u00fc HH sinyalinin ilk H seviyesi sol taraf\u0131ndaki yar\u0131m periyot olan LOW seviyesine aittir yani sol taraftaki sinyalin biti\u015fidir. 2. H sinyali ise sa\u011f taraf\u0131ndaki yar\u0131m periyot sinyalin ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Bu \u015fekilde d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm\u00fczde 1802 gibi bir sinyal geldi\u011finde 1800-1 yaz\u0131ld\u0131ktan sonra 1802-2 si ise hemen arkas\u0131ndan yaz\u0131larak sinyalin \u015fekline uydurulmu\u015f olacakt\u0131r.<br \/>\nA\u015fa\u011f\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi bit6 ve bit7 birle\u015fiktir. Bu \u015fekildeki sinyali yukar\u0131da anlatt\u0131\u011f\u0131m gibi tabloya 1802-1yani bit6 mavi \u00e7izgi olarak d\u00fc\u015f\u00fcnece\u011fiz bu sinyal periyotunun 2. yar\u0131s\u0131n\u0131 yani biti\u015fini g\u00f6sterir.\u00a0 1802-2 ise bit7 k\u0131rm\u0131z\u0131 \u00e7izgi olarak d\u00fc\u015f\u00fcn\u00fclecek. Bu \u015fekilde ise periyotun 1. yar\u0131s\u0131 olacakt\u0131r ve ba\u015flang\u0131c\u0131n\u0131 temsil edecektir.\u00a0 T\u00fcm sinyali bu \u015fekilde yazd\u0131ktan sonra kod i\u00e7erisinden adres ve komut k\u0131sm\u0131n\u0131 hesaplayabiliriz.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/rc5%20b%C3%BCy%C3%BCk%20pals%20ayr%C4%B1m%C4%B1.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/rc5%20b%C3%BCy%C3%BCk%20pals%20ayr%C4%B1m%C4%B1.JPG?raw=true\" alt=\"\" width=\"407\" height=\"369\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/369;\" \/><\/a><br \/>\nBu \u015fekilde RC5 sinyalini de \u00e7\u00f6zm\u00fc\u015f oluruz. Toplam start pals\u0131+toggle\u00a0 dahil 14 bitlik sinyaldir.<br \/>\nSTART1+START2+TOGGLE+5 bit adres+6 bit komut \u015feklindedir.<\/p>\n<p>Arduino program\u0131nda ise <strong>void tekrarla()<\/strong> k\u0131sm\u0131 3. Ve 4. s\u00fctunlar\u0131 haz\u0131rlamaktad\u0131r. Bundan sonra ise <strong>void sonkod()<\/strong> k\u0131sm\u0131 ise en sa\u011fdaki s\u00fctunu olu\u015fturur. Sonras\u0131nda ise kod i\u00e7erisinden adres ve komut k\u0131sm\u0131n\u0131 ay\u0131rarak yazar.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Programlar\u0131 birle\u015ftirme:<\/strong> <\/span>Ben protokolleri anlatmak i\u00e7in programlar\u0131 ayr\u0131 ayr\u0131 yapt\u0131m. Bunlar\u0131 birle\u015ftirdiniz ve sinyal geldi hangisine g\u00f6re kod \u00e7\u00f6zeceksiniz. Bu da verdi\u011fim programlar aras\u0131nda <strong>protokol.ino<\/strong> program\u0131yla anla\u015f\u0131lacakt\u0131r. Bu program ise gelen sinyali g\u00f6rd\u00fc\u011f\u00fcnde start pals\u0131na bakar. Start pals\u0131 <span style=\"color: #ff0000;\">9ms<\/span> ise NEC protokol\u00fc der. <span style=\"color: #ff0000;\">4,5ms<\/span> ise samsung NEC diyebiliriz \u015fayet start pals\u0131 <span style=\"color: #ff0000;\">889ms<\/span> civar\u0131ysa RC5 kodu diyerek program\u0131n\u0131z\u0131 y\u00f6nlendirebilirsiniz. Bu program sadece start pals\u0131n\u0131n s\u00fcrelerini pulsin komutuyla kontrol eder.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>B\u00fct\u00fcn bunlar\u0131 anlat\u0131rken bir noktay\u0131 anlatmad\u0131m.<\/strong> <strong>En \u00f6nemli olan k\u0131sm\u0131 ise budur<\/strong>.<\/span> Ba\u015flang\u0131\u00e7 pals\u0131n\u0131n yakalanmas\u0131 i\u00e7in gelecek olan b\u00fcy\u00fck pals\u0131n beklenmesi.<br \/>\n\u0130ki kod bilgisi aras\u0131nda olduk\u00e7a uzun bir ge\u00e7i\u015f s\u00fcresi var. NEC protokol\u00fcnde, 108ms RC5 te ise 114ms de bir sinyal tekrarlan\u0131r. Di\u011fer protokollerde de bunu g\u00f6receksiniz.<br \/>\nBurada \u015funu unutmamak laz\u0131m. <strong><span style=\"color: #ff6600;\">RC5 kodunda<\/span><\/strong> her tekrarda sinyal kendini toggle biti de\u011fi\u015fmeksizin tekrar eder. Birinci pals katar\u0131n\u0131 ka\u00e7\u0131rsan\u0131z bile 2.sini mutlaka yakalars\u0131n\u0131z. Bu da pulsin komutunda 80ms boyunca HIGH ya da LOW beklemekle olur. Bu s\u00fcre sonunda PULSIN timeout verir ve 0 d\u00f6nd\u00fcr\u00fcr. Bu \u015fekilde HIGH ya da LOW uzun bir aral\u0131k tespit edilir. Biliyoruz ki bu aral\u0131ktan sonra start pals\u0131 gelecek. Biz de kodu yakalayabilece\u011fiz.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Fakat NEC protokol\u00fcnde<\/strong><\/span> tu\u015fa bast\u0131\u011f\u0131m\u0131zda sinyal 1 kez tu\u015f kodu yollar ve arkas\u0131ndan sadece tekrar sinyali olarak <span style=\"color: #ff6600;\">start pals\u0131n\u0131<\/span> yollar. Bu \u015fekilde d\u00fc\u015f\u00fcn\u00fcrsek \u00f6ncelikli olarak ilk gelen pals\u0131 NEC ile yakalamak inceleyip NEC yada benzeri de\u011filse RC5 oldu\u011funu d\u00fc\u015f\u00fcn\u00fcp tu\u015f daha b\u0131rak\u0131lmadan uzun pals\u0131 bekleyip kodu tekrar almak bir \u00e7\u00f6z\u00fcm olabilir. Tabii ki bu arada ilk yakalad\u0131\u011f\u0131m\u0131z sinyalin start pals\u0131n\u0131 incelememiz ve karar vermemiz de gerekebilir. Bu \u015fekilde hangi kumanda protokol\u00fc oldu\u011funu anlayabiliriz. Tu\u015f b\u0131rak\u0131lmadan o protokole g\u00f6re sinyali bir kez daha uzun sinyali bekleyip kay\u0131t ederek kullan\u0131c\u0131ya bilgiyi g\u00f6nderebiliriz. <span style=\"color: #ff6600;\">Bunun d\u0131\u015f\u0131nda kendi Algoritman\u0131z\u0131 da olu\u015fturabilirsiniz.<\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>RC5 tekrar b\u00f6l\u00fcm\u00fc a\u015fa\u011f\u0131daki resimde g\u00f6r\u00fclmektedir.<\/strong><\/span><br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_tekrar_noninvert.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/signals\/RC5_tekrar_noninvert.JPG?raw=true\" alt=\"\" width=\"713\" height=\"382\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 713px; --smush-placeholder-aspect-ratio: 713\/382;\" \/><\/a><\/p>\n<p><span style=\"color: #ff0000;\"><strong> NEC tekrar b\u00f6l\u00fcm\u00fc a\u015fa\u011f\u0131daki resimde g\u00f6r\u00fclmektedir.<\/strong><\/span><br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NECRepeatCodes.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NECRepeatCodes.png?raw=true\" alt=\"\" width=\"713\" height=\"382\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 713px; --smush-placeholder-aspect-ratio: 713\/382;\" \/><\/a><\/p>\n<p><span style=\"color: #ff0000;\"><strong>PIC i\u015flemcisiyle nas\u0131l yapar\u0131z derseniz,<\/strong><\/span> programlar aras\u0131nda ayn\u0131 algoritmay\u0131 kullanan PBP ile ger\u00e7ekle\u015ftirilmi\u015f bir program var.<br \/>\nBenzer algoritmay\u0131 kullan\u0131p programlar\u0131 kendi i\u015flemcinize veya kendi programlama dilinize uyarlayabilirsiniz. <strong><span style=\"color: #ff6600;\">K\u00fct\u00fcphane kullan\u0131lmad\u0131\u011f\u0131ndan kolayl\u0131kla adapte edebilirsiniz.<\/span><\/strong><br \/>\nZor mu kolay m\u0131 derseniz, bence kolay. A\u015fa\u011f\u0131daki sat\u0131rlar RC5 sinyalini yakalamak i\u00e7in yeterli olmaktad\u0131r. Sonras\u0131 ise gelen sinyalin analiz edilmesidir. Analiz y\u00f6ntemi yukar\u0131da protokol anlat\u0131mlar\u0131nda anlat\u0131ld\u0131\u011f\u0131 gibi, sinyalin 1 veya 0 oldu\u011funa g\u00f6re ve LSB mi MSB mi \u00f6nce g\u00f6nderiliyor bunu bilmekle yap\u0131l\u0131r. A\u015fa\u011f\u0131daki program par\u00e7as\u0131, PIC 16F1827 ile yap\u0131lm\u0131\u015f bir program\u0131n sinyal yakalama k\u0131sm\u0131d\u0131r. \u00d6nce start pals\u0131n\u0131 sonra LOW seviyesi daha sonra ise HIGH seviyesi kontrol ederek s\u00fcreleri diziye aktar\u0131r. ( config sat\u0131r\u0131n\u0131, seri port ayarlar\u0131n\u0131 ve osilat\u00f6r frekans\u0131n\u0131 de\u011fi\u015ftirerek ayarlayarak 16F628 entegrede kullan\u0131labilir. 16F1827 i\u00e7 osilat\u00f6r\u00fc 32mhz de 16F628 ise i\u00e7 osilat\u00f6r\u00fc 4Mhz de \u00e7al\u0131\u015f\u0131r. Buna g\u00f6re seri port baud sat\u0131rlar\u0131n\u0131 de\u011fi\u015ftirebilirsiniz. )<\/p>\n<p><span style=\"color: #0000ff;\">basla:<\/span><br \/>\n<span style=\"color: #0000ff;\">hserout [&#8220;IR sinyali gonder &#8220;,13,10]<\/span><br \/>\n<span style=\"color: #0000ff;\">temp=0:temp1=0<\/span><br \/>\n<span style=\"color: #0000ff;\">while temp1&lt;14000<\/span><br \/>\n<span style=\"color: #0000ff;\">PULSIN RECV_PIN,1,temp1<\/span><br \/>\n<span style=\"color: #0000ff;\">wend<\/span><\/p>\n<p><span style=\"color: #0000ff;\">for I=0 to 20<\/span><br \/>\n<span style=\"color: #0000ff;\">PULSIN RECV_PIN,0,sayL[I]<\/span><br \/>\n<span style=\"color: #0000ff;\">Next<\/span><\/p>\n<p><span style=\"color: #0000ff;\">while temp1&lt;14000<\/span><br \/>\n<span style=\"color: #0000ff;\">PULSIN RECV_PIN,1,temp1<\/span><br \/>\n<span style=\"color: #0000ff;\">wend<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>A\u015fa\u011f\u0131daki resimlerde arduino seri monit\u00f6rden al\u0131nan kodlar var.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NEC%20kutuphaneli_jutuphanesiz_karsilastirma.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/NEC%20kutuphaneli_jutuphanesiz_karsilastirma.JPG?raw=true\" alt=\"\" width=\"544\" height=\"230\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 544px; --smush-placeholder-aspect-ratio: 544\/230;\" \/><\/a><br \/>\nYukar\u0131daki resimde, NEC protokol\u00fcnde ilk gelen sinyalde soldaki 2 bit 0 oldu\u011fundan k\u00fct\u00fcphaneli program yazarken s\u0131f\u0131rlar\u0131 atm\u0131\u015f. Buna g\u00f6re NEC program\u0131nda gelen kod yanl\u0131\u015f olacakt\u0131r. Normalde 4 olmas\u0131 gerekirken 131 say\u0131s\u0131 okunacak adres olarak. Bu sadece yaz\u0131m hatas\u0131 ama bu \u015fekilde yaz\u0131ld\u0131\u011f\u0131nda projelerinizde sorun yaratmayacakt\u0131r \u00e7\u00fcnk\u00fc hep ayn\u0131 kodu verecektir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/samsung_kutuphaneli_kutuphanesiz_karsilastirma.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/samsung_kutuphaneli_kutuphanesiz_karsilastirma.JPG?raw=true\" alt=\"\" width=\"500\" height=\"361\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/361;\" \/><\/a><br \/>\nSamsung kodlamas\u0131nda fark g\u00f6r\u00fclm\u00fcyor. k\u00fct\u00fcphaneli ya da k\u00fct\u00fcphanesiz do\u011fru sonucu veriyor. \u00c7\u00fcnk\u00fc start pals\u0131 1 ile ba\u015fl\u0131yor. 0 ile ba\u015flasayd\u0131 o da soldaki s\u0131f\u0131rlar at\u0131lm\u0131\u015f olarak g\u00f6r\u00fcnt\u00fclenecekti.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/RC5_k%C3%BCt%C3%BCphaneli%20ve%20k%C3%BCt%C3%BCphanesiz%20karsilastirma.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/RC5_k%C3%BCt%C3%BCphaneli%20ve%20k%C3%BCt%C3%BCphanesiz%20karsilastirma.JPG?raw=true\" alt=\"\" width=\"456\" height=\"347\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 456px; --smush-placeholder-aspect-ratio: 456\/347;\" \/><\/a><br \/>\nYukar\u0131daki RC5 protokol sonucunda ise farkl\u0131 bir hata yok gibi g\u00f6r\u00fcnse de, yine s\u0131f\u0131rlar\u0131n at\u0131lmas\u0131 gibi g\u00f6r\u00fcnse de. Sinyalin yakalanmas\u0131 s\u0131ras\u0131nda ba\u015ftaki start palslar\u0131n\u0131n 1 olmas\u0131 gerekirken 0 olarak hesaplanmas\u0131 sonucu, toggle biti de s\u0131f\u0131rsa k\u00fct\u00fcphaneli program soldaki s\u0131f\u0131rlar\u0131 atarak g\u00f6steriyor. Tabii ki bu da sonu\u00e7ta adres k\u0131sm\u0131n\u0131 tamamen kald\u0131r\u0131yor ve sadece komut kodu olan 10001 kodu geliyor. Halbuki ger\u00e7ek sinyal 11000000010001 olmal\u0131yd\u0131. Dikkatli bakarsan\u0131z tu\u015f 2. kez bas\u0131ld\u0131\u011f\u0131nda toggle biti 1 oldu\u011fundan k\u00fct\u00fcphane start palslar\u0131n\u0131 0 g\u00f6rd\u00fc\u011f\u00fcnden yazmaya toggle bitinden ba\u015flam\u0131\u015f soldakileri s\u0131f\u0131rlam\u0131\u015f.<br \/>\nK\u00fct\u00fcphanesiz program do\u011fru bir \u015fekilde hesaplay\u0131p soldaki start bitleri 1 oldu\u011fundan t\u00fcm sinyali g\u00f6steriyor.<\/p>\n<p>Buraya kadar<span style=\"color: #ff0000;\"><strong> NEC + SAMSUNG + RC5<\/strong> <\/span>protokollerini anlatmaya \u00e7al\u0131\u015ft\u0131m. Fakat di\u011fer protokollere de bakt\u0131\u011f\u0131n\u0131zda, bu mant\u0131k ile onlar\u0131 da kolayl\u0131kla \u00e7\u00f6zebilece\u011finizi san\u0131yorum.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Program \u00f6rne\u011fi veremesem de, \u00f6rnek olarak SHARP ve SONY(SIRC ) protokollerinin sinyal \u015fekillerini buraya koyuyorum.<\/strong> <\/span><\/p>\n<p><strong><span style=\"color: #ff0000;\">SHARP Protokol\u00fc:<\/span><\/strong><br \/>\nProgramlar aras\u0131nda da internetten buldu\u011fum kaynaklar\u0131n internet adresleri de var. O adreslerden ayr\u0131nt\u0131l\u0131 bilgi edinebilirsiniz.<br \/>\n<strong>SHARP ile ilgili bilgiler :<\/strong><br \/>\nSharp IR protokol\u00fc hakk\u0131nda internette \u00e7ok az bilgi bulabildim. Bulduklar\u0131mda elimdeki sharp kumandayla uyu\u015fmad\u0131. Fakat elimdeki kumandan\u0131n osilaskop g\u00f6r\u00fcnt\u00fclerini ve bulabildi\u011fim bilgileri burada payla\u015f\u0131yorum.<br \/>\n<span style=\"color: #ff6600;\">\u00d6ncelikle protokol hakk\u0131nda bildiklerimi s\u0131ral\u0131yay\u0131m.<\/span><br \/>\nSinyal \u015fekli bu \u015fekilde oldu\u011fu belirtiliyor. Burada <span style=\"color: #ff6600;\">5 bit adres<\/span> ve <span style=\"color: #ff6600;\">8 bit komut<\/span> var ve <span style=\"color: #ff6600;\">LSB<\/span> y\u00f6n\u00fcne dikkat edin. Sinyalde HIGH seviyesinin b\u00fcy\u00fckl\u00fc\u011f\u00fcne g\u00f6re <span style=\"color: #ff6600;\">1<\/span> ve <span style=\"color: #ff6600;\">0<\/span> olarak de\u011ferlendiriliyor. Bundan dolay\u0131 LOW seviyesi \u00e7ok k\u00fc\u00e7\u00fck fakat sabit bir LOW s\u00fcresi olu\u015fturulmu\u015f. Sinyal resminden g\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere<span style=\"color: #ff6600;\"> 320us LOW<\/span> s\u00fcresi belirtilmi\u015f. Fakat elimdeki kumandada bu<span style=\"color: #ff6600;\"> 400us<\/span> civar\u0131nda g\u00f6r\u00fcl\u00fcyor. Ayr\u0131ca <span style=\"color: #ff6600;\">0<\/span> seviyesine ait s\u00fcre ise resimde <span style=\"color: #ff6600;\">680us<\/span> yaz\u0131yor fakat elimdeki kumandada <span style=\"color: #ff6600;\">1640us<\/span> g\u00f6r\u00fcn\u00fcyor. Ayr\u0131ca <span style=\"color: #ff6600;\">1<\/span> seviyesi ise <span style=\"color: #ff6600;\">1680us<\/span> g\u00f6r\u00fcl\u00fcyor, elimdeki kumandada <span style=\"color: #ff6600;\">3760us<\/span> g\u00f6r\u00fcl\u00fcyor. Belki de sadece k\u00fc\u00e7\u00fck b\u00fcy\u00fck diye d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fc i\u00e7in s\u00fcrede tolerans mevcut olabilir. Resimde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi 5 bit adres ve 8 bit kod var.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/SHARP_IR_CODE\/sharp_sinyal_internet.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/SHARP_IR_CODE\/sharp_sinyal_internet.JPG?raw=true\" alt=\"\" width=\"645\" height=\"184\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 645px; --smush-placeholder-aspect-ratio: 645\/184;\" \/><\/a><\/p>\n<figure style=\"width: 645px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/SHARP_IR_CODE\/signal\/down1_%C3%BC%C3%A7l%C3%BC_1.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/SHARP_IR_CODE\/signal\/down1_%C3%BC%C3%A7l%C3%BC_1.png?raw=true\" alt=\"\" width=\"645\" height=\"184\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 645px; --smush-placeholder-aspect-ratio: 645\/184;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000;\"><strong>Elimdeki kumandada Sinyal Bu \u015fekilde 3 l\u00fc olarak gelir. 1. ve 3. b\u00f6l\u00fcm birbiriyle ayn\u0131d\u0131r. 2. b\u00f6l\u00fcm ise 1ve 3. sinyallerin tersidir. Daha k\u0131sa g\u00f6r\u00fcnmesi bit say\u0131s\u0131n\u0131n azl\u0131\u011f\u0131ndan de\u011fil, 1 yerine 0 gelmesi ve s\u0131f\u0131r s\u00fcresinin 1 s\u00fcresinden k\u00fc\u00e7\u00fck olmas\u0131d\u0131r. 3 sinyal blo\u011fu aras\u0131ndaki 2 b\u00fcy\u00fck bo\u015fluk ise 20ms civar\u0131ndad\u0131r.\u00a0<\/strong><\/span><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/SHARP_IR_CODE\/signal\/UPDOWN_analiz.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/IRkumandalar\/SHARP_IR_CODE\/signal\/UPDOWN_analiz.JPG?raw=true\" alt=\"\" width=\"645\" height=\"184\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 645px; --smush-placeholder-aspect-ratio: 645\/184;\" \/><\/a><br \/>\nYukar\u0131daki resimde UP butonu ve DOWN butonunun kar\u015f\u0131la\u015ft\u0131r\u0131lmas\u0131 mevcuttur. \u0130nternetten al\u0131nan bilgi i\u00e7erisindeki sinyal ve bilgilerde START pals\u0131ndan bahsedilmiyor. <span style=\"color: #ff6600;\">Elimdeki kumandada 3 adet 0 pals\u0131ndan sonra ba\u015flad\u0131\u011f\u0131 a\u00e7\u0131k\u00e7a g\u00f6r\u00fcl\u00fcyor.<\/span> <span style=\"color: #ff6600;\"><strong>Bu sinyaller ALICI g\u00f6zden sonra al\u0131nd\u0131\u011f\u0131 i\u00e7in terslenmi\u015f sinyallerdir.\u00a0<\/strong><\/span>Sayfa i\u00e7erisinde 1. resim 2. resim ifadeleri, gelen 3 l\u00fc sinyalin,<br \/>\n1. s\u0131ras\u0131 2. s\u0131ras\u0131n\u0131 3. s\u0131ras\u0131n\u0131 temsil eder.<br \/>\nResmin sa\u011f taraf\u0131nda ki Binary kodlar a\u015fa\u011f\u0131dakilerdir. Bu renkli k\u0131s\u0131m START pals\u0131+ADRES+KOMUT \u015feklinde belirlenmi\u015ftir. Bunun d\u0131\u015f\u0131nda ise <span style=\"color: #ff6600;\">14 tane 1<\/span> ve <span style=\"color: #ff6600;\">2 tane 0<\/span> verilmi\u015ftir. ( 2. resim ise bu 1. resmin terslenmi\u015f (invert ) halidir. Sinyalin do\u011fru \u015fekilde iletilip iletilmedi\u011fi bu 2. resim yazan yerdeki terslenmi\u015f sinyal ile 1. resim sinyalinin kar\u015f\u0131la\u015ft\u0131r\u0131lmas\u0131yla yap\u0131l\u0131r. (Tersleme i\u015flemi 1 yerine 0 konulmas\u0131d\u0131r.)<br \/>\n<span style=\"color: #ff00ff;\">&#8230;&#8230;&#8230;&#8230;&#8230;..adres<\/span> <span style=\"color: #0000ff;\">komut<\/span><br \/>\n<strong><span style=\"color: #ff0000;\">DOWN1\u00a0<\/span><\/strong> \u00a0 \u00a0 <span style=\"color: #00ff00;\"><span style=\"color: #ff00ff;\">30<\/span>\u00a0<\/span> \u00a0 <span style=\"color: #0000ff;\">\u00a0125<\/span><br \/>\n<span style=\"color: #ff9900;\">000<\/span><span style=\"color: #ff00ff;\">01111<\/span><span style=\"color: #0000ff;\">10111110<\/span>1111111111111100 <span style=\"color: #ff6600;\">1. resim<\/span><br \/>\n<span style=\"color: #ff0000;\"><strong>UP1<\/strong> <\/span><br \/>\n<span style=\"color: #ff9900;\">000<\/span><span style=\"color: #ff00ff;\">01111<\/span><span style=\"color: #0000ff;\">01001110<\/span>1111111111111100 <span style=\"color: #ff6600;\">1. resim<\/span><br \/>\n<span style=\"color: #00ff00;\"><span style=\"color: #339966;\"><span style=\"color: #ff00ff;\"><span style=\"color: #00ff00;\">&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/span><\/span><span style=\"color: #ff00ff;\">30<\/span><span style=\"color: #339966;\">\u00a0 \u00a0\u00a0<\/span><\/span><\/span> <span style=\"color: #0000ff;\">114<\/span><\/p>\n<p>Yanlar\u0131nda yazd\u0131\u011f\u0131m kodlar sinyalden elle yaz\u0131lan kodlard\u0131r.<strong> <span style=\"color: #ff6600;\">Kumanda SHARP klima kumandas\u0131d\u0131r.\u00a0<\/span><\/strong><\/p>\n<p>Bununla birlikte Arduino k\u00fct\u00fcphanesini de kullanarak SHARP kumanday\u0131 okumaya \u00e7al\u0131\u015ft\u0131\u011f\u0131mda san\u0131r\u0131m ona ayarlanmad\u0131\u011f\u0131 i\u00e7in hatal\u0131 sonu\u00e7lar \u00fcretti. <span style=\"color: #ff6600;\">Fakat \u00fcretilen say\u0131lar yanl\u0131\u015f ve tutarl\u0131 olmad\u0131\u011f\u0131ndan bu k\u00fct\u00fcphane ile projelerinizde kullanamazs\u0131n\u0131z.<\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">Seri monit\u00f6r de g\u00f6sterilen hatal\u0131 sonu\u00e7lar. ( SHARP kumanda i\u00e7in)<\/span><\/strong><br \/>\n<span style=\"color: #ff6600;\">SADECE\u00a0 power ON OFF tu\u015fu kullan\u0131ld\u0131.<\/span><br \/>\n10001101111110010111111110001101<br \/>\n10010110101111001001010011011110<br \/>\n10100001110110101101001100111110<br \/>\n10010110101111001001010011011111<\/p>\n<p><strong><span style=\"color: #ff0000;\">Not:<\/span><\/strong> Elimdeki SHARP klima kumandas\u0131 bu sinyali \u00fcretiyor.<strong><span style=\"color: #ff0000;\"> Belki elinde SHARP ba\u015fka cihaz\u0131 olan vard\u0131r. Yapabilirseniz elinizdeki kumandan\u0131n sinyal \u015feklini bana iletir misiniz. <\/span><\/strong>SHARP IR protokol\u00fc hakk\u0131nda az kaynak vard\u0131 ve tam sonuca ula\u015fabilecek sinyal \u015fekli bulamad\u0131m. Kendi kumandama g\u00f6re program yapabilirim. Fakat birden fazla kumanday\u0131 kar\u015f\u0131la\u015ft\u0131rabilirsek iyi olur. Bu kaynak SHARP hakk\u0131nda g\u00fczel bir kaynak olabilir.<\/p>\n<p>SHARP i\u00e7in program \u00f6rne\u011fi yok. Fakat 32 bitlik bir say\u0131 oldu\u011fu belli ve NEC program\u0131na benziyor. Sadece START palsi yok gibi g\u00f6r\u00fcn\u00fcyor. Birinci\u00a0 gelen pals katar\u0131nda 400us olan LOW seviyesini kontrol etsek bu kez de sinyalin ortas\u0131ndan ba\u015flayabilir. Yukar\u0131da 3&#8217;\u00fc bir arada olan sinyal \u015feklindeki aralara dikkatinizi verin. Oradaki sinyallerin aras\u0131nda 20ms bo\u015fluk var. ilk 20ms geldi\u011finde bir kez daha 20ms aran\u0131r ve 3. sinyal katar\u0131nda kod yakalan\u0131r. 1. sinyal katar\u0131 ve 3. sinyal katar\u0131 birbirinin ayn\u0131d\u0131r.<br \/>\nYa da Low seviye g\u00f6r\u00fcld\u00fc\u011f\u00fc andan itibaren 32 de\u011fil 96 HIGH seviyesi haf\u0131zaya al\u0131n\u0131r ve analiz edilirken 20ms lik sinyaller ba\u015flang\u0131\u00e7 veya biti\u015f noktas\u0131 olacak \u015fekilde istedi\u011finiz sinyal katar\u0131ndan bilgileri alabilirsiniz.<br \/>\nTabii ki daha farkl\u0131 algoritmalar da d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>SONY(SIRC ) protokol\u00fc:<\/strong><\/span><\/p>\n<p>Elimde kumanda olmad\u0131\u011f\u0131 i\u00e7in link veriyorum. Buradan inceleyebilirsiniz.<br \/>\n<a href=\"https:\/\/www.sbprojects.net\/knowledge\/ir\/sirc.php\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>SONY SIRC Protokol\u00fc<\/strong><\/a><\/p>\n<p>==========================================================================<\/p>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"color: #ff0000;\">T\u00fcm programlar<\/span> <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/IRkumandalar\" target=\"_blank\" rel=\"noopener noreferrer\">bu linktedir.<\/a><\/strong> ( <span style=\"color: #ff6600;\">Programlar\u0131 yaz\u0131ya eklemedim \u00e7\u00fcnk\u00fc her biri yaz\u0131y\u0131 uzatacak ve okuyan\u0131 rahats\u0131z edecekti.<\/span> )<\/p>\n<p><span style=\"color: #ff0000;\"><b>Programlar\u0131n oldu\u011fu yerde osilaskoptan al\u0131nan sinyal \u015fekilleri de mevcuttur. Oradan osilaskop g\u00f6r\u00fcnt\u00fclerine bak\u0131p program\u0131n\u0131z\u0131 yapabilirsiniz.\u00a0<\/b><\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>NOT:<\/strong> <\/span>Sizlere kumandan\u0131n \u015fu tu\u015fu \u015fu koddad\u0131r diyemedi\u011fim i\u00e7in \u00f6rnek kod veremiyorum. \u00c7\u00fcnk\u00fc baz\u0131 tv modelleri 1 nolu tu\u015fa 1 kodunu verirken baz\u0131lar\u0131 farkl\u0131 kod verebiliyor. Bundan dolay\u0131 sizi yan\u0131lt\u0131r\u0131m. RC5 te veya di\u011fer protokollerde Hangi butona hangi kod verilece\u011fi yaz\u0131lm\u0131\u015f olsa da \u00fcreticiler buna %100 uymuyor diye g\u00f6rd\u00fcm. Bundan dolay\u0131 kendi kodunuzu kendiniz bulmal\u0131s\u0131n\u0131z. Sadece referans olarak size sinyal g\u00f6r\u00fcnt\u00fclerini veriyorum. Elimdeki her kumandan\u0131n sinyalini osilaskoptan al\u0131p yaz\u0131ya ekledim. <span style=\"color: #ff6600;\">Bu g\u00f6r\u00fcnt\u00fcler Al\u0131c\u0131 g\u00f6zden sonra arduinoya gelen sinyal g\u00f6r\u00fcnt\u00fcs\u00fcd\u00fcr. <span style=\"color: #ff0000;\">Orijinal sinyalin tersidir.<\/span>\u00a0<\/span><\/p>\n<p>\u015eayet anlat\u0131mlarda <span style=\"color: #ff0000;\"><strong>eksiklik veya yanl\u0131\u015fl\u0131k varsa,<\/strong><\/span> <span style=\"color: #ff0000;\"><strong>L\u00fctfen yorum b\u0131rak\u0131n<\/strong><\/span> ki sayfay\u0131 okuyanlar yanl\u0131\u015f bilgi edinmesin.<br \/>\nHatta SHARP protokol\u00fc konusunda yard\u0131mc\u0131 olacak web adresi bulabilirseniz, yorumlara ekleyebilirseniz. <span style=\"color: #ff0000;\"><strong>Yaz\u0131ya katk\u0131 sa\u011flam\u0131\u015f olursunuz<\/strong><\/span>.<\/p>\n<p><strong><span style=\"color: #ff0000;\">NEC protokol video:<\/span><\/strong><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/uV3TC6s6XfQ\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"color: #ff0000;\">SAMSUNG protokol video<\/span><\/strong><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/HrkMuGTK-vI\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong><span style=\"color: #ff0000;\">RC5 protokol video.<\/span><\/strong><\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/BOCoHUagp5k\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong><span style=\"color: #ff0000;\">Protocol \u00f6\u011frenme video :<\/span><\/strong><iframe data-src=\"https:\/\/www.youtube.com\/embed\/pNfVYOmNijQ\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong><span style=\"color: #ff0000;\">PIC devre+proteus RC5 protokol video :<\/span><\/strong><iframe data-src=\"https:\/\/www.youtube.com\/embed\/1MlkAMj6VUw\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131mda, IR uzaktan kumanda kodlar\u0131n\u0131 kolay bir \u015fekilde nas\u0131l bulabilece\u011finizi anlatt\u0131m. Arduino kullananlar bilirler. IR k\u00fct\u00fcphanesi vard\u0131r ve o program\u0131 kulland\u0131klar\u0131nda, kumanda tu\u015funun kodunu seri monit\u00f6rde g\u00f6r\u00fcrler. Zaten kolayca&#8230; <\/p>\n","protected":false},"author":1,"featured_media":1975,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[34],"class_list":["post-1972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino_pic_digerleri","tag-arduino_pic_digerleri"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=1972"}],"version-history":[{"count":11,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1972\/revisions"}],"predecessor-version":[{"id":1984,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/1972\/revisions\/1984"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/1975"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=1972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=1972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=1972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}