{"id":2310,"date":"2022-05-05T15:48:15","date_gmt":"2022-05-05T12:48:15","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=2310"},"modified":"2022-05-05T15:48:15","modified_gmt":"2022-05-05T12:48:15","slug":"74hc595-ile-karakter-lcd-kontrol","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2022\/05\/05\/74hc595-ile-karakter-lcd-kontrol\/","title":{"rendered":"74HC595 ile Karakter LCD Kontrol"},"content":{"rendered":"<p><strong>74HC595 ile karakter LCD kontrol\u00fcn\u00fc, nas\u0131l yapabiliriz?<\/strong><\/p>\n<p>Bu entegre zaten 7 segment displaylerde \u00e7ok kullan\u0131l\u0131r. Bu entegre ile 3 kablo kullanarak 8 bitlik bir \u00e7\u0131k\u0131\u015f elde edilir. Bu \u00e7\u0131k\u0131\u015flar bir LCD ye ba\u011flan\u0131rsa basit bir \u015fekilde LCD kontrol\u00fc de yap\u0131labiliyor.<br \/>\nBasit bir \u015fekilde yap\u0131lm\u0131\u015f programlara rastlad\u0131m. Tabii ki K\u00fct\u00fcphanesiz olarak. Ayr\u0131ca k\u00fct\u00fcphaneli olan 1 \u00e7al\u0131\u015fma daha var. Linkini yaz\u0131n\u0131n sonuna ekledim.<br \/>\n<span style=\"color: #ff6600;\">Fakat k\u00fct\u00fcphane sadece Arduino i\u00e7in. \u015eayet k\u00fct\u00fcphanesiz olarak kullan\u0131rsan\u0131z, hem \u00e7al\u0131\u015fmas\u0131n\u0131 anlam\u0131\u015f olursunuz, hem de t\u00fcm mikrokontrolc\u00fclerle kullanabilirsiniz.\u00a0<\/span><\/p>\n<p>Nereden akl\u0131na geldi derseniz. \u0130htiya\u00e7tan diyebilirim.<br \/>\nESP01 ve 8 bacakl\u0131 entegreler ile LCD display kullanmak i\u00e7in bunu yapabilir miyim diye d\u00fc\u015f\u00fcnd\u00fcm ve ger\u00e7ekle\u015ftirmeye ba\u015flad\u0131m.<br \/>\nEASYLCD seri port \u00fczerinden tek kablo ile zaten bu i\u015fi yap\u0131yor. DO\u011eRUDUR.<br \/>\nFakat EASYLCD bu i\u015fi programl\u0131 entegre ile yapt\u0131\u011f\u0131ndan <span style=\"color: #ff6600;\"><strong>PAHALI<\/strong> <\/span>oluyor.<br \/>\nTabii ki bunun i\u00e7in <span style=\"color: #ff6600;\">I2C kullanan mod\u00fcller<\/span> de var. <span style=\"color: #ff6600;\">74HC595 entegresi 2-3TL<\/span> iken <span style=\"color: #ff6600;\">I2C mod\u00fcller bu zamanda 13TL<\/span> den ba\u015flay\u0131p y\u00fckseliyor.<\/p>\n<p>Bir de entegre devrenin arkaya monte edilmesi daha kolay olacakt\u0131r. Bununla birlikte I2C haberle\u015fme \u00f6zelli\u011fi olmayan bir entegre ile \u00e7al\u0131\u015f\u0131yorsan\u0131z, bir de <span style=\"color: #ff6600;\">yaz\u0131l\u0131msal I2C<\/span> kullanmak gerekecektir. Bu da zor olacakt\u0131r. <span style=\"color: #ff6600;\">Dijital olarak pimlerle \u00e7al\u0131\u015fmak KOLAYDIR.<\/span><\/p>\n<p>B\u00fct\u00fcn bunlar\u0131n yan\u0131 s\u0131ra pratik olmas\u0131 a\u00e7\u0131s\u0131ndan <span style=\"color: #ff6600;\">I2C lcd mod\u00fcller \u00e7ok kullan\u0131lmakta<\/span>. Sadece k\u00fct\u00fcphanede bize sunulan komutlar\u0131 kullanarak \u00e7al\u0131\u015fabiliyoruz. Tabii ki baz\u0131 i\u015fler i\u00e7in yeterli olacakt\u0131r.<br \/>\n<span style=\"color: #0000ff;\"><strong>Fakat LCD \u00e7al\u0131\u015fmas\u0131n\u0131 \u00f6\u011frenerek kendi programlar\u0131m\u0131z\u0131 K\u00dcT\u00dcPHANE olmadan yazabiliriz.<\/strong><\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">\u00d6ncelikle HD44780 uyumlu LCD display mod\u00fcllerinin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na bakal\u0131m.<\/span><\/strong><\/p>\n<p>LCD mod\u00fcl 8 data biti ve 3 kontrol biti ile dijital haberle\u015fme kullan\u0131r. Yani DATA bilgisini 8 data pimine verirsiniz. Bu data bilgisi giri\u015finde dururken RS ucunu LOW, RW ucunu LOW ve Enable ucunu \u00f6nce HIGH sonra LOW yaparak bilgiyi mod\u00fcl\u00fcn i\u00e7ine al\u0131rs\u0131n\u0131z. (4 Bitlik \u00e7al\u0131\u015fma da yap\u0131lmaktad\u0131r. Ben de bu programda 4 Bit olarak \u00e7al\u0131\u015fmay\u0131 kulland\u0131m.<br \/>\nBurada 2 se\u00e7ene\u011finiz var. Ya i\u015flemin bitmesi i\u00e7in verilen gecikme s\u00fcresi kadar beklersiniz.(Programda komut g\u00f6nderdikten sonra delay komutu kullan\u0131rs\u0131n\u0131z. Bu gecikme <strong>40us<\/strong> ile <strong>1.64ms<\/strong> aras\u0131nda de\u011fi\u015fir. Genelde 70us yeterli olacakt\u0131r. \u00d6zel durumlar hari\u00e7. )<br \/>\nYa da BUSY flag denilen D7 bitini kontrol edersiniz. (I2C ve di\u011fer LCD K\u00fct\u00fcphanelerini incelemedi\u011fim i\u00e7in busy flag kontrol ediliyor mu bilemem.)<br \/>\nFakat ben sadece EASYLCD\u00a0 mod\u00fcl\u00fcn\u00fc programlarken kulland\u0131m. \u00c7o\u011fu zaman sadece gecikme vererek bunu hallettim. LCD 8 bit \u00e7al\u0131\u015fabildi\u011fi gibi 4 bit modunda da \u00e7al\u0131\u015f\u0131yor. Bilgiler 1 byte=8 bit olarak geldi\u011finden 4 Bit modda 2 kere 4 bit verilerek daha az pim kullan\u0131larak \u00e7al\u0131\u015fma sa\u011flan\u0131r.<br \/>\n<span style=\"color: #ff6600;\">Benim yapt\u0131\u011f\u0131m program da 4 Bit modda yap\u0131lm\u0131\u015ft\u0131r.<\/span><\/p>\n<p>Mod\u00fcl i\u00e7erisinde 2 adet haf\u0131za mevcut. Bir tanesi <span style=\"color: #ff6600;\">DDRAM<\/span> bir tanesi ise <span style=\"color: #ff6600;\">CGRAM<\/span><br \/>\n<span style=\"color: #ff6600;\">DDRAM<\/span> anl\u0131k olarak se\u00e7ilebilen <span style=\"color: #ff6600;\">80<\/span> karakterlik bir yerdir. Toplam 80 karakteriniz var. <span style=\"color: #ff6600;\">Bu 80 karakteri 4 sat\u0131ra kadar kullanabilirsiniz.<\/span><br \/>\nLCD ler 1 x16, 1&#215;20, 2&#215;16, 2&#215;20, 4&#215;16 ve 4&#215;20 gibi isimlerle an\u0131l\u0131r. Bu demek de\u011fildir ki 1&#215;16 ekran 16 karakter al\u0131yor.<br \/>\nDDRAM 80 karakterlik adrese sahiptir. 80 karakter yazabilirsiniz. Fakat ilk etapta 16 karakterlik ekran\u0131 g\u00f6rebilirsiniz. Ekran\u0131 sola ve sa\u011fa kayd\u0131rarak t\u00fcm DDRAM adresindeki bilgileri 16 karakterlik alanda g\u00f6rebilirsiniz. ( LCD DDRAM adresleri i\u00e7in <a href=\"https:\/\/web.alfredstate.edu\/faculty\/weimandn\/lcd\/lcd_addressing\/lcd_addressing_index.html\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>bu sayfaya bakabilirsiniz<\/strong><\/a>. )<\/p>\n<p><strong><span style=\"color: #ff6600;\">\u015e\u00f6yle d\u00fc\u015f\u00fcnebilirsiniz.<\/span><\/strong><\/p>\n<figure style=\"width: 251px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/shifting_calendar.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/shifting_calendar.jpg?raw=true\" alt=\"\" width=\"251\" height=\"221\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 251px; --smush-placeholder-aspect-ratio: 251\/221;\" \/><\/a><figcaption class=\"wp-caption-text\">Bu \u015fekilde ekran 16 karakter ya da 20 karakter olsa da t\u00fcm DDRAM adreslerini ekran kayd\u0131rarak g\u00f6rebiliriz.<\/figcaption><\/figure>\n<p>Bu resimdeki gibi 16 ya da 20 karakterlik pencereyi sola ve sa\u011fa kayd\u0131rarak g\u00f6r\u00fcnen k\u0131sm\u0131 de\u011fi\u015ftirebilirsiniz. LCD mod\u00fclde bu \u015fekilde bir \u00e7al\u0131\u015fma vard\u0131r.<\/p>\n<p>Bir de<span style=\"color: #ff6600;\"> CGRAM<\/span> dan bahsedelim. Bu b\u00f6l\u00fcmde haz\u0131r karakterler tutuluyor. <strong><a href=\"https:\/\/www.asciitable.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ASCII karakter<\/a><\/strong> kodlamas\u0131na uygun bir \u015fekilde dizilmi\u015ftir. Bu karakterleri direkt ASCII kodu vererek <span style=\"color: #ff6600;\">DDRAM<\/span> \u00fczerine yaz\u0131yorsunuz ve bu ascii kodlar, ekrana CGRAM \u00fczerinden \u00e7a\u011fr\u0131larak gelir. Bizler <span style=\"color: #ff6600;\">CGRAM<\/span> da k\u0131s\u0131tl\u0131 hareketler yapabiliyoruz. Sadece <span style=\"color: #ff6600;\">yeni karakter i\u00e7in ayr\u0131lan 8 karakterlik b\u00f6l\u00fcme yeni karakterlerimizi yerle\u015ftirebiliriz.<\/span> Bu karakterleri ise <span style=\"color: #ff6600;\">0-7<\/span> olarak DDRAM \u00fczerine yerle\u015ftirdi\u011fimizde ekrana yans\u0131rken CGRAM \u00fczerindeki ilgili yeni karakter yaz\u0131l\u0131r.<\/p>\n<p>Burada kriter \u015fudur. 5&#215;8 font kullan\u0131l\u0131rsa 8 yeni karakter yaz\u0131labilir. 5&#215;10 font kullan\u0131l\u0131rsa 4 yeni karakter yaz\u0131labilir.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>DDRAM adreslemesi 80h adresinden ba\u015flar. CGRAM adresi ise 40h tan ba\u015flar.<\/strong><\/span><\/p>\n<p>Yeni karakter yazmak istedi\u011finizde ba\u015flang\u0131\u00e7 adresi tabloda 00h olarak g\u00f6sterilen yer 40h olarak de\u011ferlendirilir. Bu \u015fekilde bir font olu\u015fturuldu\u011funda 8 byte l\u0131k yer kaplar.<br \/>\n40h,41h,42h,43h,44h,45h,46h,47h olarak 1 tane karakteri kapsar. Bir sonraki karakter ise 48h tan ba\u015flar ve 8 byte l\u0131k yer ayr\u0131l\u0131r.<br \/>\nBu d\u00fczen i\u00e7erisinde ba\u015flang\u0131\u00e7 adresi ve <span style=\"color: #ff6600;\">8 byte bilgiyi verdi\u011fimizde yeni karakteri olu\u015ftururuz.<\/span><br \/>\nBu 8 byte bilgi, resmin sa\u011f taraf\u0131ndaki HEX say\u0131lard\u0131r. Yukar\u0131dan a\u015fa\u011f\u0131 do\u011fru parametre olarak verilecektir. Baz\u0131 programlar HEX say\u0131lar ve Decimal say\u0131 olarak verir. Decimal say\u0131lar\u0131da kullanabilirsiniz.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/custom_char_code.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\/74HC595_HD44780_LCD\/pictures\/custom_char_code.png?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><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/custom_char_code1.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\/74HC595_HD44780_LCD\/pictures\/custom_char_code1.png?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 \/>\nBu 8 byte bilgiyi internette \u00e7ok kullan\u0131lan karakter jenerat\u00f6r programlar\u0131 size verebilir.<br \/>\nBu adresten faydalanabilirsiniz. <strong><a href=\"https:\/\/maxpromer.github.io\/LCD-Character-Creator\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/maxpromer.github.io\/LCD-Character-Creator\/<\/a><\/strong><\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/CGRAM_A00.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/CGRAM_A00.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><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff0000;\">En soldaki 0000 s\u00fctunu CGRAM yeni karakter adresidir. <\/span><\/strong><\/figcaption><\/figure>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/CGRAM_A02.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\/74HC595_HD44780_LCD\/pictures\/CGRAM_A02.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 \/>\nYukar\u0131daki <span style=\"color: #ff6600;\">A00 ve A02<\/span> modellerinin fark\u0131, ASCII 128 ve sonras\u0131 karakterleri g\u00f6steren yerde A00\u2019\u0131n \u00c7in karakterlerine yer vermesi. Piyasada daha \u00e7ok \u00c7in \u00fcretimi LCD ler oldu\u011fundan \u00c7in karakterli A00 modeli vard\u0131r. \u015eayet A02 modelini bulabilirseniz baz\u0131<span style=\"color: #ff6600;\"> <strong>faydal\u0131 karakterlerin haz\u0131r oldu\u011funu<\/strong><\/span> g\u00f6rebilirsiniz.<\/p>\n<p><span style=\"color: #ff6600;\">DDRAM adresi 80h tan ba\u015flar<\/span> <span style=\"color: #ff6600;\">ve bir yere kadar d\u00fczenli artarak gider.<\/span> Buna dikkat etmeniz gerekir.<br \/>\nSebep ise DDRAM d\u00fczenlenirken 2&#215;40 olarak dizayn edilmi\u015f. A\u015fa\u011f\u0131daki resimde oldu\u011fu gibi 00h ve 40h tan ba\u015flar. Bu adresler 7 bitlik adreslemedir. Y\u00fcksek taraftaki 8. bit 1 oldu\u011fundan ilk ba\u015flang\u0131\u00e7<br \/>\nB0000000 7 bit olarak 00h adresine kar\u015f\u0131l\u0131k gelir. Fakat DDRAM adresinde en soldaki bit 1 oldu\u011fundan B10000000 8 bit =1 byte olarak yazmam\u0131z gerekiyor. Bu da 80h adresine kar\u015f\u0131l\u0131k gelir.<br \/>\n2. Sat\u0131r ise 40h adresi olmas\u0131na ra\u011fmen 8. Bit 1 oldu\u011fundan C0h adresine kar\u015f\u0131l\u0131k gelir.<br \/>\n4&#215;20 olarak bakarsak da, 1. Sat\u0131r 80h, 2. Sat\u0131r C0h, 3. Sat\u0131r 94h 4. Sat\u0131r ise D4 adresinden ba\u015flar.<br \/>\nYapt\u0131\u011f\u0131m programda <strong>SENDSTRING alt program\u0131nda bunu g\u00f6rebilirsiniz.<\/strong><\/p>\n<figure style=\"width: 628px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/lcd%20adresleme.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/lcd%20adresleme.JPG?raw=true\" alt=\"\" width=\"628\" height=\"49\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 628px; --smush-placeholder-aspect-ratio: 628\/49;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff6600;\">2 x 16 DDRAM adresleme<\/span><\/strong><\/figcaption><\/figure>\n<figure style=\"width: 629px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/lcd%20adresleme_4_20.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/lcd%20adresleme_4_20.JPG?raw=true\" alt=\"\" width=\"629\" height=\"44\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 629px; --smush-placeholder-aspect-ratio: 629\/44;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff6600;\">4 x 20 adresleme. 00-13 1. sat\u0131r. 40-53 aras\u0131 2. sat\u0131r. 14-27 aras\u0131 3. sat\u0131r 54-67 aras\u0131 4. sat\u0131r olarak kullan\u0131l\u0131r.<\/span><\/strong><\/figcaption><\/figure>\n<p>4 x 20 sat\u0131r LCD lerde 1. sat\u0131r ve 3. sat\u0131r birbirinin devam\u0131d\u0131r. 2 ve 4. sat\u0131rlar birbirinin devam\u0131d\u0131r. Ekran sa\u011fa ve sola kayd\u0131r\u0131ld\u0131\u011f\u0131nda, 4. sat\u0131rda kaybolan karakter, 2. sat\u0131rda g\u00f6r\u00fcnmeye ba\u015flar.<br \/>\n3. sat\u0131rda kaybolan karakter, 1. sat\u0131rda g\u00f6r\u00fcnmeye ba\u015flar.<br \/>\nZaten adreslemeye bakarsan\u0131z da bunu birbirinin devam\u0131 olarak g\u00f6rebilirsiniz. <span style=\"color: #ff6600;\">Videoda bunu g\u00f6rebilirsiniz.<\/span><\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/set_degerler.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/set_degerler.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><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff6600;\">SETTING (AYARLAR) TABLOSU<\/span><\/strong><\/figcaption><\/figure>\n<p>Yukar\u0131daki tabloda komutlar\u0131n ayr\u0131lmas\u0131 i\u00e7in her komutun ba\u015flang\u0131\u00e7 yerine 1 verildi\u011fini g\u00f6rebilirsiniz.<br \/>\nDDRAM adreslemesi de 1+7 bit olarak verilir. <span style=\"color: #ff6600;\">Bu sadece adreslemedir. \u0130\u00e7erisine yazaca\u011f\u0131n\u0131z ASCII kodu ise 8 bitlik yani 1 byte l\u0131k bilgidir ve 255 karaktere kadar yaz\u0131labilir.<\/span> CGRAM tablosundaki 128. Karakter ve sonras\u0131 da bu \u015fekilde kullan\u0131labilir.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Gelelim bu adreslemeyi nas\u0131l verece\u011fimize.<\/span><\/strong><br \/>\n\u00d6ncelikle hangi adrese verece\u011fimiz bildiririz. DDRAM i\u00e7erisindeki adres olarak bakmadan sat\u0131r ve s\u00fctun olarak belirtip bu adreslemeyi yapaca\u011f\u0131z. Program i\u00e7erisinde <span style=\"color: #ff6600;\">sat ve sut<\/span> <span style=\"color: #ff6600;\">de\u011fi\u015fkenleri<\/span> bu sat\u0131r ve s\u00fctun bilgisini tutar. Bu de\u011ferlere g\u00f6re program hangi DDRAM adresini kast etti\u011fimizi anlar ve o DDRAM adresine bilgi yazaca\u011f\u0131m\u0131z\u0131 bildirir. Burada SENDCODE alt program\u0131 kullan\u0131l\u0131r.<\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/DDRAM_adresleme.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/DDRAM_adresleme.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><figcaption class=\"wp-caption-text\"><span style=\"color: #ff6600;\">burada g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi ADD bitleri 7 bittir. ba\u015f\u0131na ise 1 konularak 8 bitlik bir adres elde edilir. <\/span><\/figcaption><\/figure>\n<p><span style=\"color: #ff6600;\">Mant\u0131k \u015fudur.<\/span><br \/>\nDDRAM adres bilgisini yolla. <span style=\"color: #ff6600;\">SENDCODE<\/span> ile (cursor bu adrese otomatik olarak konumlan\u0131r. )<br \/>\nYazmak istedi\u011fimiz karakterin ASCII kodunu <span style=\"color: #ff6600;\">WRITECHAR<\/span> ile g\u00f6ndeririz. ( LCD mod\u00fcl bu ascii karaktere kar\u015f\u0131l\u0131k gelen karakteri CGRAM i\u00e7erisinden bulur ve ekrana yazar.)<\/p>\n<p><span style=\"color: #ff6600;\">Bu kadar basit bir i\u015flemdir.<\/span> <span style=\"color: #0000ff;\">Bu kadar adres bilgisini akl\u0131mda nas\u0131l tutar\u0131m demenize gerek yok.<\/span> Siz sadece istedi\u011finiz sat\u0131r ve s\u00fctun numaras\u0131n\u0131 se\u00e7tikten sonra, basit bir hesaplama k\u0131sm\u0131yla istedi\u011finiz DDRAM adresi hesaplanacakt\u0131r.<br \/>\n<span style=\"color: #ff6600;\">Bir de ASC\u0130\u0130 kodunu bulup da bunu mu yollayaca\u011f\u0131m derseniz.<\/span> Buna gerek yok. Siz \u201cA\u201d karakterini yazd\u0131\u011f\u0131n\u0131zda o zaten kar\u015f\u0131 tarafa \u201cA\u201d olarak gitmez. 1 byte l\u0131k kar\u015f\u0131l\u0131\u011f\u0131 gidece\u011finden, \u00f6zel bir hesap yapman\u0131za gerek kalmaz. \u201cA\u201d yazd\u0131\u011f\u0131n\u0131zda kar\u015f\u0131l\u0131k B01000001 olarak yaz\u0131l\u0131r.<\/p>\n<p>LCD mod\u00fcl ba\u015flat\u0131l\u0131rken <span style=\"color: #ff6600;\">INITIALIZE<\/span> denilen ba\u015flang\u0131\u00e7 haz\u0131rl\u0131klar\u0131 yap\u0131lmal\u0131d\u0131r.<br \/>\nBu haz\u0131rl\u0131klar <span style=\"color: #ff6600;\">SETUP alt program\u0131nda INITIALIZE<\/span> b\u00f6l\u00fcm\u00fcnde mevcuttur.<br \/>\n<span style=\"color: #0000ff;\">temp1=0x30;timesay=5000;sendcode(0);\/\/<\/span> 8 bit 5&#215;8 font 1 sat\u0131r se\u00e7imi yap\u0131l\u0131r. (Normalde 4 bit ile \u00e7al\u0131\u015faca\u011f\u0131z ama bunu g\u00f6ndermemiz gerek ve sonras\u0131nda 4 bit k\u0131sm\u0131n\u0131 se\u00e7ece\u011fiz.<br \/>\n<span style=\"color: #0000ff;\">temp1=0x30;timesay=200;sendcode(0);<\/span> \/\/ 8 bit 5&#215;8 font 1 sat\u0131r se\u00e7ildi.<br \/>\n<span style=\"color: #0000ff;\">temp1=0x30;timesay=200;sendcode(0);\/\/<\/span> 8 bit 5&#215;8 font 1 sat\u0131r se\u00e7ildi<br \/>\n<span style=\"color: #0000ff;\">temp1=0x20;timesay=200;sendcode(0); \/\/<\/span> 4 bit 5&#215;8 1 sat\u0131r se\u00e7ildi<br \/>\n<span style=\"color: #0000ff;\">temp1=0x28;timesay=200;sendcode(1);<\/span> \/\/4 bit 5&#215;8 font 2 sat\u0131r se\u00e7ildi.<br \/>\n<span style=\"color: #0000ff;\">temp1=0x08;timesay=200;sendcode(1);\/\/<\/span> Disp on off control hepsi OFF<br \/>\n<span style=\"color: #0000ff;\">temp1=0x01;timesay=200;sendcode(1);\/\/<\/span> Disp clear<br \/>\n<span style=\"color: #0000ff;\">temp1=0x06;timesay=200;sendcode(1);\/\/<\/span> Display shift OFF \u0130ncrement adres counter ***<br \/>\n<span style=\"color: #0000ff;\">temp1=0x0F;timesay=200;sendcode(1);\/\/<\/span> Display ON OFF kontrol= Display ON,CURSOR ON, BLINK ON. ( Cursor <span style=\"color: #ff6600;\">BLINK<\/span> on oldu\u011funda Cursor \u015fekli kutu \u015feklindedir. <span style=\"color: #ff6600;\">BLINK OFF<\/span> yap\u0131ld\u0131\u011f\u0131nda cursor <span style=\"color: #ff6600;\">alt \u00e7izgi<\/span> \u015feklinde g\u00f6r\u00fcn\u00fcr. C=1 oldu\u011funda cursor g\u00f6r\u00fcn\u00fcr. 0 oldu\u011funda CURSOR g\u00f6r\u00fcnmez. D=1 display ON demektir. D=0 oldu\u011funda Display OFF olur. Ekran kapat\u0131ld\u0131\u011f\u0131nda ekrandaki karakterler g\u00f6r\u00fcnmez hale gelir. Fakat silinmez. ON duruma geldi\u011finde karakterlerin yerlerinde oldu\u011funu g\u00f6r\u00fcrs\u00fcn\u00fcz. )<\/p>\n<p><span style=\"color: #ff6600;\">INITIALIZE bitmi\u015ftir.<\/span> Art\u0131k ekranda 1. Sat\u0131r ve 1. S\u00fctunda cursorun yand\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<br \/>\n*** i\u015faretli yerde<span style=\"color: #ff6600;\"> increment<\/span> kelimesi kullan\u0131ld\u0131. Bunun anlam\u0131 ise bir karakter yaz. Cursoru sa\u011fda bir sonraki s\u00fctuna g\u00f6t\u00fcr demektir. \u015eayet sat\u0131r ve s\u00fctun belirtmezseniz karakter cursorun bulundu\u011fu yere yaz\u0131l\u0131r ve bir sonraki s\u00fctuna ge\u00e7ilir.<br \/>\nBunun tam tersi de <span style=\"color: #ff6600;\">DECREMENT<\/span> vard\u0131r. Bunu pek kullanmay\u0131z. Fakat gerekli oldu\u011fu yerde bunu da kullanabilirsiniz. Bu da ters yaz\u0131 yazma i\u015flemidir. A\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcleri<span style=\"color: #ff6600;\"> increment<\/span> ve <span style=\"color: #ff6600;\">decrement<\/span> \u00f6rnekleridir.<\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/an06.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/an06.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><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff6600;\">INCREMENT olursa bu \u015fekilde yazar. <\/span><\/strong><\/figcaption><\/figure>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a style=\"font-weight: bold; background-color: transparent; font-family: 'Noto Sans', sans-serif; text-align: inherit;\" href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/an04.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/an04.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><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff6600;\">DECREMENT olarak bu \u015fekilde yazar. <\/span><\/strong><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><strong>Not:<\/strong> <span style=\"color: #ff6600;\">Animasyon alt program\u0131 bu komutlar\u0131n nas\u0131l uyguland\u0131\u011f\u0131n\u0131 g\u00f6steriyor.<\/span><br \/>\nINIT yaparken <span style=\"color: #ff6600;\">2 lines<\/span> ( sat\u0131r olarak se\u00e7tim.) Fakat bu sadece 1 ya da 2 se\u00e7ilebildi\u011fi i\u00e7indir. Biz 4 sat\u0131rl\u0131k ekrana sahibiz. Diye d\u00fc\u015f\u00fcn\u00fcyorsan\u0131z, 2&#215;40 olan sat\u0131r say\u0131s\u0131n\u0131 1&#215;20,1&#215;20,1&#215;20,1&#215;20 olarak payla\u015ft\u0131r\u0131yoruz. Yukar\u0131da <span style=\"color: #ff6600;\">DDRAM sat\u0131r adreslerini vermi\u015ftim.<\/span> Bu \u015fekilde ba\u015flang\u0131\u00e7 sat\u0131rlar\u0131n\u0131 ayarlay\u0131p yazd\u0131rabiliyorsunuz. Ayn\u0131 zamanda 5&#215;8 font istedim. <span style=\"color: #ff6600;\">5&#215;10 olsayd\u0131 2 sat\u0131r 1 karakter<\/span> alacakt\u0131. Bu \u015fekilde oldu\u011funda <span style=\"color: #ff6600;\">2 sat\u0131r se\u00e7memiz m\u00fcmk\u00fcn olmayacakt\u0131.<\/span><\/p>\n<p>Size \u00f6rnek verdi\u011fim programda 74HC595 ile bilgi okumak m\u00fcmk\u00fcn olmad\u0131\u011f\u0131 i\u00e7in, READ k\u0131sm\u0131na de\u011finmedim. Fakat Arduino ile direkt LCD kontrol etmek isterseniz, Busy flag denilen D7 bitini okuma i\u015flemini programa ekleyebilirsiniz.<\/p>\n<p><span style=\"color: #ff6600;\">SETTING tablosunda<\/span>, <strong>cursor or display shift b\u00f6l\u00fcm\u00fcnde<\/strong> <span style=\"color: #ff6600;\">S\/C ve R\/L<\/span> k\u0131s\u0131mlar\u0131n\u0131 ayarlayarak, isterseniz ekran kayd\u0131rma, isterseniz Cursor kayd\u0131rma yapabilirsiniz. S\/C = Screen\/Cursor olarak d\u00fc\u015f\u00fcn\u00fcn. 1 oldu\u011funda ekran, 0 oldu\u011funda cursor kayd\u0131r\u0131lacakt\u0131r.<br \/>\nR\/L= right\/Left olarak d\u00fc\u015f\u00fcn\u00fcyoruz. 1 oldu\u011funda <span style=\"color: #ff6600;\">Sa\u011fa<\/span>, 0 oldu\u011funda <span style=\"color: #ff6600;\">sola<\/span> kayma sa\u011flanacakt\u0131r.<br \/>\nTabii ki kullanmak i\u00e7in \u00f6ncesinde <span style=\"color: #ff6600;\">D4 bitini de 1 yapman\u0131z gerek.<\/span> (<span style=\"color: #ff6600;\"> Animasyon alt program\u0131nda var<\/span>)<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/kayd%C4%B1rma.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\/74HC595_HD44780_LCD\/pictures\/kayd%C4%B1rma.JPG?raw=true\" alt=\"\" width=\"607\" height=\"51\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 607px; --smush-placeholder-aspect-ratio: 607\/51;\" \/><\/a><br \/>\nBuraya kadar<span style=\"color: #ff6600;\"> LCD mod\u00fcl\u00fcn \u00e7al\u0131\u015fmas\u0131n\u0131<\/span> anlatmaya \u00e7al\u0131\u015ft\u0131m.<\/p>\n<p><strong><span style=\"color: #ff6600;\">\u015eimdi de 74HC595 entegresine bakal\u0131m.<\/span><br \/>\nBu entegreye ait<\/strong> <a href=\"https:\/\/www.diodes.com\/assets\/Datasheets\/74HC595.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>DATASHEET buradad\u0131r.<\/strong><\/a><\/p>\n<p>Bu resimdeki gibi \u00e7al\u0131\u015fmas\u0131 vard\u0131r. LATCH sinyali geldi\u011finde Giri\u015f bilgisi \u00e7\u0131k\u0131\u015fa yans\u0131r.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/74HC595-shift-register-working.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/74HC595-shift-register-working.gif?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 \/>\nBu entegre <span style=\"color: #ff6600;\">8 bit seri<\/span> bilgiyi, <span style=\"color: #ff6600;\">8 bit paralel<\/span> \u00e7\u0131k\u0131\u015fa aktar\u0131r. Ayn\u0131 zamanda 9. Pim deki Q7S \u00e7\u0131k\u0131\u015f\u0131 ile kaskat ba\u011flama yap\u0131labilir. Yani 8+8 bit olarak 2 entegreyi pe\u015fi s\u0131ra ba\u011flayarak 16 bit i\u015flem yapabilirsiniz.<br \/>\n<span style=\"color: #ff6600;\">Programda 74HC595 entegresine 1 byte l\u0131k seri bilgi a\u015fa\u011f\u0131daki gibi g\u00f6nderilir.<\/span><br \/>\n<span style=\"color: #3366ff;\">digitalWrite(LATCH, LOW); <\/span>\u00a0\u00a0\u00a0\/\/ ST_CP ucu LOW yap\u0131l\u0131r<br \/>\n<span style=\"color: #3366ff;\">shiftOut(DATA, CLOCK, MSBFIRST, temp2);\u00a0\u00a0 \/\/<\/span> DATA ve CLOCK bilgisi seri olarak g\u00f6nderilir ve 8 bit olarak 74HC595 taraf\u0131ndan al\u0131n\u0131r. DATA= DS pimidir. CLOCK=SH_CP pimidir.<br \/>\n<span style=\"color: #3366ff;\">digitalWrite(LATCH, HIGH); \/\/<\/span> ST_CP ucu HIGH yap\u0131larak gelen bilginin paralel \u00e7\u0131k\u0131\u015fa yans\u0131mas\u0131 sa\u011flan\u0131r.<\/p>\n<p>74HC595 ile LCD kontrol\u00fc, <span style=\"color: #ff6600;\">K\u00dcT\u00dcPHANES\u0130Z<\/span> olarak programda g\u00f6steriliyor.<br \/>\nZaten benim yapt\u0131\u011f\u0131m devre \u015femas\u0131na bakarsan\u0131z ayn\u0131 anda hem <span style=\"color: #ff6600;\">UNO ile K\u00dcT\u00dcPHANES\u0130Z<\/span>, LCD kontrol ediliyor. Hem de <span style=\"color: #ff6600;\">K\u00dcT\u00dcPHANES\u0130Z, 74HC595<\/span> ile LCD kontrol ediliyor.<\/p>\n<p>Bundan dolay\u0131 program biraz uzun gibi g\u00f6r\u00fcnse de, sadece g\u00f6nderme alt programlar\u0131nda<span style=\"color: #ff6600;\"> fark<\/span> var. Di\u011fer program b\u00f6l\u00fcmleri<span style=\"color: #ff6600;\"> ortakt\u0131r.<\/span> Hangi kontrol\u00fc kullanmak isterseniz, di\u011ferini silersiniz. Biraz daha sadele\u015fecektir.<\/p>\n<p>Ayr\u0131ca program i\u00e7erisinde <span style=\"color: #ff6600;\">Animasyon sat\u0131rlar\u0131 da var<\/span>. Bunlar da gerekti\u011finde silinecektir. Program daha da k\u0131salacakt\u0131r. <span style=\"color: #ff6600;\">Animasyon k\u0131sm\u0131 komutlar\u0131 nas\u0131l kullanabilece\u011finizi g\u00f6steriyor.<\/span><\/p>\n<p>ESP01 mod\u00fcl\u00fc ile Arduino ide \u00fczerinden programlayarak 74HC595 ile LCD kontrol program\u0131n\u0131 kullanabilirsiniz. <strong>3 adet pim gerekiyor.<\/strong> Bu pimler <strong>Tx, Rx, GPIO2<\/strong> pimleri olacakt\u0131r. 1 tane <strong>GPIO-0<\/strong> pimi bo\u015fta kalacak. Gerekti\u011finde kullan\u0131labilir. <span style=\"color: #ff6600;\">Bu pim, ayn\u0131 zamanda programlamada kullan\u0131ld\u0131\u011f\u0131ndan, son \u00e7are olarak kullanmak istiyorum.<\/span><\/p>\n<p>Bunun yan\u0131 s\u0131ra <span style=\"color: #ff6600;\">pim tasarrufu<\/span> da yapabilirsiniz. 74HC595 ten gelen <span style=\"color: #ff6600;\">RW pimi<\/span>, \u015fayet LCD \u00fczerinden bilgi okunmayacaksa, direkt olarak GND ye ba\u011flanabilir. Zaten RW ucu ve LED ayd\u0131nlatma dahil entegrenin 8 bitlik \u00e7\u0131k\u0131\u015f\u0131 ile rahatl\u0131kla yap\u0131l\u0131yor.<br \/>\nRW pimini GND ye ba\u011flarsan\u0131z, geriye kalan 1 adet pimi ba\u015fka i\u015flerde kullan\u0131labilir. <span style=\"color: #ff6600;\">Mesela alarm Led&#8217;i ya da r\u00f6lesi i\u00e7in kullan\u0131labilir.<\/span><\/p>\n<p>Animasyon k\u0131sm\u0131nda ise <span style=\"color: #ff6600;\">Normal LCD k\u00fct\u00fcphanesiyle yapabilece\u011finiz her \u015feyi nas\u0131l yapabilece\u011finizi g\u00f6stermeye \u00e7al\u0131\u015ft\u0131m<\/span>. Hangilerini isterseniz, program\u0131n\u0131zda kullanabilirsiniz. <span style=\"color: #0000ff;\">Hatta LCD ayd\u0131nlatma Led&#8217;ini de kontrol edebiliyorsunuz.\u00a0<\/span><\/p>\n<p><span style=\"color: #ff6600;\"><strong>Program\u0131n detaylar\u0131na bakal\u0131m. <\/strong><\/span><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/74HC595_HD44780_LCD\/pictures\/CIRCUIT.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\/74HC595_HD44780_LCD\/pictures\/CIRCUIT.png?raw=true\" alt=\"\" width=\"616\" height=\"421\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 616px; --smush-placeholder-aspect-ratio: 616\/421;\" \/><\/a><br \/>\nDevre \u015femas\u0131ndan g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi <span style=\"color: #ff6600;\">sol tarafta 2, sa\u011f tarafta 2 LCD<\/span> var. Sa\u011f taraftakiler direkt olarak Arduino uno taraf\u0131ndan kontrol edilen LCD lerdir.<br \/>\nSol taraftakiler ise 74HC595 entegresiyle kullan\u0131l\u0131yor. 74HC595 entegresinin giri\u015fleri ise, ayn\u0131 UNO taraf\u0131ndan kontrol ediliyor. Sizler hangi \u00e7al\u0131\u015fmay\u0131, uygulamay\u0131 se\u00e7erseniz, di\u011ferinin g\u00f6nder k\u0131sm\u0131n\u0131 silin yeter.<\/p>\n<p>Ayr\u0131ca Arduino UNO program\u0131nda direkt LCD kullan\u0131m\u0131nda, <span style=\"color: #ff6600;\"><strong>PORT Manipulation<\/strong> <\/span>\u00f6zelli\u011fi kullan\u0131l\u0131yor. Bu \u00f6zellik port pimlerini, teker teker dijital \u00e7\u0131k\u0131\u015f olarak de\u011fil, PORT\u2019a ait 8 bitin bir anda \u00e7\u0131k\u0131\u015fa ula\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p><span style=\"color: #ff6600;\">DDRD=B11111101;<\/span> komutu PORT D \u00e7\u0131k\u0131\u015f\u0131 pimlerinin hangileri INPUT, hangileri OUTPUT olacak onu belirler. <span style=\"color: #ff6600;\">1<\/span> olanlar <span style=\"color: #ff6600;\">OUTPUT<\/span>,\u00a0 <span style=\"color: #ff6600;\">0<\/span> olanlar ise<span style=\"color: #ff6600;\"> INPUT<\/span> olarak de\u011ferlendirilirler.<\/p>\n<p>Bu <span style=\"color: #ff6600;\">setup alt program\u0131nda<\/span> ayarland\u0131ktan sonra PORT D \u00e7\u0131k\u0131\u015f\u0131nda OUTPUT olanlar hepsi birden \u00e7\u0131k\u0131\u015f portuna yans\u0131r. Digital Write komutu ile P\u0130M baz\u0131nda yap\u0131lan i\u015flem, bu \u00e7al\u0131\u015fmayla port baz\u0131nda yap\u0131l\u0131r ve 8 bit hepsi birden \u00e7\u0131k\u0131\u015fa yans\u0131r. 0 olan bit Arduino UNO nun Rx giri\u015fidir. Bundan dolay\u0131 INPUT yap\u0131lm\u0131\u015ft\u0131r.<\/p>\n<p>Programda B\u0130T olarak<span style=\"color: #ff6600;\"> OR(VEYA)<\/span> i\u015flemi kullan\u0131lm\u0131\u015ft\u0131r. Bu i\u015flem ile \u00e7\u0131k\u0131\u015fta, <span style=\"color: #ff6600;\">HIGH<\/span> olmas\u0131 gereken yere yere <span style=\"color: #ff6600;\">1<\/span> verilir ve \u00e7\u0131k\u0131\u015f <span style=\"color: #ff6600;\">de\u011fi\u015fmeyecekse<\/span>, <span style=\"color: #ff6600;\">0<\/span> verilir.<br \/>\n<span style=\"color: #0000ff;\">PORTD|B00001000; \/\/<\/span> bu binary say\u0131da 3. bit 1 olmal\u0131 diye <span style=\"color: #ff6600;\">VEYA<\/span> i\u015flemi uygulanm\u0131\u015ft\u0131r.<br \/>\nBu VEYA i\u015flemi, Lojik devre mant\u0131\u011f\u0131ndan gelir. <span style=\"color: #ff6600;\">2 giri\u015ften bir tanesi 1 ise \u00e7\u0131k\u0131\u015f 1 dir.<\/span> Bundan dolay\u0131 <span style=\"color: #ff6600;\">1<\/span> olmas\u0131 gereken yerde, <span style=\"color: #ff6600;\">VEYA<\/span> i\u015flemi kullan\u0131l\u0131r ve \u00e7\u0131k\u0131\u015f <span style=\"color: #ff6600;\">1<\/span> yap\u0131l\u0131r. Di\u011fer bitler de\u011fi\u015fmesin diyorsan\u0131z <span style=\"color: #ff6600;\">0<\/span> verilecektir.<\/p>\n<p><strong>Bunun tam tersi. <\/strong>Bir \u00e7\u0131k\u0131\u015f\u0131n s\u0131f\u0131r olmas\u0131n\u0131 istiyorsak da, <span style=\"color: #ff6600;\">VE (AND)<\/span> i\u015flemi kullan\u0131l\u0131r. <span style=\"color: #ff6600;\">AND<\/span> i\u015flemi \u00e7arpma i\u015flemi gibidir. Bir say\u0131y\u0131 <span style=\"color: #ff6600;\">0<\/span> ile \u00e7arparsan\u0131z sonu\u00e7 <span style=\"color: #ff6600;\">0<\/span> olacakt\u0131r. \u00c7arpma i\u015fleminde etkisiz eleman <span style=\"color: #ff6600;\">1<\/span> dir. \u015eayet bir byte bilginin, bitlerinden herhangi biri durum de\u011fi\u015ftirmeyecekse onlara ise <span style=\"color: #ff6600;\">1<\/span> veririz.<br \/>\nBu \u015fekilde d\u00fc\u015f\u00fcn\u00fcrsek de, \u00e7\u0131k\u0131\u015f\u0131 <span style=\"color: #ff6600;\">0<\/span> yapmak i\u00e7in<span style=\"color: #ff6600;\"> AND<\/span> i\u015flemini ger\u00e7ekle\u015ftiririz.<br \/>\n<span style=\"color: #0000ff;\">PORTD&amp;B11110111; \/\/<\/span> Burada <span style=\"color: #ff6600;\">3.<\/span> Bit s\u0131f\u0131r olsun, di\u011fer bitleri de\u011fi\u015ftirme diyoruz.<\/p>\n<p><strong>AND \/ OR i\u015flemlerinin detaylar\u0131 i\u00e7in a\u015fa\u011f\u0131daki linkleri kullanabilirsiniz.<\/strong><\/p>\n<p><a href=\"https:\/\/www.arduino.cc\/reference\/en\/language\/structure\/bitwise-operators\/bitwiseand\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>https:\/\/www.arduino.cc\/reference\/en\/language\/structure\/bitwise-operators\/bitwiseand\/<\/strong><\/a><\/p>\n<p><strong><a href=\"https:\/\/www.arduino.cc\/reference\/en\/language\/structure\/bitwise-operators\/bitwiseor\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.arduino.cc\/reference\/en\/language\/structure\/bitwise-operators\/bitwiseor\/<\/a><\/strong><\/p>\n<p>Bu i\u015faretin benzeri ise tek <span style=\"color: #ff6600;\">&amp;<\/span> ve tek <span style=\"color: #ff6600;\">|<\/span> yerine\u00a0 <span style=\"color: #ff6600;\">&amp;&amp;\u00a0<\/span> ve <span style=\"color: #ff6600;\">||<\/span> i\u015faretinin kullan\u0131lmas\u0131d\u0131r. Bu \u015fekilde 2 karakterli yaz\u0131ld\u0131ysa mant\u0131ksal kar\u015f\u0131la\u015ft\u0131rma yapmak i\u00e7indir. Mesela IF c\u00fcmlelerinde <span style=\"color: #ff6600;\">=<\/span> i\u015fareti yerine <span style=\"color: #ff6600;\">==<\/span> i\u015fareti kullan\u0131l\u0131yor. Sizler de bu tip kar\u015f\u0131la\u015ft\u0131rmalarda <span style=\"color: #ff6600;\">&amp;&amp;<\/span> ve<span style=\"color: #ff6600;\"> ||<\/span> i\u015faretlerini kullanabilirsiniz.<br \/>\nFakat BIT i\u015flemlerinde sadece tek <span style=\"color: #ff6600;\">&amp; ve |<\/span> yeterlidir.<\/p>\n<p>Ben LCD de <span style=\"color: #ff6600;\">4bit \u00e7al\u0131\u015fmay\u0131 se\u00e7tim<\/span>. Bu \u015fekildeki \u00e7al\u0131\u015fmada ise<span style=\"color: #ff6600;\"> 8 bitlik say\u0131n\u0131n y\u00fcksek 4 bitini yazd\u0131r\u0131yorum.<\/span> Sonras\u0131nda <span style=\"color: #ff6600;\">d\u00fc\u015f\u00fck 4 bitini, y\u00fcksek 4 bitin yerine kayd\u0131r\u0131p, tekrar y\u00fcksek 4 bit bilgi gibi yazd\u0131r\u0131yorum.<\/span><\/p>\n<p>\u00c7al\u0131\u015fma \u015fekli \u015femadan da g\u00f6rebilece\u011finiz gibi, LCD lerin D4,D5,D6,D7 pimlerine, bilgi 2 ayr\u0131 zamanda veriliyor. Bunu sa\u011flayan ise E (<span style=\"color: #ff6600;\">Enable<\/span> giri\u015finin <span style=\"color: #ff6600;\">HIGH<\/span> ve <span style=\"color: #ff6600;\">LOW<\/span> yap\u0131lmas\u0131yla m\u00fcmk\u00fcn oluyor. )<br \/>\n4bit bilgiyi \u00e7\u0131k\u0131\u015fa veriyorum, E ucunu HIGH ve LOW yap\u0131nca birinci 4 bit LCD ye aktar\u0131l\u0131yor. Sonras\u0131nda ise d\u00fc\u015f\u00fck de\u011ferli 4 biti, y\u00fcksek de\u011ferli 4 bit yerine kayd\u0131r\u0131yorum ve PORT \u00e7\u0131k\u0131\u015f\u0131na aktar\u0131yorum. Sonras\u0131nda tekrar E ucunu HIGH ve LOW yaparak bilgiyi LCD ye aktar\u0131yorum.<\/p>\n<p><span style=\"color: #ff6600;\">\u0130ST\u0130SNA<\/span> olan komutlar da var. Bunlar LCD nin \u0130N\u0130T\u0130AL\u0130ZE dedi\u011fimiz ba\u015flang\u0131\u00e7 ayarlar\u0131n\u0131n yap\u0131lmas\u0131nda <span style=\"color: #ff6600;\">1<\/span> kez kullan\u0131l\u0131yor. Bu komutlar da 4 bit olarak iletiliyor. Fakat 2 kademede de\u011fil tek kademede LCD ye aktar\u0131l\u0131yor.<br \/>\nBunun d\u0131\u015f\u0131ndaki komut ve karakter yazmalar hep<span style=\"color: #ff6600;\"> 2 adet 4 bit \u015feklinde<\/span> LCD ye aktar\u0131l\u0131r.<\/p>\n<p><span style=\"color: #0000ff;\"><strong>temp2=temp1&amp;B11110000;\/\/<\/strong> <\/span>Burada<span style=\"color: #ff6600;\"> temp1<\/span> de\u011fi\u015fkeninin i\u00e7eri\u011findeki \u00fcst 4 biti temp2 ye aktar\u0131yoruz. Bunu yaparken d\u00fc\u015f\u00fck 4 biti ise s\u0131f\u0131rl\u0131yoruz.<\/p>\n<p><span style=\"color: #0000ff;\"><strong>temp3=temp1&amp;B00001111;<\/strong> \/<\/span>\/Burada ise <span style=\"color: #ff6600;\">temp1<\/span> in d\u00fc\u015f\u00fck 4 bitini temp3 de\u011fi\u015fkenine aktar\u0131yoruz. Y\u00fcksek 4 bitini ise s\u0131f\u0131rl\u0131yoruz.<\/p>\n<p><span style=\"color: #0000ff;\"><strong>temp3=temp3&lt;&lt;4; \/\/<\/strong><\/span> Burada ise <span style=\"color: #ff6600;\">temp3<\/span> teki <span style=\"color: #ff6600;\">d\u00fc\u015f\u00fck 4 biti<\/span> sola kayd\u0131rarak <span style=\"color: #ff6600;\">y\u00fcksek 4 bit<\/span> olmas\u0131n\u0131 sa\u011fl\u0131yoruz.<br \/>\nSonras\u0131nda \u00f6nce <span style=\"color: #ff6600;\">temp2<\/span> yi sonras\u0131nda ise <span style=\"color: #ff6600;\">temp3<\/span> de\u011fi\u015fkenini LCD ye aktar\u0131yoruz.<\/p>\n<p>A\u015fa\u011f\u0131daki sat\u0131rlarla bilgiyi Arduinodan LCD ye g\u00f6nderiyoruz. Buna dikkat ederseniz sadece <span style=\"color: #ff6600;\">temp2<\/span> g\u00f6nderiliyor. \u00d6nce <span style=\"color: #ff6600;\">temp2<\/span> LCD ye gidiyor sonras\u0131nda <span style=\"color: #ff6600;\">temp2=temp3<\/span> komutuyla <span style=\"color: #ff6600;\">temp2<\/span> de\u011ferini <span style=\"color: #ff6600;\">temp3<\/span> de\u011fi\u015fkenine e\u015fitliyoruz ve yine ayn\u0131 sat\u0131rlar\u0131 kullanarak <span style=\"color: #ff6600;\">temp3<\/span> say\u0131s\u0131n\u0131 g\u00f6ndermi\u015f oluyoruz.<br \/>\n( Bunu b\u00f6yle yapmak yerine, ayn\u0131 sat\u0131rlar\u0131 kopyalayarak hem temp2 hem de temp3 ayr\u0131 ayr\u0131 g\u00f6nderilebilir. Program sat\u0131r\u0131ndan tasaruf yapmak i\u00e7in bu \u015fekilde yap\u0131ld\u0131. )<\/p>\n<p><span style=\"color: #0000ff;\">digitalWrite(RS, RSS); \/\/<\/span> RSS LOW ve HIGH olarak gelebilir. Bir de\u011fi\u015fkendir.<br \/>\n<span style=\"color: #0000ff;\">delayMicroseconds(200);<\/span><br \/>\n<span style=\"color: #0000ff;\">digitalWrite(RW, LOW);<\/span><br \/>\n<span style=\"color: #0000ff;\">delayMicroseconds(200);<\/span><br \/>\n<span style=\"color: #0000ff;\">digitalWrite(EN, HIGH);<\/span><br \/>\n<span style=\"color: #0000ff;\">delayMicroseconds(200);<\/span><br \/>\n<span style=\"color: #0000ff;\">PORTD=temp2;<\/span><br \/>\n<span style=\"color: #0000ff;\">digitalWrite(EN, LOW);<\/span><br \/>\n<span style=\"color: #0000ff;\">delayMicroseconds(timesay);<\/span><\/p>\n<p>\u015eayet 74HC595 e g\u00f6nderiyorsak, mant\u0131k yine ayn\u0131 fakat komutlar biraz farkl\u0131. 74HC595 ile seri haberle\u015fme kullan\u0131ld\u0131\u011f\u0131ndan <span style=\"color: #ff6600;\">SHIFTOUT komutunu <\/span>kullan\u0131yoruz.<br \/>\n<span style=\"color: #ff6600;\">Shiftout ayr\u0131nt\u0131l\u0131 bilgi i\u00e7in buraya bak\u0131n\u0131z.<\/span><br \/>\n<a href=\"https:\/\/www.arduino.cc\/reference\/en\/language\/functions\/advanced-io\/shiftout\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.arduino.cc\/reference\/en\/language\/functions\/advanced-io\/shiftout\/<\/a><\/p>\n<p><span style=\"color: #0000ff;\">digitalWrite(LATCH, LOW);<\/span><br \/>\n<span style=\"color: #0000ff;\">shiftOut(DATA, CLOCK, MSBFIRST, temp2);<\/span><br \/>\n<span style=\"color: #0000ff;\">digitalWrite(LATCH, HIGH);<\/span><br \/>\n<span style=\"color: #0000ff;\">delayMicroseconds(200);<\/span><br \/>\n<span style=\"color: #0000ff;\">temp2=temp2&amp;B11111011;\/\/ E=0<\/span><br \/>\n<span style=\"color: #0000ff;\">digitalWrite(LATCH, LOW);<\/span><br \/>\n<span style=\"color: #0000ff;\">shiftOut(DATA, CLOCK, MSBFIRST, temp2);<\/span><br \/>\n<span style=\"color: #0000ff;\">digitalWrite(LATCH, HIGH);<\/span><br \/>\n<span style=\"color: #0000ff;\">delayMicroseconds(timesay);\/\/<\/span><span style=\"color: #ff6600;\"> timesay<\/span> genelde, t\u00fcm komut ve karakterlerde ayn\u0131d\u0131r. Fakat baz\u0131 initialize komutlar\u0131nda de\u011fi\u015febilece\u011finden bir de\u011fi\u015fkene ba\u011flanm\u0131\u015ft\u0131r.<\/p>\n<p>LCD baz\u0131 komutlar\u0131 al\u0131p i\u015flerken bir zaman ge\u00e7iyor. Bu zaman bir\u00e7ok yazma i\u015fleminde ayn\u0131 olsa da baz\u0131 durumlarda farkl\u0131 i\u015fleme zaman\u0131 olabiliyor.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Program i\u00e7erisindeki ALT PROGRAMLAR:<\/strong><\/span><\/p>\n<p>Arduino program\u0131 oldu\u011fu i\u00e7in <span style=\"color: #ff6600;\">SETUP ve LOOP<\/span> b\u00f6l\u00fcmleri vard\u0131r.<br \/>\n<span style=\"color: #ff6600;\">SENDCODE() :<\/span> LCD ye komut yollamak i\u00e7in bu alt program kullan\u0131l\u0131r. Parametre<span style=\"color: #ff6600;\"> 0<\/span> ise initialize komutu gibi<span style=\"color: #ff6600;\"> tek 4 bit<\/span> bilgi yollan\u0131r. <span style=\"color: #ff6600;\">1<\/span> ise <span style=\"color: #ff6600;\">1 byte bilgi 2 x 4 bit<\/span> olarak yollan\u0131r.<br \/>\n<span style=\"color: #0000ff;\">STRINGSEND (3,1);:<\/span> Yaz\u0131lacak karakter dizesini karakter olarak g\u00f6nderir. Bu parametreler yazmaya ba\u015flan\u0131lacak olan sat\u0131r ve s\u00fctun numaralar\u0131d\u0131r.<br \/>\n<span style=\"color: #0000ff;\">WRITECHAR:<\/span> Karakterin LCD ye g\u00f6nderilmesini sa\u011flar.<br \/>\n<span style=\"color: #0000ff;\">SENDER:<\/span> Arduino uno dan LCD ye g\u00f6nderilen bilgiler. Karakterin LCD ye 4 bit olarak gitmesini sa\u011flar.<br \/>\n<span style=\"color: #0000ff;\">SENDER1:<\/span> Arduino uno dan 74HC595 e g\u00f6nderilen bilgilerdir.<br \/>\n<span style=\"color: #0000ff;\">LEDONOFF:<\/span> Ayd\u0131nlatma ledinin a\u00e7\u0131lmas\u0131n\u0131 kapanmas\u0131n\u0131 sa\u011flamak i\u00e7in arduino pimine ve 74HC595 entegresine bilgi g\u00f6nderir.<br \/>\n<span style=\"color: #0000ff;\"><strong>NEWCHAR(1,12,18,18,12,0,0,0,0);\/\/<\/strong><\/span> Bu parametreli bir alt programd\u0131r. Parametrelerden birincisi 0-7 aras\u0131nda hangi yeni karakterse onun numaras\u0131d\u0131r. Di\u011ferleri ise karakter jenerat\u00f6r\u00fcnden ald\u0131\u011f\u0131n\u0131z bilgilerdir.<\/p>\n<p><strong>Not:<\/strong> Yeni karakter olu\u015ftururken, \u00e7ok gerekmedik\u00e7e, <span style=\"color: #ff6600;\">en alt sat\u0131r\u0131 bo\u015f b\u0131rakmam\u0131z gerekir.<\/span> \u00c7\u00fcnk\u00fc en alt k\u0131s\u0131m \u00c7izgi cursor i\u015faretinin g\u00f6r\u00fcld\u00fc\u011f\u00fc aland\u0131r ve karakterin en alt k\u0131sm\u0131 g\u00f6r\u00fcnmez olacakt\u0131r. Ya da cursor i\u015faret\u00e7isini gizlemeniz gerekir. CURSOR = \u0130MLE\u00c7 olarak da s\u00f6ylenebilir.<\/p>\n<p><strong><span style=\"color: #ff6600;\">T\u00fcm program ve dok\u00fcmanlara<\/span><\/strong><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/74HC595_HD44780_LCD\" target=\"_blank\" rel=\"noopener noreferrer\"><strong> buradan ula\u015fabilirsiniz<\/strong>.\u00a0<\/a><\/p>\n<p><span style=\"color: #0000ff;\">Proteus dosyas\u0131 videoda 8.6 versiyonuyla yap\u0131ld\u0131. Proteus 8.6 yoksa sorun de\u011fil.\u00a0 <\/span><br \/>\n<span style=\"color: #0000ff;\">Proteus 7.10 ile yap\u0131lm\u0131\u015f \u00f6rne\u011fi ise t\u00fcm versiyonlarla \u00e7al\u0131\u015ft\u0131rabilirsiniz. <strong>74hc595_lcd_yeni2.DSN dosyas\u0131 proteus 7.10 ile yap\u0131ld\u0131.\u00a0<\/strong><\/span><\/p>\n<p><strong><span style=\"color: #0000ff;\">Karakter LCD kontrol etmek istiyorsan\u0131z, \u00e7e\u015fitli kullan\u0131mlar var.\u00a0<\/span><\/strong><br \/>\nMesela EASYLCD. Seri port \u00fczerinden, tek kablo ile karakter LCD yi kullanman\u0131z\u0131 sa\u011flar. <span style=\"color: #ff6600;\">Bu konuda detayl\u0131 bilgi ve \u00e7e\u015fitli uygulamalar i\u00e7in<\/span><br \/>\n<a href=\"https:\/\/www.mikrobotik.com\/wp2\/2021\/10\/31\/easylcd-modulu-acik-kaynak-olarak-paylasiliyor\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>bu link&#8217;i kullanabilirsiniz.<\/strong>\u00a0<\/a><\/p>\n<p>Bu \u00e7al\u0131\u015fma da <span style=\"color: #ff6600;\">ESK\u0130 TELEFONLARINIZI, LCD<\/span> <span style=\"color: #ff6600;\">ekran<\/span> olarak kullanman\u0131z\u0131 sa\u011flar.<br \/>\n<span style=\"color: #ff6600;\">Bu konudaki detaylara ise<\/span> <a href=\"https:\/\/www.mikrobotik.com\/wp2\/category\/easylcd_mobile\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>bu linkten ula\u015fabilirsiniz.<\/strong><\/a><\/p>\n<p><iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/Ls_RANFQWes\" width=\"956\" height=\"538\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><br \/>\n&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Kaynak olarak <a href=\"http:\/\/www.dinceraydin.com\/lcd\/commands.htm\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.dinceraydin.com\/lcd\/commands.htm<\/a> sayfas\u0131ndan baz\u0131 bilgi ve resimler al\u0131nm\u0131\u015ft\u0131r.<\/p>\n<p>Ayr\u0131ca bu sayfada da <span style=\"color: #ff6600;\">k\u00fct\u00fcphaneli<\/span> olarak <span style=\"color: #ff6600;\">Arduino i\u00e7in yap\u0131lm\u0131\u015f<\/span> <a href=\"https:\/\/engineeringvolkan.wordpress.com\/2015\/06\/19\/74hc595-entegresi-ile-16x2-lcd-ekran-kullanimi\/\" target=\"_blank\" rel=\"noopener noreferrer\">74HC595 ile lcd kullan\u0131m\u0131na bakabilirsiniz.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>74HC595 ile karakter LCD kontrol\u00fcn\u00fc, nas\u0131l yapabiliriz? Bu entegre zaten 7 segment displaylerde \u00e7ok kullan\u0131l\u0131r. Bu entegre ile 3 kablo kullanarak 8 bitlik bir \u00e7\u0131k\u0131\u015f elde edilir. Bu \u00e7\u0131k\u0131\u015flar bir&#8230; <\/p>\n","protected":false},"author":1,"featured_media":2318,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,22],"tags":[],"class_list":["post-2310","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino_pic_digerleri","category-display"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2310","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=2310"}],"version-history":[{"count":10,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2310\/revisions"}],"predecessor-version":[{"id":2323,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2310\/revisions\/2323"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/2318"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=2310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=2310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=2310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}