{"id":464,"date":"2018-09-28T20:14:08","date_gmt":"2018-09-28T20:14:08","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=464"},"modified":"2023-04-07T09:32:09","modified_gmt":"2023-04-07T06:32:09","slug":"ds18b20-isi-sensoru-orneklerle-detayli-anlatim-pic-ve-arduino","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2018\/09\/28\/ds18b20-isi-sensoru-orneklerle-detayli-anlatim-pic-ve-arduino\/","title":{"rendered":"DS18B20 SICAKLIK SENS\u00d6R\u00dc \u00d6RNEKLERLE DETAYLI ANLATIM. (PIC VE ARDUINO)"},"content":{"rendered":"<p>Bu sens\u00f6r hakk\u0131nda bir \u00e7ok yerde bilgiler bulabilirsiniz. Baz\u0131 yerlerde one wire k\u00fct\u00fcphanesi kullan\u0131l\u0131yor, baz\u0131 yerler de ise sens\u00f6r komutlar\u0131 bile k\u00fct\u00fcphane \u015fekline d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f. Yani iyice kolay\u0131na ka\u00e7\u0131lm\u0131\u015f. Bu tip k\u00fct\u00fcphaneleri kullanmak size pek bir \u015fey kazand\u0131rmaz. \u00c7\u00fcnk\u00fc sens\u00f6r de\u011fi\u015fti\u011finde siz de yeni sens\u00f6r i\u00e7in k\u00fct\u00fcphane aray\u0131\u015f\u0131na girersiniz. Bundan dolay\u0131 a\u015fa\u011f\u0131daki gibi incelemek, di\u011fer one wire ( tek kablo haberle\u015fme ) sistemi kullanan cihazlar\u0131 anlaman\u0131z\u0131 sa\u011flayacakt\u0131r. Bu Farkl\u0131 anlat\u0131m ile benzer sistemleri kendiniz de \u00e7\u00f6zebileceksiniz. DS18B20 pop\u00fcler, fakat farkl\u0131 bir sens\u00f6r kullanmak isteseniz hemen k\u00fct\u00fcphane aramaya ba\u015flayacaks\u0131n\u0131z ve ihtiyac\u0131n\u0131z olan sens\u00f6r\u00fcn k\u00fct\u00fcphanesi yoksa, belki de kullanmaktan vazge\u00e7ebileceksiniz.<\/p>\n<p>Bu konuyu anlad\u0131ktan sonra, benzer sens\u00f6rleri de DATASHEET dedi\u011fimiz teknik detaylar\u0131na bakarak k\u00fct\u00fcphane olmaks\u0131z\u0131n kullanabilece\u011finizi d\u00fc\u015f\u00fcn\u00fcyorum.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-473 lazyload\" style=\"--smush-placeholder-width: 350px; --smush-placeholder-aspect-ratio: 350\/281;line-height: 28.0007px;\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/temperature-sensor-ds18b20-to-92-littlecraft-1612-12-littlecraft@3.jpg\" alt=\"\" width=\"350\" height=\"281\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/DS18B20_SICAKLIK_one_wire\/ds18b20.pdf\" target=\"_blank\" rel=\"noopener\"><strong>DS18B20 PDF DATASHEET<\/strong><\/a><br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/DS18B20_SICAKLIK_one_wire\/ds18b20_html_datasheet.rar\" target=\"_blank\" rel=\"noopener\"><strong>DS18B20 HTML DATASHEET<\/strong><\/a>\u00a0 <span style=\"color: #ff9900;\">\u00a0<strong>( HTML dosyas\u0131n\u0131 google translate ile T\u00fcrk\u00e7eye \u00e7evirebilirsiniz. Tam T\u00fcrk\u00e7e olmasa da yine de faydas\u0131 olacakt\u0131r.)<\/strong><\/span><\/p>\n<p>Sens\u00f6r, 2 farkl\u0131 ba\u011flant\u0131 \u015fekline sahip. Birincisi parasitic power mode ( Bu mod \u015femada g\u00f6r\u00fcld\u00fc\u011f\u00fc \u015fekilde ba\u011fland\u0131\u011f\u0131ndan, ba\u015flang\u0131\u00e7 enerjisini DATA ucundan al\u0131r, i\u00e7erisindeki kondansat\u00f6r\u00fc \u015farj eder, sonras\u0131nda ise ald\u0131\u011f\u0131 \u015farj\u0131 kullanarak, hem s\u0131cakl\u0131k de\u011ferlerini g\u00f6nderir, hem de i\u00e7erisindeki elektrik kesildi\u011finde kaybolabilecek de\u011ferleri kendi eeprom&#8217;una kay\u0131t etmekte kullan\u0131r. Bu \u015fekilde ba\u011flant\u0131 tekli kullan\u0131mda sorun<\/p>\n<p><img decoding=\"async\" class=\"alignleft wp-image-466 lazyload\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/132;line-height: 28.0007px;\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/parasitic.png\" alt=\"\" width=\"150\" height=\"132\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/p>\n<p>yaratmasa da \u00e7oklu sens\u00f6r kullan\u0131m\u0131nda sorunlar yaratabilece\u011finden, \u00c7oklu sistemlerde harici ba\u011flant\u0131 kullan\u0131lmas\u0131 gerekti\u011fi s\u00f6yleniyor.<\/p>\n<p>ikincisi ise Harici ba\u011flant\u0131d\u0131r. Bu ba\u011flant\u0131da ise Vdd ucuna +3V-5V ba\u011flan\u0131r.<br \/>\nHer iki sistemde de PULL UP direnci ihmal edilmemelidir. <span style=\"color: #ff9900;\"><strong>Pull up direnci 1,5ma ak\u0131mdan daha fazla \u00e7ekilmeyecek \u015fekilde hesaplanabilir.<\/strong><\/span><br \/>\n<img decoding=\"async\" class=\"aligncenter wp-image-468 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/DS18B20-Wiring.jpg\" alt=\"\" width=\"250\" height=\"198\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 250px; --smush-placeholder-aspect-ratio: 250\/198;\" \/>Bu sens\u00f6rler \u00e7oklu kullan\u0131m olarak kullan\u0131l\u0131r demi\u015ftik. A\u015fa\u011f\u0131daki devrede oldu\u011fu gibi \u00e7oklu ba\u011flant\u0131 yap\u0131l\u0131r. DATA ucu ile tek bir haberle\u015fme hatt\u0131ndan kontrol edilir.<br \/>\n<strong>Peki mikroi\u015flemciler bunlar\u0131 nas\u0131l ay\u0131rt edecekler?<\/strong><br \/>\nBu tip one wire haberle\u015fme kullanan sistemlerde,\u00a0<strong>ROM CODE<\/strong> denilen bir kod sistemi vard\u0131r. <span style=\"color: #ff9900;\"><strong>Tekli kullan\u0131mda rom kodu kullanmak zorunda de\u011filsiniz. Fakat \u00e7oklu kullan\u0131mda kullanman\u0131z gerekecektir.<\/strong><\/span> Mikroi\u015flemci, rom kodu olmazsa \u00a0hangi sens\u00f6rle haberle\u015fece\u011fini bildiremez. Ba\u011fl\u0131 cihazlarda kendisinin cevap verip veremeyece\u011fini bilemez.<br \/>\nROM kod nas\u0131l \u00f6\u011frenilir. Bu da Datasheet te a\u00e7\u0131kland\u0131\u011f\u0131 gibi, belirli bir kodun sens\u00f6re g\u00f6nderilmesiyle m\u00fcmk\u00fcnd\u00fcr. <strong>Sens\u00f6r, i\u00e7erisindeki ROM kodunu size yollar.<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-469 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/ds18b20-connect2.png\" alt=\"\" width=\"532\" height=\"218\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 532px; --smush-placeholder-aspect-ratio: 532\/218;\" \/><\/p>\n<p>Buraya kadar sens\u00f6r hakk\u0131nda bilgiler verdik. Burada \u00f6nemli rol oynayan k\u0131s\u0131m ONE WIRE olarak bilinen tek kablodan haberle\u015fmedir.<br \/>\n<strong>Bu sisteme bir g\u00f6z atal\u0131m.<\/strong><br \/>\nTek kablo haberle\u015fmesinde \u00f6ncelikle MASTER ( Mikroi\u015flemci) hatt\u0131 resetler. Bu hatta ba\u011fl\u0131 olan sens\u00f6rlere haberle\u015fmeye ge\u00e7ilece\u011fini bildirir. Daha sonra, haberle\u015fme ba\u015flang\u0131\u00e7 kodu verilir ve hatta ba\u011fl\u0131 olan sens\u00f6r hatt\u0131 haz\u0131r eder. Sonras\u0131nda master \u00f6nceden belirlenmi\u015f kodlar\u0131 bildirerek kar\u015f\u0131dan bilgi ister ve dinlemeye ge\u00e7er.<br \/>\nBu haberle\u015fmede bit ve byte \u015feklinde bilgiler g\u00f6nderilir ve al\u0131n\u0131r.<br \/>\nAra\u015ft\u0131rmalar\u0131mda Arduino i\u00e7in birden fazla One Wire k\u00fct\u00fcphanesi oldu\u011funu g\u00f6rd\u00fcm. Buna dikkat etmeniz gerekir diye d\u00fc\u015f\u00fcn\u00fcyorum.<br \/>\nBenim kulland\u0131\u011f\u0131m k\u00fct\u00fcphane bu linktedir. Zaten kendi programlar\u0131m\u0131 da buradaki example dizinindeki program\u0131 de\u011fi\u015ftirerek yapt\u0131m.<br \/>\n<a href=\"https:\/\/github.com\/safaka123\/OneWire\" target=\"_blank\" rel=\"noopener\"><strong>Orjinal k\u00fct\u00fcphane yeri buras\u0131d\u0131r.<\/strong><\/a>\u00a0 Zaman i\u00e7erisinde de\u011fi\u015fmesi m\u00fcmk\u00fcn olaca\u011f\u0131ndan benim kulland\u0131\u011f\u0131m programlar i\u00e7in kullan\u0131lan versiyonu ise <strong><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/DS18B20_SICAKLIK_one_wire\/OneWire-master.zip\" target=\"_blank\" rel=\"noopener\">bu linktedir.<\/a><\/strong><\/p>\n<p>Bu sistemde, sadece s\u0131cakl\u0131k sens\u00f6rleri yoktur. Bir \u00e7ok tek kablo haberle\u015fmesini kullanan sistemler olabilir. Hepsi de benzer haberle\u015fmeyi kulland\u0131\u011f\u0131ndan ayn\u0131 hatta ba\u011flanabilir.<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-472 alignleft lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/onewireuygulama.png\" alt=\"\" width=\"315\" height=\"94\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 315px; --smush-placeholder-aspect-ratio: 315\/94;\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong><a href=\"https:\/\/www.analog.com\/en\/product-category\/ibutton-and-memory.html\" target=\"_blank\" rel=\"noopener\">Tek kablo haberle\u015fmesini kullanan \u00fcr\u00fcnlerden baz\u0131lar\u0131.<\/a><\/strong><\/p>\n<p>Bu sistemlerden tan\u0131d\u0131k gelebilecek<strong> ibutton<\/strong> denilen \u00fcr\u00fcnlerdir.<br \/>\n<img decoding=\"async\" class=\"wp-image-474 alignleft lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/ibutton.jpg\" alt=\"\" width=\"100\" height=\"101\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 100px; --smush-placeholder-aspect-ratio: 100\/101;\" \/>Personel giri\u015f \u00e7\u0131k\u0131\u015f gibi sistemlerde kullan\u0131lmaktad\u0131r. Daha \u00f6nce istanbul belediye otob\u00fcslerinde kullan\u0131yordu diye biliyorum. Sonradan barkod ve Rfid gibi sistemler geldi\u011finden belki personel sistemlerinde kullan\u0131m\u0131 azalm\u0131\u015ft\u0131r.<\/p>\n<p><strong>Art\u0131k sistemin \u00e7al\u0131\u015fmas\u0131na ge\u00e7ebiliriz.<\/strong><br \/>\nDS18B20 sens\u00f6r\u00fcn\u00fcn s\u0131cakl\u0131k i\u00e7in g\u00f6nderdi\u011fi byte 2 tanedir. 16 bit oldu\u011fundan Highbyte ve lowbyte olarak 2 byte bilgi g\u00f6nderecektir. Bu iki byte a\u015fa\u011f\u0131daki dizilimdedir.<br \/>\nLow byte&#8217;\u0131n bit0-bit3 aras\u0131ndakiler, ondal\u0131k k\u0131s\u0131mlard\u0131r. Bir alt\u0131ndaki tabloda g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi en k\u00fc\u00e7\u00fck par\u00e7a 0.0625 derecedir. Sistem bunun \u00fczerine kurulu olup 0.0625 in katlar\u0131 olarak devam eder. Bit4-bit10 aras\u0131 (ki buradaki bit8-bit10 Highbyte k\u0131sm\u0131ndad\u0131r. ) s\u0131cakl\u0131k de\u011ferinin tamsay\u0131 k\u0131sm\u0131n\u0131 verir. S yazan bit11-bit15 ise i\u015faret bitidir. Bu bitler derece <span style=\"color: #ff0000;\"><strong>&#8211;<\/strong><\/span> oldu\u011funda 1 de\u011ferini al\u0131r.<br \/>\n<strong>00000111<\/strong> <strong>11111111<\/strong> de\u011feri +127.93C derece de\u011ferine kar\u015f\u0131l\u0131k gelir.<br \/>\nsistem +127 C derecede ba\u015flar , 0 a ula\u015f\u0131r ve -55 e kadar gider. Fakat <span style=\"color: #ff0000;\"><strong>&#8211;<\/strong> <\/span>de\u011ferlere geldi\u011finde i\u015faret bitleri (11111) bu de\u011feri ald\u0131\u011f\u0131ndan hesaplamada de\u011ferin once bit11-bit15 aras\u0131n\u0131 s\u0131f\u0131rlamam\u0131z gerekecektir. sonrada say\u0131n\u0131n t\u00fcmleyenini (complementer) al\u0131p ger\u00e7ek de\u011feri buluruz.<br \/>\n<strong>Arduino program\u0131nda hesaplama sistemi bu \u015fekildedir.\u00a0<\/strong><br \/>\n<strong>PIC i\u015flemci program\u0131nda ise<\/strong> farkl\u0131 bir hesaplama kullan\u0131l\u0131yor. Buradaki 625 say\u0131s\u0131 0.0625 in katlar\u0131 olmas\u0131ndan dolay\u0131 kullan\u0131lm\u0131\u015ft\u0131r.<br \/>\n\u0130lk okunan de\u011fer<strong> 85C<\/strong> dereceyi g\u00f6sterir \u00e7\u00fcnk\u00fc sens\u00f6r <strong>power on reset<\/strong> yap\u0131ld\u0131\u011f\u0131ndan buna ayarlanm\u0131\u015ft\u0131r. Sonras\u0131nda ise normal de\u011ferler okunacakt\u0131r.<br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-476 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/isigosterge.jpg\" alt=\"\" width=\"687\" height=\"448\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 687px; --smush-placeholder-aspect-ratio: 687\/448;\" \/>G\u00f6rebilece\u011fimiz bilgiler ds18b20 nin registerlerinde saklan\u0131r.<br \/>\nROM CODE figure 8 dedir. CRC olan do\u011frulama kodudur 1 byte, daha sonra 6 byte rom code daha sonra ise,1 byte family code denilen ds18b20 yi tan\u0131mlayan koddur.<br \/>\nFigure-9 da ise SICAKLIK de\u011ferleri i\u00e7in kullan\u0131lan registerler g\u00f6r\u00fclmektedir. ilk 2 register SICAKLIK de\u011ferlerini tutar. 3. ve 4. register ise s\u0131cakl\u0131k limitini ayarlayabilece\u011fimiz registerlerdir. Bu registerlere yazd\u0131\u011f\u0131m\u0131z de\u011ferler alt ve \u00fcst s\u0131cakl\u0131k s\u0131n\u0131rlar\u0131 belirler ve sens\u00f6r bu s\u0131n\u0131rlara girdi\u011finde alarm verir.<br \/>\nDiyeceksiniz ki zaten mikroi\u015flemci bu s\u0131n\u0131rlar\u0131 biliyor. O s\u0131n\u0131rlara g\u00f6re kendisi karar verir. NEDEN bu s\u0131n\u0131rlar\u0131 kay\u0131t ediyoruz. Tek bir sens\u00f6r koyarsan\u0131z bunu mikroi\u015flemcide halledebilirsiniz. <strong>Fakat onlarcas\u0131n\u0131 ba\u011flad\u0131\u011f\u0131n\u0131zda<\/strong> her birine g\u00f6re program yazman\u0131z gerekir. Bundan dolay\u0131 her sens\u00f6re s\u0131cakl\u0131k limitleri kay\u0131t edilirse alarm bitini okumak yetecektir. <strong>Bu durum arduino program\u0131nda g\u00f6sterilmi\u015ftir.<br \/>\n<\/strong><br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-477 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/registers.jpg\" alt=\"\" width=\"686\" height=\"373\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 686px; --smush-placeholder-aspect-ratio: 686\/373;\" \/>5. register ise config\u00fcrasyon registeridir. Bunun g\u00f6revi de a\u015fa\u011f\u0131daki tabloda a\u00e7\u0131klanm\u0131\u015ft\u0131r. <strong>Bu da kullan\u0131c\u0131 taraf\u0131ndan de\u011fi\u015ftirilebilir.<\/strong><br \/>\n<img decoding=\"async\" class=\"aligncenter size-full wp-image-479 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/config.jpg\" alt=\"\" width=\"687\" height=\"247\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 687px; --smush-placeholder-aspect-ratio: 687\/247;\" \/>Config registeri s\u0131cakl\u0131k de\u011ferinin kullan\u0131c\u0131ya bildirilmeden \u00f6nce ne kadar s\u00fcrede d\u00f6n\u00fc\u015ft\u00fcr\u00fclece\u011fini belirler. 9-12 bit olarak istedi\u011finizi se\u00e7ebilirsiniz. Varsay\u0131lan olarak 12 bit ayarlanm\u0131\u015ft\u0131r. \u00c7oklu sistemlerde bu zamana ihtiya\u00e7 olacakt\u0131r.<br \/>\n<span style=\"color: #ff0000;\"><strong>Not:<\/strong><\/span> <strong>register 2,3,4<\/strong> s\u0131cakl\u0131k limitleri ve config registeri, g\u00fc\u00e7 kesildi\u011finde silinir. Bundan dolay\u0131 bu de\u011ferleri y\u00fckledikten sonra sens\u00f6r i\u00e7erisindeki eepprom&#8217;a kaydedip de\u011fi\u015fmesini \u00f6nleyebiliriz.<\/p>\n<p>DS18B20 sens\u00f6rlerini kullanmadan \u00f6nce rom kod\u00a0<strong>belirleme ve s\u0131cakl\u0131k limitleri yazma program\u0131 yap\u0131larak \u00e7al\u0131\u015ft\u0131r\u0131labilir.<\/strong>\u00a0ROM kodunu \u00f6\u011frenebiliriz ayn\u0131 zamanda s\u0131cakl\u0131k limitlerini eeproma kay\u0131t edebiliriz. Ya da Arduino program\u0131nda oldu\u011fu gibi ilk \u00e7al\u0131\u015ft\u0131rmada bir switch koyup sens\u00f6r\u00fcn rom kodunu \u00f6\u011frenerek gerekli de\u011fi\u015fiklikleri yapabilirsiniz.<br \/>\n<strong>Arduino program\u0131 4 adettir.<\/strong><br \/>\n<strong>1.<\/strong> program : MUlti dedi\u011fimiz \u00e7oklu sens\u00f6r kullan\u0131m\u0131<br \/>\n<strong>2.<\/strong> program Rom koduna ihtiya\u00e7 olmadan tek sens\u00f6r kullanma.(skip rom)<br \/>\n<strong>3.<\/strong> program (ardu_single_dene) \u00a0bir \u00e7ok \u00f6zelli\u011fi b\u00fcnyesinde bar\u0131nd\u0131ran programd\u0131r.<br \/>\n(Sens\u00f6r\u00fcn haberle\u015fme olarak kulland\u0131\u011f\u0131 kodlar\u0131 kullan\u0131r.<br \/>\n<strong>4.<\/strong> program : SEARCH ROM program\u0131d\u0131r.<br \/>\nPIC program\u0131 ise \u00a0rom kodu olmadan \u00e7al\u0131\u015fmas\u0131n\u0131 g\u00f6stermek (single skip rom) i\u00e7in yap\u0131ld\u0131. Di\u011fer program ise Multi dedi\u011fimiz \u015fekilde tek hattan 2 sens\u00f6r\u00fcn kullan\u0131m\u0131n\u0131 g\u00f6sterir.<br \/>\nPICBASIC kullan\u0131larak ve 12F683 Kullan\u0131larak DS18B20 sens\u00f6r\u00fcn\u00fcn kontrol edilmesini g\u00f6steriyor.<br \/>\n<span style=\"color: #ff9900;\"><strong>( Datasheet teki kodlar\u0131 kullanarak PIC kodlar\u0131 geli\u015ftirilebilir.)<\/strong><\/span><\/p>\n<h3><span style=\"color: #ff9900;\"><strong>Sens\u00f6rle haberle\u015fmek i\u00e7in kulland\u0131\u011f\u0131m\u0131z komutlar.<\/strong><\/span><\/h3>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-482 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/kodlar.jpg\" alt=\"\" width=\"686\" height=\"419\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 686px; --smush-placeholder-aspect-ratio: 686\/419;\" \/><span style=\"color: #0000ff;\"><strong>44h :<\/strong><\/span> S\u0131cakl\u0131k kullan\u0131c\u0131ya gitmeden \u00f6nce kendi i\u00e7erisinde d\u00f6n\u00fc\u015ft\u00fcrme i\u015flemi yap\u0131l\u0131r. Yukar\u0131daki bilgilerden hat\u0131rlarsan\u0131z config registerinde bu d\u00f6n\u00fc\u015ft\u00fcrme i\u015fleminin zaman\u0131n\u0131 ayarlayabiliyorduk. Bu \u015fekilde kendi i\u00e7erisinde haz\u0131r oldu\u011funda,<br \/>\n<span style=\"color: #0000ff;\"><strong>BEh<\/strong> <\/span>kodu ile ilk 9 registeri okuyoruz. Bu registerlerden ilk 2 tanesini <span style=\"color: #0000ff;\">44h<\/span> ile d\u00f6n\u00fc\u015ft\u00fcrd\u00fc\u011f\u00fcm\u00fcz s\u0131cakl\u0131k de\u011ferleridir. Bu de\u011ferleri alarak, s\u0131cakl\u0131k de\u011ferini hesapl\u0131yoruz.<br \/>\n<span style=\"color: #0000ff;\"><strong>4Eh :<\/strong><\/span> registerlerden 2. , 3. ve 4. registeri kendimiz de\u011fi\u015ftirebiliyorduk. Bu kod ile de\u011fi\u015ftirece\u011fimiz de\u011ferleri g\u00f6nderiyoruz.<br \/>\n<span style=\"color: #0000ff;\"><strong>48h :<\/strong> <\/span>Bu kod ile g\u00f6nderdi\u011fimiz datalar, g\u00fc\u00e7 kesildi\u011finde silinmesin diye sens\u00f6r\u00fcn EEPROM&#8217;una kay\u0131t ediyoruz.<br \/>\n<span style=\"color: #0000ff;\"><strong>B8h :<\/strong><\/span> Bu kod ile EEPROM&#8217;a kay\u0131t etti\u011fimiz de\u011ferleri, tekrar kullanaca\u011f\u0131m\u0131z silinebilir haf\u0131zaya al\u0131yoruz.<br \/>\n<span style=\"color: #0000ff;\"><strong>B4h :<\/strong><\/span> G\u00fc\u00e7 durumunu mikroi\u015flemciye bildirmesini sa\u011fl\u0131yoruz. 1 bit ile bunu bildirir.<br \/>\n( programda yer al\u0131yor fakat \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ger\u00e7ek devrede kontrol edemedim. yeterli ak\u0131m gelmedi\u011finde 0 olarak d\u00f6n\u00fcyor. San\u0131r\u0131m bu daha \u00e7ok parasitic mode da ihtiya\u00e7 duyuluyor.)<br \/>\n<span style=\"color: #0000ff;\"><strong>33h :<\/strong><\/span> Bu de\u011fer ise 8 byte l\u0131k Rom code okunmas\u0131 i\u00e7in verilen komuttur. Ben bir anahtar koyup bu anahtara enerji vermeden bast\u0131\u011f\u0131mda bu kodun okunmas\u0131 i\u00e7in alt program ekledim.<br \/>\n<span style=\"color: #0000ff;\"><strong>ECh :<\/strong> <\/span>Bu kod ise ALARM durumu bitini okumam\u0131z\u0131 sa\u011fl\u0131yor. Ben programda byte olarak okudu\u011fum i\u00e7in byte de\u011ferini ekrana yazd\u0131m. \u0130sterseniz sizler bit de\u011ferini de okuyabilirsiniz.<br \/>\n<span style=\"color: #0000ff;\"><strong>CCh :<\/strong> <\/span>Skip ROM bu kod ile rom kodu olmadan tek sens\u00f6r\u00fc kontrol edebilirsiniz.<br \/>\n<span style=\"color: #0000ff;\"><strong>55h :<\/strong> <\/span>\u00a0MATCH ROM. Bu komutla master cihaz rom kodunu slave cihazlara yollar ve hangisi uyu\u015fmu\u015fsa o devreye girer di\u011ferleri susar ve reset palsinin gelmesini bekler.<br \/>\n<span style=\"color: #0000ff;\"><strong style=\"line-height: 1.6471;\">F0h :<\/strong><\/span><span style=\"line-height: 1.6471;\"> Search ROM. Bu hattaki b\u00fct\u00fcn sens\u00f6rleri belirlemek i\u00e7in bir algoritma kullan\u0131r ve Rom kodlar\u0131n\u0131 \u00f6\u011frenerek master taraf\u0131ndan komut yollanabilmesini sa\u011flar. Sistem a\u00e7\u0131ld\u0131\u011f\u0131nda hatt\u0131 kontrol eder. Fakat bu i\u015flem sens\u00f6r ne kadar \u00e7ok ise o kadar uzun s\u00fcrer. Yine de a\u015fa\u011f\u0131daki yaz\u0131da belirtildi\u011fi gibi saniyede 75 farkl\u0131 sens\u00f6r\u00fc belirleyebiliyormu\u015f. <span style=\"color: #ff9900;\"><strong>\u00d6rnek programlarda bunu daha iyi anlayabileceksiniz.\u00a0<\/strong><\/span><\/span><\/p>\n<p><strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/DS18B20_SICAKLIK_one_wire\/search_rom.txt\" target=\"_blank\" rel=\"noopener\">SEARCH ROM ALGOR\u0130TMASI<\/a><\/span><\/strong>\u00a0<strong><span style=\"color: #ff9900;\">T\u00fcrk\u00e7e a\u00e7\u0131klamas\u0131.<\/span><\/strong><\/p>\n<p><strong>Not:<\/strong> <strong>Bunun yerine sens\u00f6r say\u0131s\u0131 az ise kendiniz rom kodlar\u0131n\u0131 \u00f6\u011frenip s\u0131cakl\u0131k limitlerini eeprom&#8217;a kay\u0131t ederek kolayl\u0131kla kullanabilirsiniz. Fakat hatta \u00e7ok fazla sens\u00f6r ya da one wire kullanan cihaz varsa bu komutu kullanman\u0131z fayda sa\u011flayacakt\u0131r. \u00c7\u00fcnk\u00fc bunu yaparken rom kodun i\u00e7erisindeki family kod k\u0131sm\u0131na bakarak hangi cihazlar\u0131n hatta bulundu\u011funu da kontrol edebilirsiniz.\u00a0<\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\">\u015eemalar:\u00a0<\/span><br \/>\n<img decoding=\"async\" class=\"size-full wp-image-486 alignleft lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/images.jpg\" alt=\"\" width=\"296\" height=\"170\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 296px; --smush-placeholder-aspect-ratio: 296\/170;\" \/><\/strong><\/p>\n<p><strong><img decoding=\"async\" class=\"wp-image-487 alignright lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/FVUSWJ1ISCBT0I8.LARGE_.jpg\" alt=\"\" width=\"300\" height=\"178\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/178;\" \/><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"color: #ff0000;\">T\u00dcM PROGRAMLARA<\/span> <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/DS18B20_SICAKLIK_one_wire\" target=\"_blank\" rel=\"noopener\">BURADAN ULA\u015eAB\u0130L\u0130RS\u0130N\u0130Z.<\/a><\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>DS18B20 sens\u00f6r\u00fcn\u00fcn detayl\u0131 anlat\u0131m video :<\/strong><\/span><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/tVPRPBMyrjc?list=PLjBkinzGpcQJJbyU7gJ4ulWnY_ftOh4Ly\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><a href=\"https:\/\/www.youtube.com\/channel\/UCTPi5ePzNWnvNQ99DoJnlYA\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignleft wp-image-506 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/youtube-abone-ol.png\" alt=\"\" width=\"150\" height=\"40\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/40;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>DS18B20 Sens\u00f6r\u00fcn\u00fcn Arduino ile \u00e7oklu kullan\u0131m\u0131n\u0131 anlatan video :<\/strong><\/span><br \/>\n<iframe data-src=\"https:\/\/www.youtube.com\/embed\/TJptuZ39W0M\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu sens\u00f6r hakk\u0131nda bir \u00e7ok yerde bilgiler bulabilirsiniz. Baz\u0131 yerlerde one wire k\u00fct\u00fcphanesi kullan\u0131l\u0131yor, baz\u0131 yerler de ise sens\u00f6r komutlar\u0131 bile k\u00fct\u00fcphane \u015fekline d\u00f6n\u00fc\u015ft\u00fcr\u00fclm\u00fc\u015f. Yani iyice kolay\u0131na ka\u00e7\u0131lm\u0131\u015f. Bu tip&#8230; <\/p>\n","protected":false},"author":1,"featured_media":468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,1,3,5,11],"tags":[],"class_list":["post-464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-esp","category-karisik","category-pic","category-raspi","category-robo"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/464","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=464"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/464\/revisions"}],"predecessor-version":[{"id":2553,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/464\/revisions\/2553"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/468"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}