Arduino ve ST7789 SPI TFT LCD Kullanımı (240x240 Çözünürlük)

👤 Yazar: ozcan 📅 Tarih: 19.07.2026 06:49 👁️ Görüntüleme: 9

Arduino ve ST7789 SPI TFT LCD Kullanımı (240x240 Çözünürlük)

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.

Arduino ve ST7789 SPI TFT LCD bağlantı şeması

Donanım ve Gerilim Bölücü Uyarısı (3.3V Hat Hassasiyeti): ST7789 ekran paneli ve mantıksal sinyal hatları 3.3V gerilim ile çalışır. 5V ile çalışan standart bir Arduino Uno veya Nano kullanıyorsanız; Arduino'nun SPI çıkış pinlerini (MOSI, SCK, CS, RST, DC) ekrana doğrudan bağlamak ekrandaki piksellerin bozulmasına veya video parazitlerine (ekranda karıncalanma) yol açabilir. Sinyal hatlarında mutlaka 1KΩ ve 2KΩ dirençler kullanılarak gerilim bölücü yapılmalı ya da bir Lojik Seviye Dönüştürücü (Logic Level Shifter) entegresi kullanılmalıdır.

ST7789 Ekran Başlatma ve Renkli Grafik Test Kod Bloğu

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
}

CS-less (Chip Select Bacağı Olmayan) Ekranlarda Sır

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.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1