Arduino ST7789 1.3" 240x240 IPS TFT LCD OLED Ekran Modülü
Arduino ST7789 1.3" 240x240 IPS TFT LCD OLED Ekran Modülü, kompakt boyutlarına rağmen yüksek çözünürlük ve görüntü kalitesi sunan gelişmiş bir ekran çözümüdür. Güçlü ST7789 sürücü entegresi ile donatılmış bu ekran, 240x240 piksel çözünürlüğe ve net görüntü sunan IPS panel teknolojisine sahiptir.
SPI iletişim protokolü kullanan bu modül, Arduino başta olmak üzere çeşitli mikrodenetleyici platformlarıyla kolayca entegre edilebilir. 65K renkli (16 bit) görüntü desteği sunan ekran, geniş izleme açısı ve yüksek kontrast oranı sayesinde grafiksel kullanıcı arayüzleri, ölçüm cihazları ve interaktif projeler için ideal bir seçenektir.
Arduino ST7789 Ekran Modülü, düşük güç tüketimi, kompakt tasarımı ve yüksek kaliteli görüntüleme özellikleriyle, Arduino tabanlı akıllı saat, taşınabilir ölçüm cihazları, oyun konsolları ve IoT cihazları gibi çeşitli projelere hayat verebilmeniz için mükemmel bir görsel arabirimdir.
Teknik Özellikler
Bu bölümde Arduino ST7789 1.3" 240x240 IPS TFT LCD OLED Ekran Modülünün detaylı teknik özellikleri listelenmektedir.
- Ekran Tipi: IPS TFT LCD
- Kontrolcü: ST7789
- Ekran Boyutu: 1.3 inç diagonal
- Çözünürlük: 240 x 240 piksel
- Piksel Yoğunluğu: Yaklaşık 260 PPI
- Renk Derinliği: 65K renk (16 bit RGB 565)
- İletişim Protokolü: 4-wire SPI (Serial Peripheral Interface)
- Çalışma Voltajı: 3.3V lojik seviye
- Çalışma Akımı: 25mA (tipik)
- Görüş Açısı: Yaklaşık 170°
- Ekran Boyutları: Yaklaşık 35mm x 35mm (görüntü alanı)
- PCB Boyutları: Yaklaşık 40mm x 40mm
- Arayüz Pinleri: GND, VCC, SCL, SDA, RES, DC, BLK (Backlight)
- Arka Işık: Dahili beyaz LED arka ışık
- Tepki Süresi: Yaklaşık 30ms
- Çalışma Sıcaklığı: -20°C ~ +70°C
- Depolama Sıcaklığı: -30°C ~ +80°C
- Montaj Delikleri: 4 adet 2.5mm çapında
- Kütüphane Desteği: Adafruit GFX, Adafruit ST7789, TFT_eSPI
- Uyumlu Platformlar: Arduino, ESP8266, ESP32, STM32, Raspberry Pi vb.
Kullanım Avantajları
Arduino ST7789 1.3" 240x240 IPS TFT LCD OLED Ekran Modülünün sağladığı temel avantajlar aşağıda listelenmiştir.
- Yüksek Çözünürlük: 240x240 piksel çözünürlük ile detaylı görseller sunabilme
- IPS Panel Teknolojisi: Geniş görüş açısı ve doğru renk temsili
- Hızlı Tepki Süresi: Akıcı animasyon ve video gösterimi için hızlı piksel değişimi
- Basit SPI Arayüzü: Az sayıda pin ile mikrodenetleyicilere kolay bağlantı
- Zengin Kütüphane Desteği: Hazır yazılım kütüphaneleri ile hızlı geliştirme imkanı
- Kompakt Boyut: Küçük cihazlara ve taşınabilir projelere entegrasyon kolaylığı
- Düşük Güç Tüketimi: Pil ile çalışan projelerde uzun kullanım süresi
- 65K Renk: Zengin ve canlı grafik gösterimi için yüksek renk derinliği
- Geniş Çalışma Sıcaklığı: Çeşitli ortam koşullarında güvenilir çalışma
- Entegre Arka Işık: Düşük ışık koşullarında bile iyi görünürlük
İdeal Kullanım Alanları
Arduino ST7789 1.3" 240x240 IPS TFT LCD OLED Ekran Modülünün tipik kullanım alanları aşağıda listelenmiştir.
Giyilebilir Teknoloji ve Taşınabilir Cihazlar
Kompakt boyutu ve düşük güç tüketimi ile giyilebilir teknoloji uygulamaları:
- DIY Akıllı Saatler: Zaman, bildirim ve sensör verilerini gösteren kişisel saatler
- Fitness Takip Cihazları: Adım sayısı, kalp atış hızı ve aktivite verileri görüntüleme
- Portatif Oyun Konsolları: Retro oyunlar ve yeni oyun geliştirmeleri için ekran arayüzü
- Taşınabilir Ölçüm Cihazları: Çevre sensörleri ve test ekipmanları için veri görüntüleme
- Elektronik Rozetler: Dinamik içerik gösteren interaktif isim kartları ve rozetler
IoT ve Akıllı Ev Projeleri
Nesnelerin interneti (IoT) ve akıllı ev uygulamaları için görsel arayüzler:
- Akıllı Termostatlar: Sıcaklık, nem kontrolü ve program ayarları için görsel arayüz
- Hava Durumu İstasyonları: İç/dış mekan çevresel verilerin görsel sunumu
- Ev Otomasyon Kontrol Panelleri: Aydınlatma, perde ve cihaz kontrolü için dokunmatik arayüz
- Akıllı Bahçe Sistemleri: Toprak nemi, ışık seviyesi ve sulama programı görüntüleme
- Enerji Monitörleri: Elektrik, su ve gaz tüketimini takip eden görsel göstergeler
Eğitim ve Hobi Projeleri
Eğitim amaçlı ve hobi elektronik projeler için görsel arayüz çözümleri:
- Elektronik Eğitim Kitleri: Devre ve kod öğrenimini destekleyen görsel geri bildirim
- Robotik Projeleri: Robot durum bilgisi, sensör verileri ve kontrol arayüzleri
- STEM Eğitim Cihazları: Bilimsel deneylerin sonuçlarını görselleştirme
- Bilgisayar Bilimleri Demoları: Algoritma ve veri yapıları için görsel gösterim
- Elektronik Oyunlar: Arduino tabanlı klasik oyunlar ve yeni oyun geliştirmeleri
Endüstriyel ve Profesyonel Uygulamalar
Profesyonel ve endüstriyel alanda kullanım örnekleri:
- Kontrol Panel İnterface'leri: Makine ve ekipman kontrolü için görsel arayüzler
- Veri Toplama Sistemleri: Sensor verilerini grafiksel olarak görüntüleme
- Test ve Ölçüm Ekipmanları: Dijital multimetreler ve özel test cihazları için ekranlar
- Proses Monitörleri: Üretim hattı ve proses parametrelerinin gerçek zamanlı izlenmesi
- POS Terminal Eklentileri: Müşteri bilgilendirme ve interaktif kontrol arayüzleri
Kurulum ve Bağlantı Kılavuzu
Arduino ST7789 1.3" 240x240 IPS TFT LCD OLED Ekran Modülünün doğru kurulumu ve bağlantısı için detaylı bilgiler.
İpucu: ST7789 ekran modülünü Arduino'ya bağlarken, SPI veri yolundaki saat hızı (SCK) önemlidir. ESP8266/ESP32 gibi daha hızlı mikrodenetleyicilerde 40MHz'e kadar çıkabilirken, Arduino Uno gibi platformlarda 8MHz civarında kalır. Kütüphane kurulumunda bu ayarı platformunuza göre optimum değere ayarlayın. Ekran bağlantısını yaparken, pin tanımlamalarında kütüphane dokümantasyonuna uyun; bazı kütüphaneler farklı pin isimlendirmeleri kullanabilir (SCL/SCK veya SDA/MOSI gibi). DC (Data/Command) pini kritik öneme sahiptir; doğru bağlantı yapılmazsa ekran çalışmaz veya garip şekiller gösterebilir. Arka ışık (BLK) pini istenirse bir PWM çıkışına bağlanarak parlaklık kontrolü yapılabilir. İlk başlatma sırasında ekran boş veya karışık görünüyorsa, RESET pinine kısa bir LOW sinyal göndermek (manuel reset) sorunu çözebilir. Uzun kablo kullanımında sinyal bozulması olabilir; bu durumda kablo uzunluğunu kısa tutun veya daha düşük SPI frekansı kullanın. Eğer ST7789 ekranınız satır kaydırma (offset) sorunları gösteriyorsa, ekran başlatmada setRotation() ve setAddrWindow() fonksiyonlarında offset değerlerini ayarlayın. Yüksek kare hızlı animasyonlarda performans için, drawPixel() yerine daha verimli olan drawBitmap() veya drawRGBBitmap() fonksiyonlarını tercih edin. Pil ile çalışan projelerde, ekran kullanılmadığında güç tasarrufu için sleep modunu veya arka ışığı kapatmayı düşünün. Kütüphanelerin güncel versiyonlarını kullanın; eski versiyonlar bazı ST7789 varyantlarıyla tam uyumlu olmayabilir.
Arduino ile Temel Bağlantı
Arduino kartlarıyla ST7789 ekran modülünün bağlantı şeması:
- Arduino Uno/Nano Bağlantısı:
- VCC → Arduino 3.3V (veya 5V, modülde regülatör varsa)
- GND → Arduino GND
- SCL/SCK → Arduino D13 (SPI Clock)
- SDA/MOSI → Arduino D11 (SPI MOSI)
- RES/RST → Arduino D9 (veya başka bir dijital pin)
- DC → Arduino D8 (veya başka bir dijital pin)
- BLK → Arduino D7 (veya başka bir dijital pin, PWM pini önerilir)
- CS → Arduino D10 (veya başka bir dijital pin)
- Arduino Mega Bağlantısı:
- VCC → Arduino 3.3V (veya 5V, modülde regülatör varsa)
- GND → Arduino GND
- SCL/SCK → Arduino D52 (SPI Clock)
- SDA/MOSI → Arduino D51 (SPI MOSI)
- RES/RST → Arduino D9 (veya başka bir dijital pin)
- DC → Arduino D8 (veya başka bir dijital pin)
- BLK → Arduino D7 (veya başka bir dijital pin, PWM pini önerilir)
- CS → Arduino D53 (veya başka bir dijital pin)
- Level Shifter Kullanımı:
- ST7789 ekran 3.3V lojik seviyede çalışır
- 5V Arduino kullanıyorsanız, veri pinleri için seviye dönüştürücü önerilir
- Alternatif olarak 10K-1K gerilim bölücü dirençleri kullanılabilir
- ESP8266, ESP32 gibi 3.3V platformlarda seviye dönüştürücü gerekmez
ESP8266 ve ESP32 Bağlantısı
ESP8266 ve ESP32 platformlarıyla ST7789 ekran modülünün bağlantısı:
- ESP8266 NodeMCU Bağlantısı:
- VCC → 3.3V
- GND → GND
- SCL/SCK → D5 (GPIO14)
- SDA/MOSI → D7 (GPIO13)
- RES/RST → D3 (GPIO0)
- DC → D4 (GPIO2)
- BLK → D8 (GPIO15)
- CS → D6 (GPIO12)
- ESP32 DevKit Bağlantısı:
- VCC → 3.3V
- GND → GND
- SCL/SCK → GPIO18 (VSPI)
- SDA/MOSI → GPIO23 (VSPI)
- RES/RST → GPIO4
- DC → GPIO2
- BLK → GPIO15
- CS → GPIO5
- ESP Platformları için Notlar:
- ESP cihazlar 3.3V lojik seviyede çalıştığından seviye dönüştürücü gerekmez
- ESP8266 ve ESP32, Arduino'ya göre daha hızlı SPI iletişimi sağlar
- ESP32'nin VSPI ve HSPI olmak üzere iki SPI busı vardır, genellikle VSPI tercih edilir
- ESP8266'nın sınırlı RAM'i nedeniyle büyük grafik tamponları oluşturmaktan kaçının
Yazılım Kurulumu ve Test
ST7789 ekran modülünün yazılım kurulumu ve test edilmesi:
- Gerekli Kütüphaneler:
- Adafruit ST7789 Library: https://github.com/adafruit/Adafruit-ST7789-Library
- Adafruit GFX Library: https://github.com/adafruit/Adafruit-GFX-Library
- TFT_eSPI (Alternatif, daha hızlı): https://github.com/Bodmer/TFT_eSPI
- Arduino IDE Kütüphane Kurulumu:
- Arduino IDE → Taslak → Kütüphane Ekle → Kütüphane Yönet
- "Adafruit ST7789", "Adafruit GFX" veya "TFT_eSPI" aratıp kurun
- TFT_eSPI kullanılacaksa User_Setup.h dosyasında pin tanımlamalarını yapın
- Temel Test Kodu (Adafruit Kütüphanesi ile):
#include
#include
#include
// Pin tanımlamaları - Arduino Uno için
#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8
#define TFT_MOSI 11
#define TFT_SCLK 13
#define TFT_BL 7
// Ekran nesnesi oluşturma
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
void setup() {
Serial.begin(9600);
Serial.println("ST7789 Test Başlıyor!");
// Arka ışık pini çıkış olarak ayarlanıyor
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH); // Arka ışığı aç
// Ekranı başlat
tft.init(240, 240); // 240x240 piksel çözünürlük
// Ekran rotasyonunu ayarla (0-3)
tft.setRotation(2);
// Ekranı temizle
tft.fillScreen(ST77XX_BLACK);
// Test desenlerini çiz
testDrawText();
delay(1000);
testDrawCircles();
delay(1000);
testFillRects();
}
void loop() {
// Ana döngüde animasyon veya değişen içerik gösterilebilir
}
void testDrawText() {
tft.fillScreen(ST77XX_BLACK);
tft.setCursor(10, 10);
tft.setTextSize(1);
tft.setTextColor(ST77XX_WHITE);
tft.println("Hello World!");
tft.setCursor(10, 30);
tft.setTextSize(2);
tft.setTextColor(ST77XX_GREEN);
tft.println("ST7789 Test");
tft.setCursor(10, 70);
tft.setTextSize(3);
tft.setTextColor(ST77XX_RED);
tft.println("240x240");
}
void testDrawCircles() {
tft.fillScreen(ST77XX_BLACK);
int radius = 10;
int x = tft.width() / 2;
int y = tft.height() / 2;
for (int i = 0; i < 12; i++) {
tft.drawCircle(x, y, radius + i*10, random(0xFFFF));
}
}
void testFillRects() {
tft.fillScreen(ST77XX_BLACK);
for (int i = 0; i < 12; i++) {
int x = random(tft.width());
int y = random(tft.height());
int w = random(50);
int h = random(50);
tft.fillRect(x, y, w, h, random(0xFFFF));
}
}
ST7789 Denetleyici Özellikleri
ST7789 ekran denetleyici entegresinin teknik özellikleri ve çalışma prensibi.
Denetleyici Mimarisi
ST7789 denetleyicisinin temel mimarisi ve çalışma prensibi:
- Genel Mimari:
- Tek çip TFT LCD sürücü entegresi
- 240RGB (yatay) × 320 (dikey) maksimum çözünürlük desteği
- RGB 262K renk (18-bit) dahili renk işleme
- 65K renk (16-bit, RGB565) display çıkışı
- Dahili çerçeve hafızası (frame buffer) bulunmaz, sürekli veri akışı gerekir
- İletişim Arayüzü:
- 4-wire SPI seri arayüz (MOSI, SCK, DC, CS)
- 50 MHz'e kadar SPI haberleşme desteği
- 3-wire SPI ve 8/9/16/18 bit paralel arayüz opsiyonları (bazı modüllerde)
- Okuma ve yazma operasyonları desteği
- Command/Data seçimi için ayrı DC (Data/Command) pini
- Dahili Fonksiyonlar:
- Power-on reset (POR) devresi
- Dahili voltaj regülatörleri
- Dahili osilatör devresi
- Güç tasarrufu için Sleep modu
- Boyut ölçeklendirme ve görüntü döndürme (0°, 90°, 180°, 270°)
Renk Derinliği ve Görüntü İşleme
ST7789 denetleyicisinin renk işleme ve görüntü oluşturma özellikleri:
- Renk Formatları:
- RGB565: 16-bit renk formatı (5-bit kırmızı, 6-bit yeşil, 5-bit mavi)
- RGB666: 18-bit renk formatı (dahili işleme)
- Renk gamı (color gamut): NTSC standartının yaklaşık %70'i
- Renk yönetimi: gamma düzeltme, kontrast, parlaklık ayarları
- 1-bit to 16-bit renk fonksiyonları desteği
- Görüntü İşleme Özellikleri:
- Kısmi ekran güncelleme (partial display) desteği
- İdiomatik ekran kaydırma (idle mode scrolling)
- Yazılım üzerinden renk inversiyon kontrolü
- Vertical scrolling (dikey kaydırma) desteği
- All-pixel ON/OFF komutları
- Görüntü Kalitesi Faktörleri:
- Kontrast oranı: yaklaşık 800:1 (IPS panel özellikleri)
- Tepki süresi: yaklaşık 30ms (Ton-Toff)
- Görüş açısı: yaklaşık 170° (IPS panel özellikleri)
- Parlaklık: Tipik 250 cd/m² (arka ışık gücüne bağlı)
- Doygunluk (saturation) kontrolü
Güç Yönetimi ve Verimlilik
ST7789 denetleyicisinin güç yönetimi ve enerji tasarrufu özellikleri:
- Voltaj Gereksinimleri:
- Lojik besleme (VDDI): 1.65V - 3.3V
- Ekran besleme (VCI): 2.4V - 3.3V
- Geniş voltaj toleransı ile esnek besleme imkanı
- Düşük dropout dahili regülatörler
- Tek besleme ile çalışabilme özelliği
- Güç Tüketimi Profilleri:
- Normal çalışma: 20-25mA tipik
- Sleep modu: < 10µA
- Deep standby modu: < 5µA
- Arka ışık güç tüketimi hariç değerler
- Arka ışık tüketimi: 50-80mA (parlaklığa bağlı)
- Güç Tasarrufu Modları:
- Sleep Mode: Ekran içeriğini koruyarak düşük güç tüketimi
- Deep Standby Mode: İçerik korunmaz, minimum güç tüketimi
- Display ON/OFF: Ekran içeriğini koruyarak arka ışığı kapatma
- Partial Mode: Sadece ekranın belirli bölgelerini güncelleme
- Idle Mode: Azaltılmış yenileme hızı ile güç tasarrufu
Programlama ve Kütüphane Kullanımı
ST7789 ekran modülünün programlanması ve yaygın kütüphanelerin kullanımı.
Adafruit GFX/ST7789 Kütüphanesi
Adafruit kütüphaneleri ile ekran programlama:
- Temel Kütüphane Özellikleri:
- Arduino IDE ile tam uyumluluk
- Düşük RAM kullanımı için optimize edilmiş kod
- Kapsamlı grafik primitifleri (çizgi, daire, dikdörtgen vb.)
- Yazı tipi (font) desteği ve metin yazma fonksiyonları
- Kolay kullanımlı API ve kapsamlı dokümantasyon
- Temel Grafik Fonksiyonları:
- drawPixel(x, y, color): Tek piksel çizimi
- drawLine(x0, y0, x1, y1, color): Çizgi çizimi
- drawRect(x, y, w, h, color): Çerçeve dikdörtgen çizimi
- fillRect(x, y, w, h, color): Dolu dikdörtgen çizimi
- drawCircle(x0, y0, r, color): Çember çizimi
- fillCircle(x0, y0, r, color): Dolu daire çizimi
- drawTriangle(x0, y0, x1, y1, x2, y2, color): Üçgen çizimi
- drawRoundRect(x, y, w, h, r, color): Yuvarlatılmış köşeli dikdörtgen
- Metin ve Font İşleme:
- setTextColor(color): Metin rengi ayarlama
- setTextSize(size): Metin boyutu ayarlama (1-6)
- setCursor(x, y): Metin başlangıç konumu
- print() / println(): Metin yazdırma
- setFont(&custom_font): Özel font kullanımı
- getTextBounds(): Metin boyutlarını hesaplama
- Bitmap ve Resim Gösterimi:
- drawBitmap(): 1-bit bitmap görüntü gösterimi
- drawRGBBitmap(): 16-bit renk bitmap gösterimi
- Image2LCD veya LCD Image Converter gibi araçlarla dönüştürülmüş görseller kullanılabilir
- Sprite animasyonları oluşturma imkanı
TFT_eSPI Kütüphanesi
Daha hızlı performans için TFT_eSPI kütüphanesinin kullanımı:
- Kütüphane Avantajları:
- Adafruit GFX'ten önemli ölçüde daha hızlı çizim performansı
- DMA (Direct Memory Access) desteği (ESP32 platformunda)
- Donanım hızlandırmalı işlemler
- Sprite desteği ile buffer animasyonlar
- Geniş font desteği ve özelleştirilebilir fontlar
- Kurulum ve Konfigürasyon:
- User_Setup.h veya platformunuza uygun setup dosyasında pin tanımlamalarını yapın
- Doğru ekran tipini (#define ST7789_DRIVER) etkinleştirin
- Ekran boyutunu (TFT_WIDTH, TFT_HEIGHT) doğru ayarlayın
- Doğru renk derinliğini seçin (genellikle 16-bit)
- Ekran rotasyonu ve offset değerlerini ayarlayın
- Sprite Kullanımı (Buffer Animasyonlar):
- TFT_eSprite sprite = TFT_eSprite(&tft); ile sprite tanımlama
- sprite.createSprite(width, height); ile RAM'de tampon oluşturma
- sprite.fillSprite(color); ile arka plan doldurma
- Standart grafik fonksiyonları ile sprite üzerine çizim yapma
- sprite.pushSprite(x, y); ile ekrana aktarma
- Akıcı animasyonlar için çift buffer (double buffering) tekniği
İleri Programlama Teknikleri
Ekrandan maksimum performans almak için ileri programlama ipuçları:
- Performans Optimizasyonu:
- startWrite() ve endWrite() kullanarak çoklu çizim işlemleri arasında SPI iletişimini açık tutma
- Tek piksel yerine blok veri transferi yapma (fillRect, drawBitmap gibi)
- Gereksiz ekran tazeleme işlemlerinden kaçınma
- Kısmi ekran güncelleme (setAddrWindow) kullanımı
- SPI hızını platformun desteklediği maksimum değere ayarlama
- Grafik Tamponu (Frame Buffer) Teknikleri:
- Donanım tamponu olmaması nedeniyle yazılım tamponu oluşturma
- TFT_eSPI Sprite veya ayrı grafik buffer kullanımı
- Değişen içeriği tanımlayarak kısmi güncelleme yapma
- RAM sınırlı cihazlarda mozaik tamponlama (tiled buffering) kullanımı
- Önceden hesaplanmış grafikleri PROGMEM'de saklama
- Artırılmış Grafik Efektleri:
- Anti-aliasing teknikleri ile yumuşatılmış çizimler
- Alfa karıştırma (alpha blending) efektleri
- Gradient (degrade) dolgu ve desenler
- Animasyon frame-interpolation teknikleri
- Maskeleme ve clipping bölgeleri kullanımı
Proje Örnekleri ve Uygulamalar
ST7789 ekran modülü kullanılarak gerçekleştirilebilecek proje fikirleri ve örnek uygulamalar.
Akıllı Saat ve Fitness Tracker Projeleri
Giyilebilir teknoloji projelerinde ST7789 ekran kullanımı:
- Arduino/ESP32 Tabanlı Akıllı Saat:
- RTC modülü ile hassas zaman gösterimi
- Farklı saat kadranları ve dijital/analog gösterim
- MPU6050 ile hareket algılama ve bilek çevirme tespiti
- Bluetooth üzerinden bildirim gösterimi
- Hava durumu güncellemeleri ve mini uygulamalar
- Fitness Takip Cihazı:
- Adım sayacı ve kalori hesaplama
- MAX30100 veya benzeri sensörlerle kalp hızı ölçümü
- Uyku takibi ve aktivite istatistikleri
- Egzersiz türü algılama ve zamanlama
- Özelleştirilebilir grafik arayüz ve motivasyon mesajları
IoT İzleme ve Kontrol Panelleri
IoT uygulamaları için görsel arayüz çözümleri:
- Akıllı Ev Kontrol Merkezi:
- Sıcaklık, nem, basınç ve hava kalitesi verileri görselleştirme
- Aydınlatma, termostat ve priz kontrolü için dokunmatik arayüz
- Enerji tüketimi grafikleri ve istatistikler
- Wi-Fi veya Bluetooth üzerinden merkezi sistemle haberleşme
- Alarm durumları ve olay bildirimleri
- Çevresel İzleme İstasyonu:
- Dış mekan hava koşulları ve hava tahminleri
- PM2.5, CO2, VOC gibi hava kalitesi parametreleri izleme
- Grafik ve zaman serisi verileri görselleştirme
- GPS koordinatları ve yükseklik bilgisi
- SD karta veri kaydetme ve trend analizi
Sorun Giderme ve Optimizasyon
ST7789 ekran modülü kullanımında karşılaşılabilecek sorunlar ve çözüm yöntemleri.
Yaygın Sorunlar ve Çözümleri
Kullanıcıların en sık karşılaştığı sorunlar ve bunların giderilmesi:
- Ekran Çalışmıyor/Görüntü Yok:
- Sorun: Ekran açılmıyor veya tamamen boş kalıyor
- Çözümler:
- Pin bağlantılarını kontrol edin, özellikle VCC, GND, CS, DC ve RST
- Besleme voltajının uygun olduğunu doğrulayın (3.3V)
- RST pinine manuel reset sinyali gönderin (LOW → HIGH)
- Kodunuzda tft.init() fonksiyonunda doğru piksel boyutlarını belirttiğinizden emin olun
- SPI haberleşme hızını düşürün, bazı ekranlar yüksek hızlarda kararsız çalışabilir
- Karmaşık/Bozuk Görüntü:
- Sorun: Ekranda karışık veya bozuk görüntü, rastgele pikseller
- Çözümler:
- DC (Data/Command) pin bağlantısını kontrol edin
- tft.setRotation() değerini değiştirmeyi deneyin (0-3 arası)
- MOSI ve SCK sinyal hatları için kısa kablolar kullanın
- Kütüphanenin ST7789 ile uyumlu olduğundan emin olun
- Kablo bağlantılarında elektromanyetik girişimi azaltmak için filtre kapasitörleri kullanın
- Yanlış Renkler veya Kayık Görüntü:
- Sorun: Renkler doğru değil veya görüntü kayık/hizasız
- Çözümler:
- Doğru renk formatını kullandığınızı kontrol edin (genellikle RGB565)
- tft.setAddrWindow() için doğru piksel offset değerlerini ayarlayın
- Ekran başlatmada setRotation() ve colstart/rowstart parametrelerini ayarlayın
- TFT_eSPI kullanıyorsanız User_Setup.h dosyasındaki ST7789_DRIVER tanımlamalarını kontrol edin
- Farklı başlatma komutları deneyin, bazı ST7789 varyasyonları farklı başlatma gerektiriyor
Performans İyileştirme İpuçları
Ekrandan maksimum performans almak için optimizasyon teknikleri:
- SPI İletişim Optimizasyonu:
- Mümkünse maksimum SPI hızını kullanın (Arduino için ~8MHz, ESP32 için ~40MHz)
- startWrite() ve endWrite() fonksiyonları arasında çoklu çizim işlemlerini gerçekleştirin
- Büyük veri transferleri için DMA kullanın (destekleyen platformlarda)
- SPI kabloları kısa tutun ve birbirine paralel yerleştirin
- Daha hızlı ESP8266/ESP32 gibi mikrodenetleyicileri tercih edin
- Grafik Render Teknikleri:
- TFT_eSPI kütüphanesindeki sprite fonksiyonlarını kullanın
- Büyük bloklar halinde çizim yapın (drawPixel yerine fillRect veya drawBitmap)
- Sadece değişen bölgeleri güncelleyin, tüm ekranı her seferinde temizlemeyin
- Karmaşık grafikleri PROGMEM'de saklayın ve oradan okuyun
- İnce çizgiler veya küçük yazılar için anti-aliasing kullanmaktan kaçının
- Bellek Yönetimi:
- Arduino gibi düşük RAM platformlarında büyük arabellek kullanmaktan kaçının
- Geçici değişkenleri fonksiyon kapsamında tutun, global değişken yapmayın
- Çift tamponlama için küçük, parçalı arabellekler kullanın
- Büyük font dosyaları yerine daha küçük fontlar tercih edin
- Bitmap görüntüleri RLE (Run-Length Encoding) ile sıkıştırın
Güç Optimizasyonu
Pil ile çalışan projelerde enerji verimliliği için stratejiler:
- Arka Işık Kontrolü:
- Arka ışık için PWM kontrolü uygulayın
- Kullanılmadığında arka ışığı kısın veya kapatın
- Ortam ışığı sensörü ile otomatik parlaklık ayarı yapın
- Hareket algılama veya kullanıcı aktivitesi ile arka ışığı yönetin
- Kritik batarya durumunda arka ışığı azaltın
- Güç Yönetim Modları:
- Kullanılmadığında ekranı sleep moduna alın (tft.enableSleep veya ilgili komut)
- Uzun süre kullanılmadığında deep standby modunu kullanın
- Periyodik görevler için uyku modları arasında kısa uyanma periyotları planlayın
- Güncelleme hızını kullanım senaryosuna göre ayarlayın
- Ekran tazelemesi ve işlemci kullanımını senkronize edin
- Verimli Algoritma Tasarımı:
- İşlemci kullanımını azaltmak için optimize edilmiş grafik algoritmaları kullanın
- Gereksiz ekran güncellemelerinden kaçının
- Tetikleyici olaylarla ekran güncellemesi yapın, sürekli yenileme yerine
- Hazır grafikler için çalışma zamanı hesaplamaları yerine önceden hesaplanmış değerler kullanın
- Düşük güç modu için renk derinliğini azaltmayı düşünün
Paket İçeriği
Ürün kutusunda bulunan parçaların listesi.
İlgili Ürün Kategorilerimiz
ST7789 ekran modülünüzü kontrol etmek için gerekli Arduino kartları ve aksesuarlarını keşfedin. Uno, Nano, Mega ve diğer Arduino uyumlu geliştirme kartlarıyla projelerinizi hayata geçirin.
Ürünleri İncele →
Projeleriniz için çeşitli boyut ve özelliklerde LCD, TFT, OLED ekranlar. Farklı çözünürlük, boyut ve bağlantı seçenekleriyle her türlü görselleştirme ihtiyacınızı karşılayabileceğiniz geniş ekran ürün yelpazemizi inceleyin.
Ürünleri İncele →
Neden Voltaj.Net'ten Almalısınız?
Voltaj.Net, Türkiye'nin güvenilir elektronik komponent tedarikçisi olarak, projeleriniz için yüksek kaliteli ekran modülleri ve mikrodenetleyici çözümleri sunmaktadır.
- Kalite Güvencesi: Test edilmiş ve onaylanmış ürünlerle projelerinizde sorunsuz performans.
- Teknik Destek: Ekran entegrasyonu ve programlama konusunda uzman desteği.
- Hızlı Teslimat: Siparişiniz aynı gün işleme alınır ve kısa sürede kargolanır.
- Tamamlayıcı Ürünler: Projeleriniz için gerekli tüm elektronik komponentleri tek yerden alabilirsiniz.
- Proje Çözümleri: Hobi, eğitim veya profesyonel projeleriniz için komple çözümler.
- Uygun Fiyatlar: Rekabetçi fiyatlarla kaliteli elektronik bileşenler.
- Geniş Ürün Yelpazesi: Farklı boyut ve özelliklerde ekran modülleri ve mikrodenetleyiciler.
- Güvenli Alışveriş: SSL korumalı ödeme sistemi ve güvenilir teslimat.
Ürün Hakkında Sıkça Sorulan Sorular
ST7789 ekranı Arduino Uno ile nasıl bağlarım?
Arduino Uno ile ST7789 ekranı şu şekilde bağlayabilirsiniz: VCC → Arduino 3.3V (5V pin kullanıyorsanız regülatör olduğundan emin olun), GND → Arduino GND, SCL/SCK → Arduino D13 (SPI Clock), SDA/MOSI → Arduino D11 (SPI MOSI), RES/RST → Arduino D9 (veya başka bir dijital pin), DC → Arduino D8 (veya başka bir dijital pin), BLK → Arduino D7 (PWM pin önerilir), CS → Arduino D10 (veya başka bir dijital pin). Arduino 5V ile çalışırken mantık seviyesi dönüştürücü kullanmanız önerilir çünkü ST7789 ekran 3.3V lojik seviyede çalışır. Bağlantı sonrası doğru kütüphaneleri (Adafruit ST7789 ve Adafruit GFX) kurmanız ve kodunuzda pin tanımlamalarını doğru yapmanız gerekir.
ST7789 ekran modülü için hangi kütüphaneleri kullanmalıyım?
ST7789 ekran modülü için temelde iki popüler kütüphane seçeneğiniz var: 1) Adafruit GFX ve Adafruit ST7789 kütüphaneleri - kullanımı kolay, yaygın destekli ve Arduino IDE Kütüphane Yöneticisinden doğrudan kurulabilir. Bu kütüphaneler birlikte kullanılmalıdır. 2) TFT_eSPI kütüphanesi - daha hızlı performans sunar ve özellikle ESP8266/ESP32 platformlarında DMA desteği gibi gelişmiş özellikler sağlar. Ancak kullanmadan önce User_Setup.h dosyasında pin ve ekran ayarlarını yapmanız gerekir. Hangi kütüphaneyi seçeceğiniz projenin karmaşıklığına ve mikrodenetleyicinize bağlıdır. Başlangıç için Adafruit kütüphaneleri daha kolaydır, daha ileri projeler için TFT_eSPI daha iyi performans sağlar.
Bu ekranın çözünürlüğü ve renk derinliği nedir?
ST7789 ekran modülü 240x240 piksel çözünürlük ve 65K renk (16-bit RGB565 formatı) derinliği sunmaktadır. Bu çözünürlük 1.3 inç boyutunda piksel yoğunluğunun yaklaşık 260 PPI olduğu anlamına gelir, bu da oldukça keskin ve net bir görüntü sağlar. 16-bit renk derinliği her piksel için 65,536 farklı rengi temsil edebilir (5-bit kırmızı, 6-bit yeşil, 5-bit mavi). ST7789 denetleyicisi dahili olarak 18-bit (262K renk) işleme yapabilse de ekrana aktarılan renk derinliği 16-bit'tir. Bu renk derinliği fotoğraflar, grafikler ve arayüzler için oldukça yeterlidir. Ayrıca, 0-255 arasında parlaklık değerleri ve farklı renk kombinasyonları oluşturmanıza olanak sağlar.
ST7789 ekran ne kadar güç tüketir?
ST7789 ekran modülünün güç tüketimi çalışma koşullarına göre değişir. Normal çalışma sırasında ekran denetleyicisi yaklaşık 20-25mA tüketir. Arka ışık açıkken toplam tüketim genellikle 70-100mA civarındadır. Arka ışık parlaklığı PWM ile azaltılarak güç tüketimi düşürülebilir. Ekranın sleep modunda tüketimi 10μA'den düşüktür. Deep standby modunda ise tüketim 5μA seviyesine kadar iner. Güç tüketimini azaltmak için arka ışığı kısma, sleep modlarını kullanma ve ekranı yalnızca gerektiğinde güncelleme stratejileri uygulanabilir. Pil ile çalışan projelerde düşük tüketimli ESP32 veya STM32L serisi gibi mikrodenetleyiciler kullanarak sistem verimliliğini artırabilirsiniz.
ST7789 ekran modülünde görüntü ters çıkıyor, nasıl düzeltebilirim?
ST7789 ekranınızda görüntünün ters çıkması yaygın bir durumdur ve kolayca düzeltilebilir. tft.setRotation() fonksiyonunu kullanarak ekran yönünü ayarlayabilirsiniz. Bu fonksiyon 0-3 arasında değer alır, her biri 90 derecelik bir rotasyon temsil eder. Örneğin: tft.setRotation(0); // 0° (varsayılan), tft.setRotation(1); // 90° saat yönünde, tft.setRotation(2); // 180° dönüş, tft.setRotation(3); // 270° saat yönünde. Kütüphanenize bağlı olarak, bazı ST7789 varyasyonları için setRotation fonksiyonundan sonra ekran belleği kaydırma (offset) ayarları gerekebilir. TFT_eSPI kütüphanesini kullanıyorsanız, User_Setup.h dosyasında #define TFT_INVERSION_ON veya #define TFT_INVERSION_OFF tanımlamasını değiştirerek renklerin ters çıkma durumunu düzeltebilirsiniz.
ST7789 ekranı ESP32 veya ESP8266 ile nasıl kullanabilirim?
ESP8266/ESP32 ile ST7789 ekranı bağlamak için: VCC → 3.3V, GND → GND, SCL/SCK → GPIO14 (ESP8266) veya GPIO18 (ESP32), SDA/MOSI → GPIO13 (ESP8266) veya GPIO23 (ESP32), RES/RST → GPIO0 (ESP8266) veya GPIO4 (ESP32), DC → GPIO2 (ESP8266) veya GPIO2 (ESP32), BLK → GPIO15 (veya PWM destekli başka bir pin), CS → GPIO12 (ESP8266) veya GPIO5 (ESP32). ESP cihazları 3.3V lojik seviyede çalıştığından seviye dönüştürücü gerekmez. TFT_eSPI kütüphanesi ESP platformlarında en iyi performansı sunar. User_Setup.h dosyasında #define USER_SETUP_INFO kullanın ve #define ST7789_DRIVER, #define TFT_WIDTH 240, #define TFT_HEIGHT 240 ayarlarını yapın. ESP8266/ESP32 üzerinde SPI saati 40MHz'e kadar çıkabilir, bu hızlı ekran güncelleme sağlar. TFT_eSPI ile DMA kullanarak ESP32'de ekstra hız kazanabilirsiniz.
ST7789 ekranda bitmap resimler nasıl gösterilir?
ST7789 ekranda bitmap göstermek için birkaç yöntem vardır: 1) drawBitmap() - 1-bit siyah/beyaz bitmap için, 2) drawRGBBitmap() - 16-bit renkli bitmap için. Resimleri önce uygun formata dönüştürmelisiniz. Araçlar: LCD Image Converter, Image2CPP, GIMP. Dönüştürme işlemi sonrasında bitmap verisini PROGMEM'de saklayın: const uint16_t myBitmap[] PROGMEM = { ... bitmap verileri ... }; RGB565 formatını kullanın (16-bit renk). Bitmap görüntüleme kodu: tft.drawRGBBitmap(x, y, myBitmap, width, height); Büyük görseller için bellek kullanımını optimize etmek amacıyla SD kart depolama veya tile rendering kullanabilirsiniz. ESP8266/ESP32 platformlarında daha büyük görseller desteklenirken, Arduino'da bellek sınırlıdır. Animasyonlar için TFT_eSPI'nin sprite fonksiyonları tavsiye edilir.
Dokunmatik ekran özelliği var mı?
Hayır, standart Arduino ST7789 1.3 inç 240x240 IPS TFT LCD modülünde dokunmatik ekran özelliği bulunmamaktadır. Bu sadece görüntüleme ekranıdır. Dokunmatik özellik istiyorsanız, XPT2046 veya FT6236 gibi dokunmatik kontrolcülere sahip ayrı modüller tercih etmelisiniz. Standart ekranınıza harici bir dokunmatik panel eklemek teknik olarak mümkündür, ancak oldukça karmaşıktır ve hassas hizalama gerektirir. Dokunmatik özellik olmadan kullanıcı arayüzü için alternatif olarak fiziksel butonlar, döner encoder veya joystick ekleyebilirsiniz. İleri projelerde IR sensör, ultrasonik mesafe sensörü veya kamera ile temassız etkileşim sağlayabilirsiniz. Bazı satıcılar benzer boyutta dokunmatik ekran modülleri sunmaktadır, projeniz için dokunmatik özellik gerekliyse bunları araştırabilirsiniz.