{"id":437,"date":"2018-09-12T13:44:48","date_gmt":"2018-09-12T13:44:48","guid":{"rendered":"http:\/\/mikrobotik.com\/wp2\/?p=437"},"modified":"2023-04-05T12:50:35","modified_gmt":"2023-04-05T09:50:35","slug":"2x16-lcd-buyuk-karakter-yazilabilir-mi","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2018\/09\/12\/2x16-lcd-buyuk-karakter-yazilabilir-mi\/","title":{"rendered":"2&#215;16 LCD B\u00fcy\u00fck karakter yaz\u0131labilir mi?"},"content":{"rendered":"<p>Bu konumuzda 2&#215;16 LCD displaylerde b\u00fcy\u00fck karakterin nas\u0131l yaz\u0131labildi\u011fini g\u00f6rece\u011fiz. \u00d6ncelikle HD44780 LCD lerin 2 font kullanabildi\u011fini fakat kullan\u0131c\u0131lar\u0131n genelde 5*8 fontunu kulland\u0131\u011f\u0131n\u0131 belirtelim. Bundan ba\u015fka 5*10 font da kullan\u0131labiliyormu\u015f fakat ben hi\u00e7 kullanmad\u0131m. \u015eayet bu konuya ilgi duyan varsa a\u015fa\u011f\u0131daki linkten 5&#215;10 font kullan\u0131m\u0131n\u0131 g\u00f6zlemleyebilir.<br \/>\n5&#215;10 font kullan\u0131m\u0131n\u0131<a href=\"https:\/\/www.microcontroller-project.com\/5x10-size-font-characters-displayed-on-16x2-lcd.html#\" target=\"_blank\" rel=\"noopener\"><strong> bu siteden<\/strong><\/a>\u00a0(ingilizce) okuyabilirsiniz.<br \/>\n<strong>Fakat ben bunu g\u00f6stermeyece\u011fim<\/strong>. Mesela saat yada \u0131s\u0131 g\u00f6stergesi olarak kullanmak istiyorsunuz. LCD de karakterler k\u00fc\u00e7\u00fck oldu\u011fundan uzaktan g\u00f6r\u00fcnmede sorun ya\u015f\u0131yorsunuz. O zaman akla <strong>2 sat\u0131r\u0131 birden tek sat\u0131r<\/strong> gibi kullan\u0131p numaralar\u0131 b\u00fcy\u00fck g\u00f6stermek gerekti\u011fi geliyor. Bunun yolunu bulmal\u0131y\u0131z.<\/p>\n<p>Bu LCD nin kendi fontlar\u0131yla m\u00fcmk\u00fcn olmad\u0131\u011f\u0131ndan LCD nin <strong>yeni karakter<\/strong> k\u0131sm\u0131n\u0131 kullanarak yapabilece\u011fimiz bir g\u00fczelliktir.<br \/>\nFakat burada da LCD nin 8 yeni karakter kullan\u0131m s\u0131n\u0131rlamas\u0131 ile kar\u015f\u0131 kar\u015f\u0131ya kal\u0131yoruz. ekranda ayn\u0131 anda sadece 8 yeni karakter kullanabiliriz. Ekrandaki bilgi de\u011fi\u015fti\u011finde ba\u015fka yeni karaktere ihtiyac\u0131m\u0131z oldu\u011funda yine 8 karakteri a\u015fmayacak \u015fekilde kullanabilece\u011fiz. Tabii ki burada \u015funa da dikkat etmemiz laz\u0131m. \u00d6rne\u011fin 1. yeni karakter haf\u0131zas\u0131na bir karakter g\u00f6nderdiniz. Mesela t\u00fcrk\u00e7e karakter olarak \u015e g\u00f6nderdiniz. \u015eayet ekran\u0131 temizlemeden ayn\u0131 karaktere \u00c7 karakterini g\u00f6nderirseniz ekranda b\u00fct\u00fcn \u015e g\u00f6r\u00fclen yere \u00c7 yazacakt\u0131r ki bu da kelimenizin anlams\u0131z g\u00f6r\u00fcnmesine sebep olacakt\u0131r.<\/p>\n<p>Mesela, A\u015eIK yazd\u0131n\u0131z ve sonras\u0131nda ekran\u0131 temizlemeden sadece yeni \u00c7 karakterini g\u00f6nderdiniz O zaman kelimeniz A\u00c7IK olacakt\u0131r.<br \/>\nB\u00fct\u00fcn bunlar\u0131 g\u00f6z \u00f6n\u00fcnde bulundursan\u0131z bile uzun bir \u015fekilde ekrana yeni karakterleri devaml\u0131 g\u00f6ndermek zorunda kalacaks\u0131n\u0131z.<\/p>\n<p><strong><span style=\"color: #ff0000;\">Kolay\u0131 var m\u0131 derseniz,<\/span> EASYLCD mod\u00fcl kendi eprom haf\u0131zas\u0131nda sizin i\u00e7in 24 yeni karakteri saklayabilir ve karakterleri kolayl\u0131kla LCDSC (LCD Select Character) gibi bir komutla ekrana getirebilirsiniz.<\/strong> Bu mod\u00fcl\u00fc kulland\u0131\u011f\u0131n\u0131zda yeni karakter sorununu a\u015fm\u0131\u015f olacaks\u0131n\u0131z. programda yeni karakterlerin kodlar\u0131na yer vermeniz gerekmeyecektir.<\/p>\n<p>B\u00fct\u00fcn bunlar\u0131 a\u015ft\u0131n\u0131z diyelim. \u015eimdi de ekranda t\u00fcm numaralar\u0131 8 yeni karakterle olu\u015fturmak kal\u0131yor. Bunu da karakter jenerat\u00f6r\u00fcyle olu\u015fturup seri port \u00fczerinden EASYLCD mod\u00fcle g\u00f6ndererek yapabilirsiniz. Ya da EASYLCD mod\u00fcl\u00fcn yan\u0131nda verilen visual basic ile yaz\u0131lm\u0131\u015f olan aray\u00fcz\u00fc kullanarak kolayl\u0131kla Mod\u00fcl\u00fcn epromunu programlayabilirsiniz.<\/p>\n<p><a title=\"Yeni Karakter Sistemi\" href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/yenikarakter1.jpg\" rel=\"lightbox\"><img decoding=\"async\" class=\"alignleft wp-image-131 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/yenikarakter1.jpg\" alt=\"\" width=\"293\" height=\"192\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 293px; --smush-placeholder-aspect-ratio: 293\/192;\" \/><\/a><\/p>\n<p>Bu resimdeki gibi olu\u015fturaca\u011f\u0131n\u0131z karakterler 8 yeni karakter limitini a\u015fmayacakt\u0131r. Bu \u015fekilde ekranda saat \u0131s\u0131 gibi de\u011ferleri b\u00fcy\u00fck g\u00f6sterebileceksiniz.<br \/>\nBunu yaparken g\u00f6sterece\u011finiz karakterleri de dijitlere d\u00f6n\u00fc\u015ft\u00fcrerek kullanman\u0131z gerekiyor. Her dijit 3 s\u00fctundan (3 karakter alan\u0131ndan) olu\u015fuyor. Bu da size 3+3= 6 karakterlik bir numara b\u00fcy\u00fckl\u00fc\u011f\u00fcn\u00fc verecektir.<br \/>\nBununla birlikte \u0131s\u0131 g\u00f6stergesi i\u00e7in derece i\u015fareti ve C kullanacaksan\u0131z zaten bunlar i\u00e7in yeni karakter kullanmaya gerek olmayaca\u011f\u0131ndan kolayl\u0131kla kullanabilirsiniz. Hatta ayn\u0131 karakter kodlar\u0131n\u0131 kullanarak ba\u015fka karakterler olu\u015fturabilirsiniz. Mesela B\u00fcy\u00fck C harfi i\u00e7in yeni karakter yaratmadan kar1 kar2 gibi par\u00e7alar\u0131 birle\u015ftirerek g\u00f6stermeniz bile m\u00fcmk\u00fcn.<\/p>\n<p>Buraya kadar \u00a0s\u0131k\u0131lmadan okuduysan\u0131z zaten kendi program\u0131n\u0131zda bunlar\u0131 uygulayabilirsiniz. <strong>A\u015fa\u011f\u0131daki \u00f6rnek program size yol g\u00f6sterecektir.<\/strong><br \/>\nBu arada<span style=\"color: #ff0000;\"><strong> \u00f6nemli nokta ne diye sorarsak<\/strong><\/span> bu da,\u00a0<span style=\"color: #ff0000;\"><strong>EASYLCD mod\u00fcl\u00fcn 24 yeni karakter haf\u0131zas\u0131n\u0131 kullanabilmek diyebiliriz.<\/strong><\/span> Saati g\u00f6sterdiniz fakat bir de ayn\u0131 ekranda grafik \u00a0seviye g\u00f6stergesi de kullanmak istedi\u011finizde onlar\u0131n <span style=\"color: #ff0000;\">yeni karakterlerini de Eproma bir kez aktard\u0131\u011f\u0131n\u0131zda ekran\u0131 temizleyip gerekli karakterleri Epromdan \u00e7a\u011f\u0131rarak grafik seviye g\u00f6sterimine ge\u00e7ebilirsiniz.<\/span><\/p>\n<p>Bu \u00f6rnek programda \u00f6ncelikle DS1307 saat devresinden bilgileri al\u0131p ekrana yazd\u0131r\u0131yoruz. Daha sonra LM35 ile bilgileri al\u0131p yazd\u0131raca\u011f\u0131z. sonras\u0131nda ise hcr-04 ile mesafe bilgisini grafik seviye g\u00f6stergesi olarak g\u00f6sterece\u011fiz.\u00a0<span style=\"color: #ff0000;\"><strong>T\u00fcm\u00fc EASYLCD mod\u00fcl ile m\u00fcmk\u00fcn.<\/strong><\/span><\/p>\n<p><strong>DS1307 hakk\u0131nda \u00f6nemli nokta<\/strong> : Arduino RTC k\u00fct\u00fcphanesini kullanmaya gerek yoktur. Bu entegrenin \u00e7al\u0131\u015fmas\u0131na bakt\u0131\u011f\u0131n\u0131zda sadece 8 registeri okuyup yazarak bunun m\u00fcmk\u00fcn oldu\u011funu g\u00f6receksiniz. Sadece wire.h k\u00fct\u00fcphanesine ihtiyac\u0131m\u0131z var. \u00c7\u00fcnk\u00fc DS1307 I2C ileti\u015fimi kullan\u0131yor. <strong>En \u00f6nemlisi ise mod\u00fcl\u00fc ald\u0131n\u0131z ba\u011flant\u0131lar\u0131 yapt\u0131n\u0131z fakat mod\u00fcl size saati g\u00f6sterse bile bir t\u00fcrl\u00fc saat \u00e7al\u0131\u015fmayacakt\u0131r.<\/strong> Bunun sebebi ise ilk hareket i\u00e7in sizden saati ayarlaman\u0131z\u0131 bekliyordur. Bunun i\u00e7in programda saat ayar k\u0131sm\u0131nda bulundu\u011funuz saati yaz\u0131p bir kere DS1307 ye g\u00f6ndermeniz gerekiyor.<\/p>\n<p><strong>Bunun d\u0131\u015f\u0131nda ise dikkat etmeniz gereken konu.<\/strong> Ger\u00e7ek devrede SDA ve SCL u\u00e7lar\u0131nda birer Pullup diren\u00e7 eklemek, bunlar I2C nin olmazsa olmaz\u0131 diyebiliriz. Kulland\u0131\u011f\u0131n\u0131z h\u0131zlara g\u00f6re 4.7K &#8211; 10K aras\u0131nda olabilir. Resimde g\u00f6r\u00fcld\u00fc\u011f\u00fc \u015fekilde ekleyebilirsiniz.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-440 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/ds1307_I2C.jpg\" alt=\"\" width=\"403\" height=\"432\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 403px; --smush-placeholder-aspect-ratio: 403\/432;\" \/><\/p>\n<p>Bunun yan\u0131 s\u0131ra <strong>SQW\/OUT<\/strong> \u00a0k\u0131sm\u0131n\u0131 g\u00f6r\u00fcyorsunuz. Bu u\u00e7tan ise 1Hz lik bir sinyal al\u0131p bunu ekrandaki saat noktalar\u0131n\u0131 a\u00e7 kapa yapt\u0131rarak efekt verebilirsiniz. Bunu da program i\u00e7erisinde \u00e7al\u0131\u015ft\u0131rabilmeniz i\u00e7in (07h) 8. kontrol registerinin ayar\u0131 yap\u0131larak m\u00fcmk\u00fcn olmaktad\u0131r.<br \/>\nRegister i\u00e7erikleri a\u015fa\u011f\u0131da g\u00f6sterilmi\u015ftir. Bu bilgileri <a href=\"https:\/\/www.sparkfun.com\/datasheets\/Components\/DS1307.pdf\" target=\"_blank\" rel=\"noopener\"><strong>DATASHEET<\/strong><\/a> ini indirerek de ayt\u0131nt\u0131l\u0131 g\u00f6rebilirsiniz.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-441 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/ds1307_reg.jpg\" alt=\"\" width=\"1052\" height=\"526\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1052px; --smush-placeholder-aspect-ratio: 1052\/526;\" \/><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-442 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/ds1307_reg1.jpg\" alt=\"\" width=\"1044\" height=\"587\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1044px; --smush-placeholder-aspect-ratio: 1044\/587;\" \/><\/p>\n<p>Yukar\u0131daki bilgilere bakarak programda nereleri okuman\u0131z ve yazman\u0131z \u00a0gerekti\u011fini g\u00f6rebilirsiniz.<br \/>\n<strong>3 adet program mevcuttur.<\/strong><br \/>\n1-) Programda RTC+HC-SR04+LM35 yer almaktad\u0131r ve <span style=\"color: #ff0000;\"><strong>2&#215;16 ekran<\/strong><\/span> kullanmaktad\u0131r. (Bu k\u0131s\u0131mda elimde LM35 olmad\u0131\u011f\u0131 i\u00e7in Proteus \u00fczerinde g\u00f6rd\u00fc\u011f\u00fcn\u00fcz simulat\u00f6rde LM35 k\u0131sm\u0131n\u0131 g\u00f6rebileceksiniz. )<\/p>\n<p>2-) Birinci program ile ayn\u0131 \u015fekilde Proteus \u00fczerinde \u00e7al\u0131\u015facak. (LM35 elimde olmad\u0131\u011f\u0131 i\u00e7in) Fakat burada <span style=\"color: #ff0000;\"><strong>4&#215;16 ekran<\/strong><\/span> kullan\u0131l\u0131p Saat+tarih Ayn\u0131 ekranda g\u00f6sterilecek.<\/p>\n<p>3-) Programda LM35 olmadan sadece RTC+HC-SR04 ile <strong>ger\u00e7ek ortamda Arduino uno ile \u00e7al\u0131\u015fmas\u0131n\u0131 g\u00f6receksiniz. (<span style=\"color: #ff0000;\">2&#215;16 ekranda<\/span>)<\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>T\u00fcm programlar\u0131n kaynak kodlar\u0131n\u0131<\/strong><\/span> <strong><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/EASYLCD_BUYUK_KARAKTER\" target=\"_blank\" rel=\"noopener\">buradan indirebilirsiniz<\/a>.<\/strong> (<strong>Proteus i\u00e7in<\/strong> Arduino ile baz\u0131 sens\u00f6r modellerini bu linkten alabilirsiniz. <strong><a href=\"https:\/\/www.element14.com\/community\/groups\/embedded\/blog\/2017\/01\/18\/new-proteus-libraries-for-engineering-students\" target=\"_blank\" rel=\"noopener\">Proteus ekstra modeller<\/a><\/strong> )<br \/>\n<span style=\"color: #ff0000;\"><strong>Not:<\/strong>\u00a0<span style=\"color: #000000;\">Proteus da\u00a0<\/span><\/span>DS1307 yeni modelini kulland\u0131\u011f\u0131mda SQW\/OUT k\u0131sm\u0131 \u00e7al\u0131\u015fmad\u0131. Bunun yerine DS1307 i\u00e7in proteusun kendi entegre tipini kulland\u0131m.<\/p>\n<p style=\"text-align: center;\">Arduino Sens\u00f6r Ba\u011flant\u0131 \u015eemas\u0131 :<br \/>\n<a title=\"Arduino Sens\u00f6r Ba\u011flant\u0131 \u015eemas\u0131 :\" href=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/BIG_LCD_circuit.jpg\" rel=\"lightbox\"><img decoding=\"async\" class=\"aligncenter wp-image-131 lazyload\" data-src=\"https:\/\/www.mikrobotik.com\/wp2\/wp-content\/uploads\/2018\/09\/BIG_LCD_circuit.jpg\" alt=\"\" width=\"400\" height=\"262\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 400px; --smush-placeholder-aspect-ratio: 400\/262;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/E0kT4pcjxLU\" 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>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu konumuzda 2&#215;16 LCD displaylerde b\u00fcy\u00fck karakterin nas\u0131l yaz\u0131labildi\u011fini g\u00f6rece\u011fiz. \u00d6ncelikle HD44780 LCD lerin 2 font kullanabildi\u011fini fakat kullan\u0131c\u0131lar\u0131n genelde 5*8 fontunu kulland\u0131\u011f\u0131n\u0131 belirtelim. Bundan ba\u015fka 5*10 font da kullan\u0131labiliyormu\u015f&#8230; <\/p>\n","protected":false},"author":1,"featured_media":451,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12,14,3,5],"tags":[],"class_list":["post-437","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-pcprog","category-easylcd","category-pic","category-raspi"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/437","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=437"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":2547,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/437\/revisions\/2547"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/451"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}