Projelerinizde siyah-beyaz OLED ekranların ötesine geçip renkli grafikler, özel ikonlar ve yüksek çözünürlüklü arayüzler tasarlamak istediğinizde en popüler çözümlerden biri ST7789 sürücülü TFT LCD ekranlardır. Genellikle 240x240 piksel çözünürlüğe sahip olan bu IPS ekranlar, geniş görüş açısı ve canlı renk kalitesi sunar. Yüksek veri aktarım hızına ihtiyaç duyduğu için Arduino ile donanımsal SPI hattı üzerinden haberleşir.

Aşağıdaki kod, Adafruit firmasının kararlı Adafruit_ST7789.h kütüphanesini kullanarak ekranı donanımsal SPI hattı üzerinden başlatır ve ekran yüzeyinde temel geometrik şekiller ile renkli metinler oluşturur:
#include <Adafruit_GFX.h> // Donanımsal Grafik Kütüphanesi
#include <Adafruit_ST7789.h> // ST7789 Ekran Sürücü Kütüphanesi
#include <SPI.h> // SPI Haberleşme Kütüphanesi
// ST7789 Kontrol Pin Tanımlamaları
#define TFT_CS 10 // Chip Select (Ekran Seçim Pini)
#define TFT_RST 9 // Reset (Yeniden Başlatma Pini)
#define TFT_DC 8 // Data/Command (Veri/Komut Seçim Pini)
// NOT: Donanımsal SPI pinleri Arduino Uno/Nano için sabittir:
// MOSI (SDA) -> Pin 11'e bağlanmalıdır.
// SCK (SCL) -> Pin 13'e bağlanmalıdır.
// Donanımsal SPI yapısını kullanan ekran nesnesi oluşturuluyor
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup() {
Serial.begin(9600);
// Ekranı başlatıyoruz ve çözünürlüğü (240x240) belirtiyoruz
tft.init(240, 240);
// Eğer ekrandaki renkler ters görünüyorsa (Invert sorunu varsa) alt satırı aktif edin
// tft.invertDisplay(true);
// Ekranı tamamen siyah renk ile temizliyoruz
tft.fillScreen(ST7789_BLACK);
// --- Renkli Metin Yazdırma ---
tft.setCursor(20, 30);
tft.setTextColor(ST7789_GREEN);
tft.setTextSize(2);
tft.println("ST7789 TFT LCD");
tft.setCursor(20, 60);
tft.setTextColor(ST7789_CYAN);
tft.setTextSize(3);
tft.println("YENIDIR");
// --- Geometrik Şekil Çizimleri ---
// Kırmızı bir çerçeve çiziyoruz (X, Y, Genişlik, Yükseklik, Renk)
tft.drawRect(10, 110, 100, 50, ST7789_RED);
// İçi dolu mavi bir daire çiziyoruz (Merkez X, Merkez Y, Yarıçap, Renk)
tft.fillCircle(170, 135, 30, ST7789_BLUE);
// Sarı bir çizgi çekiyoruz (X0, Y0, X1, Y1, Renk)
tft.drawLine(10, 200, 230, 200, ST7789_YELLOW);
}
void loop() {
// Arka plan işlemleri veya dinamik ekran güncellemeleri burada yapılabilir
}
Piyasada bulunan bazı kompakt ST7789 modüllerinde maliyeti ve pin sayısını azaltmak adına CS (Chip Select) pini dışarı çıkartılmamıştır ve bu bacak ekran kartı üzerinde kalıcı olarak şaseye (GND) lehimlenmiştir. Eğer elinizdeki ekranda CS pini bulunmuyorsa, kod yapısında ilgili pini iptal etmeniz gerekir.
Bu durumda kodun en başındaki pin tanımlama kısmında #define TFT_CS -1 yazarak kütüphaneye harici bir CS pininin kullanılmadığını bildirebilirsiniz. Bu tarz CS bacağı olmayan ekranlar donanımsal SPI hattını tamamen tek başına işgal ettiği için, aynı SPI hattına SD kart modülü gibi başka bir donanım bağlamanıza izin vermezler.
Henüz yorum yapılmamış. İlk yorumu siz yapın!