Arduino Ders 14: 16x02 LCD Ekran

Arduino Uygulaması

16x02 LCD Ekran Kullanımı

Arduino ile 16x02 LCD ekrana yazı yazdırmayı ve geçen süreyi ikinci satırda göstermeyi öğreneceğiz.

Arduino 16x02 LCD ekran kullanımı

Bu dersimde 16x02 LCD ekranın kullanımını anlatacağım.

  • Arduino Uno
  • 16x02 LCD Ekran
  • 10K Potansiyometre

10K potansiyometre genellikle LCD ekranın kontrast ayarı için kullanılır. Potansiyometrenin orta bacağı LCD’nin kontrast pinine bağlanır.

Bu örnekte LCD ekran 4-bit modda kullanılır. RS pini 12’ye, Enable pini 11’e, veri pinleri ise sırasıyla 5, 4, 3 ve 2 numaralı Arduino pinlerine bağlanır.

Arduino 16x02 LCD bağlantı şeması

LiquidCrystal kütüphanesi, paralel bağlantılı 16x02 LCD ekranları Arduino ile kullanmak için tercih edilir. lcd.begin(16, 2) komutu ekranın 16 sütun ve 2 satır olduğunu belirtir.

lcd.print() ekrana yazı yazdırır. lcd.setCursor(sütun, satır) komutu ise yazının başlayacağı konumu belirler. Satır numarası 0’dan başladığı için ilk satır 0, ikinci satır 1’dir.

Aşağıdaki kodda Kütüphane satırı yazılmıştır ve LCD’ye ilk satırda isim, ikinci satırda süre bilgisi yazdırılır.

#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);

void setup() {
  lcd.begin(16, 2);
  lcd.print("Ali Imran Kalaycı");
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print("Sure:");
  lcd.setCursor(6, 1);
  lcd.print(millis() / 1000);
  lcd.setCursor(10, 1);
  lcd.print("sn");
}

Bu sürümde süre değeri yalnızca saniye değiştiğinde güncellenir. Ayrıca ikinci satır temizlenerek önceki sayıların ekranda kalması engellenir.

#include <LiquidCrystal.h>

const int rs = 12;
const int en = 11;
const int d4 = 5;
const int d5 = 4;
const int d6 = 3;
const int d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

unsigned long oncekiSaniye = 0;

void setup() {
  lcd.begin(16, 2);

  lcd.setCursor(0, 0);
  lcd.print("Ali Imran");
  lcd.setCursor(0, 1);
  lcd.print("Sure: 0 sn");
}

void loop() {
  unsigned long saniye = millis() / 1000;

  if (saniye != oncekiSaniye) {
    oncekiSaniye = saniye;

    lcd.setCursor(0, 1);
    lcd.print("Sure:       ");
    lcd.setCursor(6, 1);
    lcd.print(saniye);
    lcd.print(" sn");
  }
}

LCD ekran 16 karakter genişliğinde olduğu için çok uzun metinler taşabilir. “Ali Imran Kalaycı” 16 karakter sınırına çok yakındır; farklı Türkçe karakterler ve boşluklar ekrana göre değişiklik gösterebilir.

Yorum Gönder

Daha yeni Daha eski