{"id":2061,"date":"2021-03-30T13:55:44","date_gmt":"2021-03-30T10:55:44","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=2061"},"modified":"2021-08-20T20:58:02","modified_gmt":"2021-08-20T17:58:02","slug":"dijital-gpio-pimlerinin-calismasini-anlamak-ve-simulasyon-da-gormek","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2021\/03\/30\/dijital-gpio-pimlerinin-calismasini-anlamak-ve-simulasyon-da-gormek\/","title":{"rendered":"Dijital GPIO pimlerinin \u00e7al\u0131\u015fmas\u0131n\u0131 anlamak ve sim\u00fclasyon da g\u00f6rmek"},"content":{"rendered":"<p>Bu yaz\u0131da Arduino, PIC ve di\u011fer Mikro denetleyici devrelerinde kulland\u0131\u011f\u0131m\u0131z, (General-purpose input\/output = GPIO ) Genel ama\u00e7l\u0131 giri\u015f \/ \u00e7\u0131k\u0131\u015f portlar\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 anlamaya \u00e7al\u0131\u015faca\u011f\u0131z.<\/p>\n<p>\u00d6ncelikle neden bunu anlayal\u0131m ki diyenleri ayd\u0131nlatmal\u0131y\u0131m. Bu tip entegrelerde GPIO pimleri birden fazla kullan\u0131m\u0131 olan pimlerdir. Her kullan\u0131m i\u00e7in arka planda <span style=\"color: #ff6600;\">Register ( Yazma\u00e7 )<\/span> sistemleri kullan\u0131l\u0131r. Bu register i\u00e7eri\u011findeki bir bit ya da birka\u00e7 bit port pimine ait g\u00f6revleri d\u00fczenleyecektir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/PORTB_register.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\/GPIO_mikro\/PORTB_register.JPG?raw=true\" alt=\"\" width=\"724\" height=\"209\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 724px; --smush-placeholder-aspect-ratio: 724\/209;\" \/><\/a><br \/>\nYukar\u0131daki tablo PIC entegresinin, PORTB i\u00e7in registerlerini g\u00f6sterir.<br \/>\n\u0130lk sat\u0131rdaki register i\u00e7eri\u011fi, PORTB nin de\u011ferlerini g\u00f6sterir.<br \/>\n2. Sat\u0131rdaki register ise PORTB nin hangi bitinin giri\u015f ya da \u00e7\u0131k\u0131\u015f oldu\u011funu belirler.<br \/>\n3. Sat\u0131rdaki register ise PORTB pull up direnci devreye al\u0131n\u0131p al\u0131nmamas\u0131 i\u00e7indir.( Ve ba\u015fka \u00f6zellikler i\u00e7indir)<br \/>\n<span style=\"color: #ff6600;\">Baz\u0131 entegrelerde Pull up devreye alma yoktur.<\/span> Bundan dolay\u0131 bu tip entegrelerde kendimiz d\u0131\u015far\u0131dan<span style=\"color: #ff6600;\"> pull up<\/span> direnci koyar\u0131z.<\/p>\n<p>\u015eayet k\u00fct\u00fcphane kullan\u0131yorsan\u0131z, bu tip register ayarlar\u0131n\u0131 yapman\u0131za gerek yok. Arduinodaki gibi PINMODE komutunu kullanmakla, zaten portun giri\u015f, \u00e7\u0131k\u0131\u015f oldu\u011funu belirlemi\u015f oluyorsunuz. Register&#8217;e sizin ad\u0131n\u0131za program taraf\u0131ndan yaz\u0131l\u0131r.<\/p>\n<p>Bu tip portlar Mosfetli ya da kontroll\u00fc buffer devreleri taraf\u0131ndan yap\u0131labilir. Fakat \u015funu da <span style=\"color: #ff6600;\">unutmayal\u0131m<\/span> bu kontroller register i\u00e7eriklerine ba\u011fl\u0131d\u0131r.<\/p>\n<p><span style=\"color: #ff6600;\">Videoda geni\u015f anlat\u0131m\u0131n\u0131 ve Proteus dosyas\u0131 olarak \u00e7al\u0131\u015fmas\u0131n\u0131 g\u00f6receksiniz.<\/span><\/p>\n<p>\u015eunu anlamam\u0131z laz\u0131m. Mikro denetleyiciler DATA+ CLOCK+ kontrol sinyallerinden olu\u015fur. Bizler programlama yaparken DATA lar\u0131 belirleriz gerekli yerlere yazar\u0131z. CLOCK i\u00e7in frekans\u0131 belirleriz. Hatta komutlar\u0131n i\u015flenece\u011fi ve baz\u0131 i\u015flerin yap\u0131laca\u011f\u0131 saat palslar\u0131n\u0131n aral\u0131klar\u0131n\u0131 da belirleriz. Program \u00e7al\u0131\u015fmaya ba\u015flad\u0131\u011f\u0131nda art\u0131k orkestra \u015fefi mikro denetleyicidir. Bizim verdi\u011fimiz verileri ve saat palslar\u0131n\u0131 dikkate alarak, kontrol sinyallerini \u00fcreterek, i\u015flem s\u0131ras\u0131na g\u00f6re i\u015flemleri yapar. Bunu program dahilinde yapacakt\u0131r. Kendisi bir \u015fey katmaz. Fakat devaml\u0131 kontrol eder. Baz\u0131 zamanlar \u00e7ak\u0131\u015fma olur ve hemen mikro denetleyiciyi Resetler ya da baz\u0131 d\u0131\u015f etkilere g\u00f6re <span style=\"color: #ff6600;\">interrupt ( kesme)<\/span> geldiyse, program\u0131n kesme ile ilgili yeri varsa oraya gider ve o i\u015fi bitirince kald\u0131\u011f\u0131 yere d\u00f6ner. B\u00fct\u00fcn bunlar art\u0131k mikro denetleyicinin kendi i\u015fidir.<\/p>\n<p>A\u015fa\u011f\u0131daki 3 adet GPIO dizayn\u0131nda ortak olanlar\u0131 bulmaya \u00e7al\u0131\u015fal\u0131m.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/raspi_gpio.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\/GPIO_mikro\/raspi_gpio.JPG?raw=true\" alt=\"\" width=\"327\" height=\"255\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 327px; --smush-placeholder-aspect-ratio: 327\/255;\" \/><\/a><br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/pcf8574_gpio.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\/GPIO_mikro\/pcf8574_gpio.JPG?raw=true\" alt=\"\" width=\"383\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 383px; --smush-placeholder-aspect-ratio: 383\/190;\" \/><\/a><br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/GPIO_16f628.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\/GPIO_mikro\/GPIO_16f628.JPG?raw=true\" alt=\"\" width=\"206\" height=\"366\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 206px; --smush-placeholder-aspect-ratio: 206\/366;\" \/><\/a><br \/>\nBu resimlerde ortak olan PULL UP direnci dedi\u011fimiz yerde, Mosfet kontroll\u00fc i\u00e7eriden ba\u011fl\u0131 pull up kontrol\u00fc vard\u0131r. Ya da PULL DOWN da olabilir. ( pull down 1. resimde g\u00f6r\u00fcnmektedir. Di\u011fer entegrelerde yoktur. )<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/Pull-up-and-Pull-down-Resistor.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\/GPIO_mikro\/Pull-up-and-Pull-down-Resistor.png?raw=true\" alt=\"\" width=\"231\" height=\"160\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 231px; --smush-placeholder-aspect-ratio: 231\/160;\" \/><\/a><br \/>\nBir di\u011feri ise Giri\u015f ve \u00e7\u0131k\u0131\u015f i\u00e7in tek pim kullan\u0131lsa da Gelen ve giden bilgi yollar\u0131 ayr\u0131 \u015fekilde dizayn edilir ve mikro denetleyicinin kontrol\u00fcndedir. ( Program dahilinde )<br \/>\nBir di\u011feri ise <span style=\"color: #ff6600;\"><strong>D FF<\/strong> ( D Flip Flop )<\/span> devresidir. Bu devre kilit mekanizmas\u0131d\u0131r.<br \/>\nMesela program PORTA.1 bitini HIGH seviyeye \u00e7ekti. D FF olmasayd\u0131 program HIGH seviyesine \u00e7ektikten sonra orada beklemek zorundayd\u0131. \u00c7\u00fcnk\u00fc O uca g\u00f6nderdi\u011fi bilgi de\u011fi\u015fti\u011finde \u00e7\u0131k\u0131\u015fta de\u011fi\u015fecekti.<br \/>\nD FF oldu\u011funda D ucuna verdi\u011fi bilgi CLOCK pals\u0131 ile \u00e7\u0131k\u0131\u015fa yans\u0131r ve kilitlenir. Bu kilitlendikten sonra program di\u011fer sat\u0131ra ge\u00e7se bile, bilgi de\u011fi\u015ftirilesiye kadar yeniden CLOCK pals\u0131 verilesiye kadar, \u00e7\u0131k\u0131\u015ftaki bilgi de\u011fi\u015fmeyecektir. D Flip Flop devresi program \u00e7al\u0131\u015fmaya devam ederken \u00e7\u0131k\u0131\u015f\u0131n veya giri\u015fin sabit kalmas\u0131n\u0131 sa\u011flamaktad\u0131r.<\/p>\n<p>K\u00fc\u00e7\u00fck 8 bacakl\u0131 bir mikro denetleyici entegre d\u00fc\u015f\u00fcn\u00fcn. Bu entegrede 5 tane GPIO var. Bu GPIO pimlerinde birden fazla g\u00f6rev var. Mesela bir pim hem giri\u015f hem \u00e7\u0131k\u0131\u015f hem I2C haberle\u015fme Hem SPI haberle\u015fme hem de Seri haberle\u015fmede kullan\u0131labilir. O zaman bu pimi kontrol etmek i\u00e7in bir\u00e7ok kontrol i\u015flemi yap\u0131lmal\u0131. Bunun i\u00e7inde o PORT\u2019a ait bir\u00e7ok veri yolu ve kontrol yolu olmal\u0131. Bu kadar yolun di\u011fer port pimleri i\u00e7inde oldu\u011funu d\u00fc\u015f\u00fcn\u00fcrseniz, entegre i\u00e7erisinde bir karma\u015fa oldu\u011funu d\u00fc\u015f\u00fcnebilirsiniz.<span style=\"color: #ff6600;\"> Bu tip denetleyiciler de bir hiyerar\u015fi olmal\u0131.<\/span><\/p>\n<p>Bunu bir <span style=\"color: #ff6600;\">\u00f6rnek ile anlatmak<\/span> istiyorum. Y\u0131llar \u00f6nce \u00e7al\u0131\u015ft\u0131\u011f\u0131m otomatik dizgi makinelerinde, CPU nun ( merkezi i\u015flem birimi )\u00a0 kontrol etti\u011fi i\u015fleri yapan giri\u015f \u00e7\u0131k\u0131\u015f kart sistemleri vard\u0131. Bu sistem 50 adet kablo ile kontrol ediliyordu. Bunu sa\u011flamak i\u00e7in 16 bitlik DATA kablosu, 16 bitlik Kontrol kablosu kullan\u0131l\u0131yordu. Di\u011fer kablolar ise besleme, clock, ve interrupt gibi kablolard\u0131.<br \/>\nSistem ikili kodlamaya g\u00f6re \u00e7al\u0131\u015f\u0131yordu. Her kart\u0131n bir adresi vard\u0131. Bu seri haberle\u015fme I2C\u00a0 sistemlerindeki gibi g\u00f6r\u00fcnse de, adresler paralel sistem ile iletilirdi.<br \/>\n\u00d6ncelikle,16 bitlik bilgi DATA yoluna konulur. Sonras\u0131nda 16 bitlik kontrol bilgisi kontrol yoluna konulur ve bu kontrol bilgisini alan kart gelen bilginin kendisini ilgilendirdi\u011fini anlar ve geri bildirim verir. Sonras\u0131nda yap\u0131lacak i\u015f, bu haberle\u015filen karta g\u00f6nderilmek \u00fczere 16 bitlik bilgiyi ( komut ya da veri ) DATA yoluna koymakt\u0131r.<br \/>\nSistem bu \u015fekilde bir hiyerar\u015fi i\u00e7erisinde devaml\u0131 \u00e7al\u0131\u015fmaktad\u0131r. Bu \u00e7al\u0131\u015fma esnas\u0131nda program\u0131n durumunu olumsuz etkileyen bir etki oldu\u011funda koruma sistemleri devreye girer. INTERRUPT bilgisi iletilir ve interrupt durumunda yap\u0131lmas\u0131 gereken, gerekli i\u015flemlere d\u00f6n\u00fcl\u00fcr.<\/p>\n<p>PORT pimlerine bakarken, sadece giri\u015f \u00e7\u0131k\u0131\u015f pimi olarak de\u011fil de arkas\u0131nda bir kontrol devresiyle, program dahilinde kontrol edebilece\u011fimiz bir devre olarak bakmal\u0131s\u0131n\u0131z.<br \/>\nBazen bu tip devreleri kendimiz tasarlamak zorunda kalabiliriz. Bizlerde bu tip devreleri anlad\u0131\u011f\u0131m\u0131zda benzerlerini kurabiliriz.<\/p>\n<p>Buraya kadar bilginin kilitlenmesi gerekti\u011fini d\u00fc\u015f\u00fcnd\u00fck. Fakat bu tip entegrelerde kontrol sinyalleri de olduk\u00e7a fazla yer tutacak dedik. Bunun i\u00e7in ne gibi bir \u00e7\u00f6z\u00fcm ya da sim\u00fclasyon olabilir. Mesela yukar\u0131da verdi\u011fim \u00f6rnekteki gibi ikili kodlama ile <span style=\"color: #ff6600;\">4 bit kullanarak 16 bit bilgi elde edip<\/span> bunlar\u0131 kontrol sinyallerinde kullanabiliriz. Mesela 16 bit ten ilk bit port pimini \u00c7IKI\u015e olarak ayarlar. 2. Si G\u0130R\u0130\u015e olarak ayarlar. 3. Di\u011fer portu \u00e7\u0131k\u0131\u015f alarak ayarlar. Bunlar\u0131 yapabilmek i\u00e7in Merkezi kontrol\u00fcn sadece 4 bitini bu i\u015f i\u00e7in kullanabiliriz.<\/p>\n<p><span style=\"color: #ff6600;\">\u015eunu da unutmayal\u0131m<\/span>. Mikro denetleyicileri \u00fcreten firmalar kendi \u00e7\u00f6z\u00fcmlerini bulmu\u015flard\u0131r. Biz GPIO \u00e7\u0131k\u0131\u015flar\u0131n\u0131 nas\u0131l sim\u00fcle ederiz dedi\u011fimizde, bu tip bir sistem olabilir diye fikir y\u00fcr\u00fct\u00fcyoruz. Video da zaten ger\u00e7ek sim\u00fclasyonu g\u00f6rebileceksiniz. <strong>Bu size ileride yapaca\u011f\u0131n\u0131z devrelerde, bak\u0131\u015f a\u00e7\u0131n\u0131za yard\u0131mc\u0131 olabilecektir.<\/strong><\/p>\n<p><strong>Fakat \u015funu da s\u00f6yleyebiliriz.<\/strong> Sadece GPIO portlar\u0131n\u0131 inceledi\u011fimiz ( yukar\u0131da resmi verilen ) 3 entegre de benzer sistemler kullanm\u0131\u015flar. Demek ki akl\u0131n yolu birmi\u015f. Bizlerde bu tip bir GPIO tasarlamak istedi\u011fimizde, bu tip devrelerden faydalanarak ger\u00e7ekle\u015ftirebiliriz. Tabii ki kendi mant\u0131\u011f\u0131m\u0131z ve algoritmam\u0131zla uyumlu \u015fekilde tasarlamam\u0131z gerek.<\/p>\n<p>Bu anlat\u0131m\u0131n amac\u0131, yeni tasar\u0131mlar\u0131n\u0131zda bu d\u00fc\u015f\u00fcnce yoluyla, \u00e7\u0131k\u0131\u015ftan giri\u015fe do\u011fru giderek devrenizi ger\u00e7ekle\u015ftirebilmenizi g\u00f6stermektir.<br \/>\nDevreler farkl\u0131la\u015fabilir. Her zaman s\u00f6yledi\u011fim gibi ALGOR\u0130TMA \u00f6nemlidir. Nelere ihtiyac\u0131n\u0131z varsa bir mant\u0131k \u00e7er\u00e7evesinde olu\u015fturmaya ba\u015flars\u0131n\u0131z. \u0130htiya\u00e7 olduk\u00e7a devreniz \u015fekillenir. Bunun i\u00e7in zaten piyasa da bir \u00e7ok entegre ve devre mevcuttur.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Devreleri anlamak, onlar\u0131 sim\u00fcle etmeyi ve dizaynlar\u0131n\u0131zda kullanabilmeyi kolayla\u015ft\u0131r\u0131r.<\/strong><\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>En \u00f6nemlisi,<\/strong><\/span><br \/>\nNASIL \u00c7ALI\u015eIYOR?<br \/>\nBUNU NASIL VE NEREDE KULLANAB\u0130L\u0130R\u0130M?<br \/>\nBURADA NEDEN BU T\u0130P BA\u011eLANTI KULLANILMI\u015e?<br \/>\nBEN BU DEVREY\u0130 NASIL S\u0130M\u00dcLE EDEB\u0130L\u0130R\u0130M?<\/p>\n<p>Gibi sorular sorarak devreleri anlaman\u0131z ve onlar\u0131 \u00f6ncelikle kafan\u0131zda sim\u00fcle edebilmeniz, sizin ilerlemenizi sa\u011flayacakt\u0131r.<\/p>\n<p><strong><span style=\"color: #ff0000;\">D\u0130KKAT ETMEM\u0130Z GEREKEN AKIMDIR.<\/span><\/strong> Her port piminden \u00e7ekilecek bir ak\u0131m miktar\u0131 vard\u0131r. Bu miktar datasheet denilen dok\u00fcmanlardan \u00f6\u011frenilebilir.<br \/>\nBunun yan\u0131 s\u0131ra daha \u00f6nemli bir nokta vard\u0131r. Datasheet te port piminden 20mA \u00e7ekece\u011finizi \u00f6\u011frendiniz ve 16 port pimi var. O zaman t\u00fcm portlarda bir anda 20mA*16=320mA ak\u0131m \u00e7ekerseniz bu da devrenizi yakabilir. ( <span style=\"color: #ff6600;\">2 farkl\u0131 durum vard\u0131r. t\u00fcm Ledler yan\u0131k olarak beklenirse zarar verebilecek iken, t\u00fcm Ledler k\u0131sa zaman i\u00e7in yan\u0131p s\u00f6ner pozisyonda oldu\u011funda bu zarar vermeyebilir. Sebebi ise ak\u0131m\u0131n ne kadar s\u00fcre ile \u00e7ekildi\u011fidir. Bu s\u00fcre \u00f6nemlidir. Pik= k\u0131sa s\u00fcreli \u00e7ekilen ak\u0131m, her zaman i\u00e7in devaml\u0131 \u00e7ekilecek ak\u0131mdan daha y\u00fcksektir.<\/span> )<br \/>\nBundan dolay\u0131 her port piminden maksimum \u00e7ekilecek ak\u0131m\u0131 g\u00f6r\u00fcp, bir de <strong><span style=\"color: #ff6600;\">toplam \u00e7ekilecek ak\u0131m\u0131<\/span><\/strong> da g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gerekir.<br \/>\nBu tip bir durumdan dolay\u0131 LED gibi <span style=\"color: #ff6600;\">az ak\u0131m \u00e7ekti\u011fini d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fcz komponentlerde bile, toplam ak\u0131ma riayet etmeniz laz\u0131m.<\/span> \u015eayet motor gibi y\u00fcksek ak\u0131m \u00e7eken cihaz ba\u011flayacaksan\u0131z, bir transist\u00f6r ya da mosfet ile s\u00fcrmeniz yerinde olacakt\u0131r. Tabii ki tam izolasyon isterseniz Optokupl\u00f6r entegrelerini de kullanman\u0131z yerinde bir se\u00e7im olacakt\u0131r.<\/p>\n<p><strong>Datasheet lerde elektriksel bilgi tablolar\u0131 vard\u0131r oradan faydalanabilirsiniz.<\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/datasheet%20elektriksel.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\/GPIO_mikro\/datasheet%20elektriksel.JPG?raw=true\" alt=\"\" width=\"718\" height=\"402\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 718px; --smush-placeholder-aspect-ratio: 718\/402;\" \/><\/a><br \/>\nYukar\u0131daki tabloda GPIO piminden \u00e7ekilecek maksimum ak\u0131m,<br \/>\n<strong>Maximum output current sourced by any I\/O pin\u00a0 25 mA<\/strong> g\u00f6r\u00fcn\u00fcyor. Bu entegrede 16 port \u00e7\u0131k\u0131\u015f\u0131 mevcut. <strong>25mA*16= 400mA<\/strong> eder. Yani teorikte t\u00fcm portlardan ayn\u0131 anda 25mA ak\u0131m \u00e7ekmeniz ve bunu da devaml\u0131 \u00e7ekmeniz durumunda\u00a0 A\u015fa\u011f\u0131da g\u00f6sterilen toplam ak\u0131mlar\u0131 a\u015fm\u0131\u015f olacaks\u0131n\u0131z ve entegreye zarar vermi\u015f olacaks\u0131n\u0131z.<br \/>\n<strong>Maximum current out of VSS pin&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;300 mA<\/strong><br \/>\n<strong>Maximum current into VDD pin&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;250 mA<\/strong><br \/>\nBununla birlikte buradaki ifade ise sadece GPIO ile \u00e7ekebilece\u011finiz ak\u0131m\u0131n maksimum de\u011ferini g\u00f6sterecektir. Yani ak\u0131m limiti daha da d\u00fc\u015f\u00fck durumda. Maksimum PORTA ve PORTB den <span style=\"color: #ff6600;\">toplam \u00e7ekilecek ak\u0131m<\/span>:<br \/>\n<strong>Maximum current sourced by PORTA and PORTB&#8230;&#8230;&#8230;&#8230;200 mA<\/strong><\/p>\n<p>Bunlar bize g\u00f6steriyor ki. D\u00fc\u015f\u00fck ak\u0131ml\u0131 sistemlerde sorun \u00e7\u0131karmasa bile y\u00fcksek ak\u0131m \u00e7eken port kullan\u0131mlar\u0131nda bir Transist\u00f6r, Mosfet ya da optokupl\u00f6r kullanmal\u0131y\u0131z.<br \/>\n<span style=\"color: #ff6600;\">Arduino kullananlar ATMEGA 328&#8217;in<\/span>\u00a0 datasheet&#8217;ini incelemeleri gerekmektedir.<\/p>\n<p>Ak\u0131m bilgilerinde \u00f6nemli bir husus daha vard\u0131r. Bu da <strong>VSS<\/strong> den \u00e7ekilecek ak\u0131md\u0131r. <strong>VDD<\/strong> den \u00e7ekilecek ak\u0131md\u0131r. Bunlar da tabloda belirtilmi\u015ftir. Ayr\u0131ca <strong>DIP<\/strong> entegre ve <strong>SMD<\/strong> tipi entegre olmas\u0131na g\u00f6re de Ak\u0131m s\u0131n\u0131rlamalar\u0131 de\u011fi\u015febilmektedir. Hatta <strong>DIP<\/strong> entegrelerde <strong>1 adet GND (Vss)<\/strong> baca\u011f\u0131 varken, <strong>baz\u0131 SMD<\/strong> tiplerinde ak\u0131m\u0131 kar\u015f\u0131layabilmesi i\u00e7in <strong>2 adet GND(Vss)(Vdd)<\/strong> pimi bulunabiliyor. A\u015fa\u011f\u0131daki resimde bu fark g\u00f6r\u00fcnmektedir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/vdd_vss.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\/GPIO_mikro\/vdd_vss.JPG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\n<strong><span style=\"color: #ff6600;\">GPIO proteus 7.10 ile \u00e7izilmi\u015f \u00e7al\u0131\u015fan devre<\/span>: <\/strong>Eski proteus ile \u00e7izildi\u011finden, yeni versiyonlar\u0131n tamam\u0131nda sorunsuz a\u00e7\u0131lacakt\u0131r. Proteus dosyas\u0131n\u0131 a\u00e7\u0131p \u00e7al\u0131\u015ft\u0131rarak ve 1, 0 lojik anahtarlar\u0131 kullanarak denemelerinizi yapabilirsiniz.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/GPIO_mikro\/proteus_cizim.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\/GPIO_mikro\/proteus_cizim.JPG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\n<span style=\"color: #ff0000;\">Not:<\/span> Videoda 8. Dakikada bir yanl\u0131\u015f s\u00f6ylem var. Bu s\u00f6ylemi \u015fu \u015fekilde alg\u0131lay\u0131n.<\/p>\n<p><span style=\"color: #ff0000;\">Z empedans :<\/span> Ne GND ne de VCC dir. Y\u00fcksek bir diren\u00e7 g\u00f6sterecektir.<br \/>\nGPIO da kullan\u0131lmas\u0131na g\u00f6re bakarsak.<br \/>\n<strong>Al\u0131nt\u0131:<\/strong> <span style=\"color: #ff6600;\">Bir hat y\u00fcksek empedans durumuna getirildi\u011finde, \u00e7\u0131k\u0131\u015f devreden etkin bir \u015fekilde ayr\u0131l\u0131r. Bu, birden fazla devrenin veya ayg\u0131t\u0131n ayn\u0131 \u00e7\u0131k\u0131\u015f hatlar\u0131n\u0131 payla\u015fmas\u0131na izin verir ve genellikle ileti\u015fim veri yollar\u0131n\u0131 uygulamak i\u00e7in kullan\u0131l\u0131r.\u00a0Gerekti\u011finde y\u00fcksek empedansl\u0131 bir durumun kullan\u0131lmamas\u0131, IO \u00e7eki\u015fmesine ve k\u0131sa devrelere yol a\u00e7ar.<\/span><\/p>\n<p><strong>Ayr\u0131ca A\u011f\u0131z al\u0131\u015fkanl\u0131\u011f\u0131 var.<\/strong> Baz\u0131 terimleri \u0130ngilizce ve T\u00fcrk\u00e7e kullan\u0131rken kelimelerin okunu\u015fu de\u011fi\u015fik oluyor.<br \/>\nMikrokontrol\u0131r diye s\u00f6yledi\u011fim kelime biraz T\u00fcrk\u00e7e biraz \u0130ngilizce birle\u015fimi gibi oluyor.<br \/>\nAsl\u0131nda <strong>Microcontroller<\/strong> <strong>= mikro kontrolc\u00fc<\/strong> <strong>= mikro denetleyici<\/strong> olarak alg\u0131lay\u0131n.<br \/>\nBir de bazen mikrokontrolc\u00fc desek de bazen de mikroi\u015flemci diyoruz. <strong>Bu da yanl\u0131\u015f bir s\u00f6ylemdir.<\/strong><br \/>\nZaman i\u00e7erisinde bunlar\u0131 yanl\u0131\u015f s\u00f6ylesek de hepimiz Mikrokontrolc\u00fc<br \/>\n(Mikro denetleyici) den bahsetti\u011fimizi biliyoruz.<\/p>\n<p><strong>\u00a0<\/strong><strong>Mikroi\u015flemci ve Mikrodenetleyici aras\u0131ndaki fark bu linkte anlat\u0131lmaktad\u0131r.:<br \/>\n<\/strong><a href=\"https:\/\/www.guru99.com\/difference-between-microprocessor-and-microcontroller.html#:~:text=Microprocessor%20consists%20of%20only%20a,all%20integrated%20into%20one%20chip.&amp;text=Microprocessor%20uses%20an%20external%20bus,uses%20an%20internal%20controlling%20bus\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.guru99.com\/difference-between-microprocessor-and-microcontroller.html#:~:text=Microprocessor%20consists%20of%20only%20a,all%20integrated%20into%20one%20chip.&amp;text=Microprocessor%20uses%20an%20external%20bus,uses%20an%20internal%20controlling%20bus<\/a>.<\/p>\n<p><strong><span style=\"color: #ff0000;\">GPIO konusunda ayr\u0131nt\u0131l\u0131 yaz\u0131lm\u0131\u015f bir<\/span> <a href=\"https:\/\/embeddedartistry.com\/blog\/2018\/06\/04\/demystifying-microcontroller-gpio-settings\/\" target=\"_blank\" rel=\"noopener noreferrer\">makale buradad\u0131r. (ingilizcedir)\u00a0<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff0000;\">T\u00dcM DOSYALARA<\/span> <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/GPIO_mikro\" target=\"_blank\" rel=\"noopener noreferrer\">BURADAN ULA\u015eAB\u0130L\u0130RS\u0130N\u0130Z.\u00a0<\/a>\u00a0<\/strong><\/p>\n<p><iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/9PxLYi23OcY\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><br \/>\n<span style=\"color: #ff0000;\"><strong>Konu hakk\u0131nda sorular\u0131n\u0131z\u0131 ya da d\u00fczeltmelerinizi buradan iletirseniz, bu yaz\u0131y\u0131 okuyan arkada\u015flar sizlerin bilgilerinizi de g\u00f6rebilecektir.\u00a0<\/strong><\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131da Arduino, PIC ve di\u011fer Mikro denetleyici devrelerinde kulland\u0131\u011f\u0131m\u0131z, (General-purpose input\/output = GPIO ) Genel ama\u00e7l\u0131 giri\u015f \/ \u00e7\u0131k\u0131\u015f portlar\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 anlamaya \u00e7al\u0131\u015faca\u011f\u0131z. \u00d6ncelikle neden bunu anlayal\u0131m ki diyenleri&#8230; <\/p>\n","protected":false},"author":1,"featured_media":2066,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,20,3,32,21,5,11,36,6],"tags":[34,88,91,90,89,84,87,56,86,85],"class_list":["post-2061","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino_pic_digerleri","category-elo","category-pic","category-pic-ve-digerleri","category-proteus","category-raspi","category-robo","category-stm32","category-temel-elektro","tag-arduino_pic_digerleri","tag-digital-gpio","tag-dijital-gpio","tag-dijital-port","tag-dijital-portlar-nasil-calisir","tag-gpio","tag-gpio-nasil-calisir","tag-raspberry-pi","tag-raspi","tag-stm"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2061","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=2061"}],"version-history":[{"count":8,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2061\/revisions"}],"predecessor-version":[{"id":2070,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2061\/revisions\/2070"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/2066"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=2061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=2061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=2061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}