Amaç: Lcd ekran üzerine tükçe karakterler, kalp şekli ve kayan yazı yazdırma
Materyal: 16×02 Lcd, 10K Potansiyometre, Erkek-Erkek Jumper Kablo, Arduino Uno R3, Usb Kablo, Breadboard
Deneyin Yapılışı: İlk olarak devre elamanlarının bağlantısı yapılır (Şekil 1).
Bağlantı aşaması bittikten sonra sıra kod yazma ve yazılan kodun usb kablo vasıtasıyla Arduino’ya aktarılmasına gelir. Bunun için ilk olarak Arduino programı açılır ve Kart ve Port tanımlaması yapılır. Daha sonra kod girilir. Yükle komutu ile karta yüklenir.
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
byte sagyarimkalp[8] = {
B00111, B01111, B11111, B11111, B11110, B11100, B11000, B10000};
byte solyarimkalp[8] = {
B11100, B11110, B11111, B11111, B01111, B00111, B00011, B00001};
byte buyukturkce_c[8] = {
B01110, B10000, B10000, B10000, B10000, B10000, B01110, B00100};
byte kucukturkce_i[8] = {
B00000, B00000, B00000, B00100, B00100, B00100, B00100, B00100};
byte kucukturkce_s[8] = {
B00000, B00000, B01110, B10000, B11110, B00010, B11110, B00100};
byte buyuk_i[8] = {
B00100, B00000, B01110, B00100, B00100, B00100, B00100, B01110};
byte buyukyumusak_g[8] = {
B01010, B01110, B00000, B11111, B10000, B10111, B10001, B11111};
byte buyukturkce_u[8] = {
B01010, B00000, B10001, B10001, B10001, B10001, B10001, B01110};
byte buyukturkce_o[8] = {
B01010, B00000, B01110, B10001, B10001, B10001, B10001, B01110};
byte buyukturkce_s[8] = {
B01111, B10000, B10000, B11111, B00001, B00001, B11110, B00100};
byte kucukturkce_c[8] = {
B00000, B00000, B00000, B01110, B10000, B10000, B01110, B00100};
byte kucukturkce_o[8] = {
B00000, B00000, B01010, B00000, B01110, B10001, B10001, B01110};
byte kucukturkce_u[8] = {
B00000, B00000, B00000, B01010, B00000, B01010, B01010, B01110};
byte kucukturkce_g[8] = {
B01010, B01110, B00000, B01110, B01010, B01110, B00010, B01110};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, sagyarimkalp);
lcd.createChar(1, solyarimkalp);
lcd.createChar(2, buyukturkce_c);
lcd.createChar(3, kucukturkce_i);
lcd.createChar(4, kucukturkce_s);
lcd.createChar(5, buyuk_i);
lcd.createChar(6, buyukyumusak_g);
lcd.createChar(7, buyukturkce_u);
lcd.setCursor(0,1); lcd.write(byte(2)); lcd.write(byte(5)); lcd.write(byte(6)); lcd.write(byte(7)); lcd.write(char(239)); lcd.write(char(245)); lcd.write(byte(3)); lcd.write(byte(4));
lcd.setCursor(14,1); lcd.write(byte(1)); lcd.write(byte(0));
delay(1000);
}
void loop(){
int i;
for(i=0; i<16; i++)
{
lcd.setCursor(i,0);
lcd.print("Selcen "); lcd.write(byte(2)); lcd.print("al"); lcd.write(byte(3)); lcd.write(byte(4)); lcd.print("kan");
delay(1000);
lcd.setCursor(i,0);
lcd.print(" ");
}
delay(1000);
}
Tablodan özel karakter yazdırmak için “const.byte” kullanmayı denedim fakat istediğim karakterleri bu yolla lcd ekrana getiremedim. Bu sebeple örneğin tablodan “ö” harfinin binary kodunu bularak bu kodu hesap makinesinde decimale çevirdim ve char(239) olarak tanımladım. Diğer oluşturduğum karakterler tabloda olmadığından kodlarını http://maxpromer.github.io/LCD-Character-Creator/ sitesinde çizerek elde ettim.