Teknoloji tft tn. TFT ekran teknolojisi. TFT teknolojisi nedir

Temel komutlarla başlayıp profesyonel tasarımla biten TFT LCD ekranların Arduino ile nasıl kullanılacağını biliyoruz.

Bu yazıda TFT LCD'yi Arduino kartlarıyla nasıl kullanacağınızı öğreneceksiniz. Temel komutları ele alacağız, ayrıca profesyonel tasarım ve teknoloji hakkında bilgi edineceğiz. Planların arkasında istatistik alanı okunabilir:

  • metinleri, sembolleri ve sayıları gerekli yazı tipinde görüntüleyin;
  • kolo, trikutnik, kare vb. figürler çizin;
  • Images.bmp'yi ekranda görüntüleyin;
  • renkli sarma ve ters çevirme gibi ekran parametrelerini değiştirin;
  • Arduino kullanarak animasyonu görüntüleyin.

Wikipedia'dan: Aktif matrisli nadir bir kristal ekran (TFT LCD, İngilizce ince film transistör), içine aktif bir matrisin yerleştirildiği, ince film transistörlerle kaplandığı bir tür nadir kristal ekrandır.

Elektronik projelerinde donanım ile sistem arasında bir arayüz oluşturmak önemlidir. Bu arayüz ilgili verileri görüntüleyecek, menüleri ve erişim kolaylığı sağlayacak şekilde oluşturulabilir. Garny tasarımı daha az önemli değil.

Ve bir takım bileşenler var. LED'ler, 7 segmentli modüller, grafik ekranlar ve çok renkli TFT ekranlar. Projeleriniz için doğru bileşen, bilgisayarla etkileşim ve işlemci kapasitesi gibi veri miktarında yatmaktadır.

TFT LCD, odak ve kontrast gibi görüntü netliğini iyileştirmek için ince fiber transistör (TFT) teknolojisini kullanan nadir kristal ekranın (LCD) bir çeşididir. TFT LCD, pasif matris PK ekranların veya doğrudan çok bölümlü panellere sahip basit PK ekranların yerine kullanılabilen aktif bir matris PK ekrandır.

Arduino projeleri düşük işlemci frekansına sahiptir. Bu şekilde karmaşık görüntülerin yüksek netlikte ve yüksek kalitede grafik olarak görüntülenmesi mümkün değildir. Bu nedenle basit komutları ve verileri görüntülemek için birden fazla renkli TFT ekran kullanılabilir.

Bu makale, verileri, grafikleri, menüleri vb. görüntülemek için kitaplıkları ve ileri teknolojiyi kullanır. profesyonel tasarımla. Bu sayede projeniz ne olursa olsun inanılmaz derecede havalı görünecektir.

Hangi boyutta? Ne tür bir kontrolör?

Ekranların boyutu proje parametrelerini etkiler. Harika ekran kendinizin önüne geçmeyin. Sembolleri ve görüntüleri yüksek kalitede görüntülemek istiyorsanız, büyük boy daha fazlasıyla göster yüksek ayrı bina. Bu, feed'inizin akışkanlığını değiştirir, daha fazla alan açar ve ayrıca fırlatma için daha fazla sıvı çıkarır.

Bu nedenle öncelikle elin ayrılığını, akıcılığını, detayları, görsellerin, yazıların ve sayıların rengini ve boyutunu kontrol etmelisiniz. Arduino ekranlarının popüler boyutlarını sunuyoruz:

  • 3,5" inç 480 × 320,
  • 2,8" inç 400 × 240,
  • 2,4" inç 320 × 240,
  • 1,8" inç 220 × 176.

Doğru ekranı titrettikten sonra doğru denetleyiciyi titretme zamanı geldi. Sembolleri, metinleri, sayıları ve statik görüntüleri görüntülemek istiyorsanız ve görüntüleme hızı önemli değilse Atmega328 Arduino doğru seçimdir.

Kod boyutu büyükse UNO yetersiz kalabilir. Ayrıca vikorist de olabilirsiniz. Peki görüntüleri yüksek düzeyde ayrım ve yöne sahip olarak nasıl göstermek istiyorsunuz? yüksek hız Arduino DUE gibi ARM Arduino modüllerini kullanmak sizin sorumluluğunuzdadır.

Sürücüler ve kitaplıklar

Elektronik/bilgisayar kurulumlarında ekran sürücüsüne taşıyıcı denir. entegre devre(veya alternatif olarak, ayrık mantık ve diğer bileşenlerden oluşan bir uç makine yerleştirebilirsiniz), bu, mikroişlemci, mikrodenetleyici, ASIC veya çevresel arayüz arasında bir arayüz işlevi sağlar zagalnogo önemi ve LCD, LED, OLED, ePaper, CRT, Nixie vb. gibi belirli bir görüntüleme cihazı türü.

Ekran sürücüsü genellikle TTL, CMOS, RS232, SPI, I2C vb. gibi standart evrensel seri veya paralel arayüzlerden gelen komutları ve verileri kabul eder. Gerekli metni veya görüntüyü ekranda görüntülemek için iletken voltaj, akım ve çoğullama çözme özelliğine sahip sinyaller üretir.

PK ekran geliştiricileri, ürünleri için farklı sürücüler kullanıyor. Bazıları popüler, bazıları ise bilinmiyor. Ekranı kolayca başlatmak için LCD Arduino kütüphanelerini kullanmalı ve kodunuza eklemelisiniz. Aksi halde ekranın başlatılması daha zor olabilir. İnternette çok sayıda ücretsiz kütüphane var ancak kütüphanelerde önemli bir nokta PK ekran sürücüsü ile karıştırılmalarıdır. Kitaplığınızdan dolayı PK ekran sürücünüz hatalı. Bu makalede Adafruit GFX kitaplığı ile MCUFRIEND KBV kitaplığı ve uygulama kodu kullanılmaktadır. Onları başka elçiler için ikna edebilirsiniz.

MCUFRIEND KBV'nin sıkıştırmasını açın ve MCUFRIEND_kbv.CPP'yi açın. MCUFRIEND kütüphanesi tarafından desteklenen sürücülerin bir listesini göreceksiniz.

İzlerin bulunduğu klasörü açın (İngilizce – Örnek). Arduino'da çalıştırılabilecek kod uygulamalarının bir listesi. PK ekranını bağlayın ve izmaritleri ters çevirin.

Aksesuarların listesi

TFT LCD ile ilgili birçok projeyi uygulamak için daha önce tartıştığımız gibi bir dizi bileşene ihtiyacımız var:

  • 3,5" ElectroPeak TFT renkli ekran × 1
  • 2,4" TFT ekran LCD ElektroPeak × 1
  • Arduino UNO R3 × 1
  • Arduino Mega 2560×1
  • Arduino DUE × 1

Yazılım güvenliği

Robotlar için de Arduino'ya ihtiyacımız var.

Kod

Kitaplığı eklemeniz ve ardından kodu almanız gerekir. İlk önce neyi başlatıyorsunuz? Arduino kurulu, övünme. Aşağıdakini yazmanız yeterli:

  • Web sitemize veya www.arduino.cc/en/Main/Software web sitesine gidin ve keyfini çıkarın güvenlik yazılımı işletim sisteminiz için. Lütfen eklemeden önce güvenlik yazılımınızı yükleyin.
  • Ortamı başlat Arduino devreleri, temizlemek Metin düzeltici Daha sonra kodu bir metin düzenleyiciye kopyalayın.
  • Küçük resme gidin ve kitaplıkları genişletin. "ZIP kitaplığı ekle"yi tıklayın ve kitaplıkları ekleyin.
  • "Araçlar ve Kartlar" bölümünden kartı seçin, Arduino kartını seçin.
  • Arduino'yu bilgisayara bağlayın ve COM bağlantı noktasını "Araçlar ve bağlantı noktası" olarak ayarlayın.
  • "Giriş" düğmesine (ok) tıklayın.
  • Artık her şey halledildi!

Popo kodunu aldıktan sonra, PK ekranında nasıl görsel oluşturulacağını bulmanın zamanı geldi.

Kütüphane

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h"

İlk sıra ana olanı aldı grafik kütüphanesi ekranlar için (Adafruit tarafından yazılmıştır).

Bir diğeri ise MCUFRIEND Arduino ekran sürücülerini destekleyen bir kütüphane sağlar.

#include "TouchScreen.h" // dokunmatik ekranı görüntülemek istiyorsanız #include "bitmap_mono.h" // görüntülemek istiyorsanız görüntü taraması kitaplıktan #include "bitmap_RGB.h" // kitaplıktan raster görüntüler görüntülemek istiyorsanız #include "Fonts/FreeSans9pt7b.h" // başka yazı tiplerine ihtiyacınız varsa #include "Fonts/FreeSans12pt7b.h" // eğer başka yazı tiplerine ihtiyacınız varsa #include "Fonts/FreeSerif12pt7b.h" // başka yazı tiplerine ihtiyacınız varsa #include "FreeDefaultFonts.h" // başka yazı tiplerine ihtiyacınız varsa #include "SPI.h" // bitmap görüntüleri görüntülemek için sdcard kaynağı # "SD .h"yi dahil et

Bu kütüphanelere hemen ihtiyaç duyulmaz ancak ekleyebilirsiniz.

Temel komutlar

Sınıf ve nesne

//(int CS=A3, int RS=A2, int WR=A1, int RD=A0, int RST=A4) MCUFRIEND_kbv tft(A3, A2, A1, A0, A4);

Bu seri, TFT sınıfı MCUFRIEND_kbv ile bir nesne oluşturacak ve PK ekranı ile Arduino arasında SPI bağlantılarını sağlayacaktır.

RK ekranını başlatma

uint16_t kimlik = tft.readID(); tft.begin(ID);

İşlev tft.readID ekrandaki kimliği okur ve değiştirilebilir kimliğinizi yerleştirir. Daha sonra işlev tft.begin Tanımlayıcıyı kaldırır ve PK ekranı çalışmaya hazır hale gelir.

Ayrı ekran alanı

tft.width(); // int16_t genişlik (geçersiz); tft.yükseklik(); //int16_t yükseklik(geçersiz);

Bu iki işlevin ardındaki ekranın ayrı doğasını fark edebilirsiniz. Bunları koda ekleyin ve çıktı verilerini değişikliğe yerleştirin uint16_t. Daha sonra seri porttan okuyun Serial.println();. Biraz daha ekle Seri.begin(9600); V kurmak().

Ekranı renklendirin

tft.fillScreen(t); //fillScreen(uint16_t t);

İşlev ekranı doldur ekran rengini şu şekilde değiştirir: T. Kod rengini değiştirmek için 16 bitlik bir değişiklik var UTFT.

#define SİYAH 0x0000 #define LACİVERT 0x000F #define KOYU YEŞİL 0x03E0 #define KOYU 0x03EF #define BORDO 0x7800 #define MOR 0x780F #define fine KOYU GREY 0x7BEF #define MAVİ 0x001F #define YEŞİL 0x07 E0 #define CYAN 0x07FF #define KIRMIZI 0xF800 #define MACENTA 0xF81F # define SARI 0xFFE0 #define BEYAZ 0xFFFF #define TURUNCU 0xFD20 #define YEŞİLSARI 0xAFE5 #define PEMBE 0xF81F

Bu satırları koda ekleyebilir ve işlevlerde adın rengini değiştirebilirsiniz.

Pikeliv'in rezervasyonu

tft.drawPixel(x,y,t); //drawPixel(int16_t x, int16_t y, uint16_t t) tft.readPixel(x,y); //uint16_t readPixel(int16_t x, int16_t y)

İşlev DrawPixel t rengine x ve y pikselini atar.

İşlev okuPixel Piksel rengini x ve y artışlarıyla okur.

Boyama hatları

tft.drawFastVLine(x,y,h,t); //drawFastVLine(int16_t x, int16_t y, int16_th h, uint16_t t) tft.drawFastHLine(x,y,w,t); //drawFastHLine(int16_t x, int16_ty, int16_t w, uint16_t t) tft.drawLine(xi, yi, xj, yj, t); //drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t t)

İşlev DrawFastVLine boyalar dikey çizgi, X, y, її dovzhin - h piksellerinin ve renk - t'nin gölgelenmesiyle başlayan şey.

İşlev DrawFastHLine boyalar yatay çizgi, Bu, x ve y'nin gölgelenmesi, w piksellerin çoğunluğu ve - t rengiyle başlar.

İşlev çizgi çiz xi, yi'den başlayarak xj, yj, color - t'ye kadar bir satır çizer.

(uint16_t a=0; a için)<5; a++) { tft.drawFastVLine(x+a, y, h, t);} for (uint16_t a=0; a<5; a++) { tft.drawFastHLine(x, y+a, w, t);} for (uint16_t a=0; a<5; a++) { tft.drawLine(xi+a, yi, xj+a, yj, t);} for (uint16_t a=0; a<5; a++) { tft.drawLine(xi, yi+a, xj, yj+a, t);}

Bu üç kod bloğu önceki koda benzer 5 piksel genişliğinde çizgilerle çizilmiştir.

Tft.fillRect(x,y,w,h,t); //fillRect(int16_t x, int16_ty, int16_t w, int16_th h, uint16_t t) tft.drawRect(x, y, w, h, t); //drawRect(int16_t x, int16_ty, int16_t w, int16_t h, uint16_t t) tft.fillRoundRect(x,y,w,h,r,t); //fillRoundRect (int16_t x, int16_ty, int16_t w, int16_th h, uint8_t R, uint16_t t) tft.drawRoundRect(x,y,w,h,r,t); //drawRoundRect(int16_t x, int16_ty, int16_t w, int16_th h, uint8_t R, uint16_t t)

İşlev doldurRect Orthocutaneum'un dolgularını x ve y koordinatlarında, w - genişlik, h - yükseklik, t - Orthocutaneum'un renginde boyar.

İşlev DrawRect x ve y koordinatlarında genişliği w, yüksekliği h ve rengi t olan ortokütan bir ağaç boyar.

İşlev DoldurmaYuvarlakDikdörtgen rektumun dolgularını yarıçapı r, koordinatları x ve y, genişliği w ve yüksekliği h, t rengiyle boyar.

İşlev çizYuvarlakDikdörtgen r radyal yuvarlatılmış kenarları x ve y olan, genişliği w ve yüksekliği h olan ve rengi t olan bir ortokütanöz boyar.

Kola boyama

tft.drawCircle(x,y,r,t); //drawCircle(int16_t x, int16_ty, int16_t r, uint16_t t) tft.fillCircle(x,y,r,t); //fillCircle(int16_t x, int16_t y, int16_t r, uint16_t t)

İşlev çizmekÇember yarıçapı r ve rengi t olan x ve y koordinatlarında boyar.

İşlev DoldurmaCircle x ve y koordinatlarından, r yarıçapından ve t renginden oluşan tam bir daire çizer.

İçin (int p = 0; p< 4000; p++) { j = 120 * (sin(PI * p / 2000)); i = 120 * (cos(PI * p / 2000)); j2 = 60 * (sin(PI * p / 2000)); i2 = 60 * (cos(PI * p / 2000)); tft.drawLine(i2 + 160, j2 + 160, i + 160, j + 160, col[n]); }

Bu kod altın bir yaydır. “For” değerini 0 ile 4000 arasında değiştirebilirsiniz.

Tricutniklerin boyanması

tft.drawTriangle(x1,y1,x2,y2,x3,y3,t); // DrawTriangle (int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, // uint16_t tf.filltriangle (x1, y1, x2, y2, x3, y // filtriangle (int16_t x1, y // filtre (int16_t x1 y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, // uint16_t t)

İşlev çizmekÜçgen bir tricutnik'i üç köşe koordinatı x, y, z ve t renkleriyle boyar.

İşlev DoldurmaÜçgen trikütikülün üç bölümünü x, y, z ve t koordinatlarıyla renklendirir.

Metnin temsili

tft.setCursor(x,y); //setCursor(int16_t x, int16_t y)

Bu kod imleç konumunu x ve y olarak ayarlar.

Tft.setTextColor(t); //setTextColor(uint16_t t) tft.setTextColor(t,b); //setTextColor(uint16_t t, uint16_t b)

İlk satır metnin rengini ayarlar. Öndeki satır, metnin ve arka planın rengini ayarlar.

Tft.setTextSize(s); //setTextSize(uint8_t s)

Bu kod, altyazı metninin boyutunu ayarlar S. Sayının kendisi S 1'den 5'e kadar olan aralıktaki değişiklikler.

Tft.write(c); //yaz(uint8_t c)

Bu kod bir sembolü temsil eder.

Tft.println("www.Electropeak.com"); tft.print("www.Electropeak.com");

İlk fonksiyon satırı görüntüler ve imleci bir sonraki satıra taşır.

Başka bir işlev yalnızca satırı görüntüler.

ShowmsgXY(x,y,sz,&FreeSans9pt7b,"www.Electropeak.com"); //void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg) void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg) y1, uint16_t wid ,ht; tft.set

Bu işlev metni yazı tipine dönüştürür. Bu işlevi ve yazı tipi kitaplığını eklemeniz gerekir.

İçin (int j = 0; j< 20; j++) { tft.setCursor(145, 290); int color = tft.color565(r -= 12, g -= 12, b -= 12); tft.setTextColor(color); tft.print("www.Electropeak.com"); delay(30); }

Bu işlev bildiğiniz metni bulanıklaştırabilir. Bunu kodunuza eklemelisiniz.

Ekran sarma

tft.setRotation(r); //setRotation(uint8_t r)

Bu kod ekranı döndürür. 0 = 0°, 1 = 90°, 2 = 180°, 3 = 270°.

Ekran renklerini ters çevirme

tft.invertDisplay(i); //invertDisplay(boolean i)

Bu kod ekran renklerini tersine çevirir.

Tft.color565(r,g,b); //uint16_t color565(uint8_t r, uint8_t g, uint8_t b)

Bu kod RGB kodunu iletir ve UTFT renk kodunu alır.

Ekranı kaydırın

for (uint16_t i = 0; i< maxscroll; i++) { tft.vertScroll(0, maxscroll, i); delay(10);}

Bu kod ekranı kaydıracaktır. Maxroll – maksimum kaydırma yüksekliği.

Skidannya

tft.reset();

Bu kod ekranı kaldırır.

Tek renkli görüntülerin görünümü

static const uint8_t name PROGMEM = ( // Resim kodunu buraya ekleyin. ) tft.drawBitmap(x, y, name, sx, sy, 0x0000);

Artık resminizi onaltılık koda dönüştürmek sizin sorumluluğunuzdadır. Zavantazhte programı nezabechennya posilannya daha düşük. Yazılım ayarlarını değiştirmek istemiyorsanız görüntünün rengini ters çevirmeniz, görüntüyü yatay olarak (yansıtılmış) görüntülemeniz ve yıl okuna karşı 90 derece döndürmeniz gerekir.

Şimdi bunu yazılıma ekleyin ve değiştirin. Dışa aktarılan dosyayı açın ve onaltılık kodu Arduino IDE'den kopyalayın. Xі sen- Roztashuvannya resmi. sxі evet- Resmi boyutlandırın. Görüntünün rengini kalan renkle değiştirebilirsiniz giriş.

RGB renkli görüntü ekranı

const uint16_t name PROGMEM = ( // Resim kodunu buraya ekleyin. ) tft.drawRGBBitmap(x, y, name, sx, sy);

Resminizi koda dönüştürmek sizin sorumluluğunuzdadır. Görüntüyü yeniden şekillendirdiği için Vikorista tse poslannya:

Görüntüyü girin ve UTFT kütüphaneleri tarafından kullanılabilecek dönüşüm dosyasını indirin. Şimdi onaltılık kodu Arduino IDE'ye kopyalayın. x ve y - görüntünün oluşturulması. sx ve sy - görüntü boyutu.

Onaltılı kodu görüntülemek için aşağıdaki dönüştürücü programını kullanabilirsiniz:

Ön katlama elemanları

Bu şablonda, renklerini sırayla değiştirmek için 8 yedek renkten oluşan bir satır ekledik. Statik bir noktanın çevresine kazık çizmek için sin(); komutunu kullanabilirsiniz. çünkü(); işlevler. PI değerini ayarlamanız gerekir. Renkleri değiştirmek için işlevi değiştirebilirsiniz renk565(); Ardından RGB kodunuzu değiştirin.

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" MCUFRIEND_kbv tft; #include "Fonts/FreeSans9pt7b.h" #include "Fonts/FreeSans12pt7b.h" #include "Fonts/FreeSerif12pt7b.h" #include "FreeDefaultFonts.h" #define PI 3.1415926535897932384626433832795 int col; void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg) ( int16_t x1, y1; uint16_t wid, ht; tft.setFont(f); tft.setCursor(x, y); tft .setTextColor(0x0000);tft.setTextSize(sz); tft.print(msg); ) void setup() (tft.reset(); Serial.begin(9600); begin(ID);tft.setRotation(1) ; tft.invertDisplay(true); 155, 0, 50);col = tft.color565(170, 30, 80); renkli565(230, 120, 170); loop() ( for (int i = 8; i > 0; i--) ( tft.fillCircle(240 + 40 * (cos(-i * PI / 4))), 120 + 40 * (sin(-i) * PI / 4)) 10, sütun);gecikme(15); + 1) * PI / 4)) 10, sütun); gecikme(15); (-(i + 2)*PI / 4)) 10, sütun); gecikme(15); tft.fillCircle(240 + 40 * (cos(-(i + 3)*PI / 4))), 120 + 40 * (sin(-(i + 3)*PI / 4))), 10, col); gecikme(15); tft.fillCircle(240 + 40 * (cos(-(i + 4)*PI / 4))), 120 + 40 * (sin(-(i + 4)*PI / 4))), 10, col); gecikme(15); tft.fillCircle(240 + 40 * (cos(-(i + 5)*PI / 4))), 120 + 40 * (sin(-(i + 5)*PI / 4))), 10, col); gecikme(15); tft.fillCircle(240 + 40 * (cos(-(i + 6)*PI / 4))), 120 + 40 * (sin(-(i + 6)*PI / 4))), 10, col); gecikme(15); tft.fillCircle(240 + 40 * (cos(-(i + 7)*PI / 4))), 120 + 40 * (sin(-(i + 7)*PI / 4))), 10, col); gecikme(15); )

Klasik metin

Bu şablon için klasik bir yazı tipi seçtik ve metni soluklaştırma işlevi ekledik.

#include "Adafruit_GFX.h" // Çekirdek grafik kitaplığı #include "MCUFRIEND_kbv.h" // Donanıma özgü kitaplık MCUFRIEND_kbv tft; #include "Fonts/FreeSans9pt7b.h" #include "Fonts/FreeSans12pt7b.h" #include "Fonts/FreeSerif12pt7b.h" #include "FreeDefaultFonts.h" void showmsgXY(int x, int y, int s, const char *msg ) ( int16_t x1, y1; uint16_t wid, ht; tft.setFont(f); tft.setCursor(x, y); tft.setTextSize(sz); tft.println(msg); ) uint8_t r = 255, g = 255, b = 255; uint16_t renk; void setup() ( Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); tft.invertDisplay(true); tft.setRotation(1); ) void loop(void) ( tft .invertDisplay(true); tft.fillScreen(WHITE); başı dertte,"); gecikme(40); tft.println(" sıkıntıdan kim güç alabilir?"); gecikme(40); gecikme(40); vicdan davranışlarını onaylar"); gecikme(40); = 0;< 20; j++) { tft.setCursor(145, 290); color = tft.color565(r -= 12, g -= 12, b -= 12); tft.setTextColor(color); tft.print(" ---- Da Vinci ----"); delay(30); } while (1); }

logoya saygı/sunum

Dosyayı kimin şablonunu yeniden hazırladık a.jpg dosya .C Ve bunu koda ekledim, bir satır yazdım ve kodu vikorize ettim. Daha sonra ekranı sola doğru hareket ettirmek için kaydırma kodunu vikorize ettik. Dosyayı taklit et .H Ve Arduino taslak klasörüne ekleyin.

#include "Adafruit_GFX.h" // Çekirdek grafik kitaplığı #include "MCUFRIEND_kbv.h" // Donanıma özgü kitaplık MCUFRIEND_kbv tft; #include "Ard_Logo.h" #define SİYAH 0x0000 #define KIRMIZI 0xF800 #define YEŞİL 0x07E0 #define BEYAZ 0xFFFF #define GRİ 0x8410 #include "Fonts/FreeSans9pt7b" "Fonts/ FreeSerif12pt7b.h" #include "FreeDefaultFont s.h" geçersiz showmsgXY (int x, int y, int sz, const GFXfont *f, const char *msg) ( int16_t x1, y1; uint16_t wid, ht; tft. ; tft.setCursor(x, y); tft.setTextSize(sz); uint16_t color; void setup() ( Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); tft.invertDisplay(true); tft.setRotation(1); ) void loop(void ) ( tft .invertDisplay(true);tft.fillScreen(WHITE);< 20; j++) { color = tft.color565(r -= 12, g -= 12, b -= 12); tft.setTextColor(color); showmsgXY(95, 280, 1, &FreeSans12pt7b, "ELECTROPEAK PRESENTS"); delay(20); } delay(1000); for (int i = 0; i < 480; i++) { tft.vertScroll(0, 480, i); tft.drawFastVLine(i, 0, 320, 0xffff); // vertical line delay(5);} while (1); }

Nokta diyagramı

Bu şablonda boyama çizgileri, kazıkların doldurulması ve satırların görüntülenmesi işlevlerini kullandık.

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" MCUFRIEND_kbv tft; uint16_t öküz=0,oy=0; int ave = 0, avec = 0, avet = 0; //////////////////////////////////////////////// // ////////////// void aveg(void) (int z=0; Serial.println(ave); Serial.println(avec); avet=ave/avec; Serial.println(avet) ) );avet=avet*32;<24; i++){ for (uint16_t a=0; a<3; a++){ tft.drawLine(avet+a, z, avet+a, z+10, 0xFB21);} // thick for (uint16_t a=0; a<2; a++){ tft.drawLine(avet-a, z, avet-a, z+10, 0xFB21);} delay(100); z=z+20; } } ////////////////////////////////////////////////////////////////// void dchart_10x10(uint16_t nx,uint16_t ny) { ave+=nx; avec++; nx=nx*32; ny=ny*48; tft.drawCircle(nx, ny, 10, 0x0517); tft.drawCircle(nx, ny, 9, 0x0517); tft.fillCircle(nx, ny, 7, 0x0517); delay (100); ox=nx; oy=ny; } /////////////////////////////////////////////////////////////////////// void dotchart_10x10(uint16_t nx,uint16_t ny) { ave+=nx; avec++; nx=nx*32; ny=ny*48; int plus=0; float fplus=0; int sign=0; int y=0,x=0; y=oy; x=ox; float xmines, ymines; xmines=nx-ox; ymines=ny-oy; if (ox>nx) (xmayınlar = öküz-nx; işaret = 1;) aksi halde işaret = 0; for (int a=0; a<(ny-oy); a++) { fplus+=xmines/ymines; plus=fplus; if (sign==1) tft.drawFastHLine(0, y, x-plus, 0xBFDF); else tft.drawFastHLine(0, y, x+plus, 0xBFDF); y++; delay(5);} for (uint16_t a=0; a<2; a++){ tft.drawLine(ox+a, oy, nx+a, ny, 0x01E8);} // thick for (uint16_t a=0; a<2; a++){ tft.drawLine(ox, oy+a, nx, ny+a, 0x01E8);} ox=nx; oy=ny; } //////////////////////////////////////////////////////////////////// void setup() { tft.reset(); Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); } void loop() { tft.invertDisplay(true); tft.fillScreen(0xffff); dotchart_10x10(3, 0); dotchart_10x10(2, 1); dotchart_10x10(4, 2); dotchart_10x10(4, 3); dotchart_10x10(5, 4); dotchart_10x10(3, 5); dotchart_10x10(6, 6); dotchart_10x10(7, 7); dotchart_10x10(9, 8); dotchart_10x10(8, 9); dotchart_10x10(10, 10); dchart_10x10(3, 0); dchart_10x10(2, 1); dchart_10x10(4, 2); dchart_10x10(4, 3); dchart_10x10(5, 4); dchart_10x10(3, 5); dchart_10x10(6, 6); dchart_10x10(7, 7); dchart_10x10(9, 8); dchart_10x10(8, 9); dchart_10x10(10, 10); tft.setRotation(1); tft.setTextSize(2); tft.setTextColor(0x01E8); tft.setCursor(20, 20); tft.print("Average"); int dl=20; for (int i=0;i<6;i++){ for (uint16_t a=0; a<3; a++){ tft.drawLine(dl, 40+a, dl+10, 40+a, 0xFB21);} dl+=16;} tft.setRotation(0); aveg(); while(1); }

Sıcaklık

Hangi şablonu vikorize ettik? günah();і çünkü(); Metin arkadaşının ek fonksiyonunun arkasında görüntülenen, çok sayıda ve bir sayıya sahip yaylar çizmeye yönelik işlevler. Daha sonra görüntüleri onaltılık koda dönüştürüp koda ekledik ve raster görüntünün ek fonksiyonunu kullanarak görüntüleri sergiledik. Daha sonra görüntü stilini değiştirmek için Çizgi Boyama fonksiyonunu kullandık. File.h dosyasını seçin ve Arduino klasörüne ekleyin.

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" #include "Math.h" MCUFRIEND_kbv tft; #include "Sıcaklık.h" #define PI 3,1415926535897932384626433832795 int a=1000,b=3500; int n, f; int j, j2, lj; int i, i2,li; int pct = 0; int d = (20, 20, 20, 20, 20); uint16_t col = (0x7006, 0xF986, 0x6905, 0x7FF7, 0x024D); void setup() ( tft.reset(); Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); tft.invertDisplay(true); tft.setTextSize(2); ) void loop() ( // tekrar tekrar çalışacak şekilde ana kodunuzu buraya koyun: tft.fillScreen(0xffff); tft.setRotation(1); tft.drawBitmap(350, 70, Temp, 70, 180, 0x0000); tft.fillCir (385,213,25,tft.color565(255, 0, 0));< 4000; p++) { j = 120 * (sin(PI * p / 2000)); i = 120 * (cos(PI * p / 2000)); j2 = 110 * (sin(PI * p / 2000)); i2 = 110 * (cos(PI * p / 2000)); tft.drawLine(i2 + 160, j2 + 160, i + 160, j + 160, tft.color565(100, 100, 100)); } ///////////////////////////////////////////////////////////////////// if (b>a) (o sırada (a Yuvarlak diyagram

Bu şablonda sayıları girdi olarak kabul eden ve bunları pasta grafik olarak görüntüleyen bir fonksiyon oluşturduk. Biz sadece vikoristica'yız, kazıkların işlevlerini boyayıp yeniliyoruz.

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" #include "Math.h" MCUFRIEND_kbv tft; #define PI 3.1415926535897932384626433832795 int n, f; int j, j2; int i, i2; int pct = 0; int d = (10, 60, 16, 9, 10); uint16_t col = (0x7006, 0xF986, 0x6905, 0x7FF7, 0x024D); void setup() ( tft.reset(); Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); tft.invertDisplay(true); tft.setTextSize(2); ) void loop() ( // tekrar tekrar çalışacak şekilde ana kodunuzu buraya koyun: tft.fillScreen(0x0042); tft.setRotation(1); for (int p = 0; p< 4000; p++) { j = 120 * (sin(PI * p / 2000)); i = 120 * (cos(PI * p / 2000)); j2 = 60 * (sin(PI * p / 2000)); i2 = 60 * (cos(PI * p / 2000)); tft.drawLine(i2 + 160, j2 + 160, i + 160, j + 160, col[n]); } n = 0; for (int a = 0; a < 5; a++) { pct += d[n] * 40; f = 4000 - pct; for (int b = 0; b < f; b++) { j = 120 * (sin(PI * b / 2000)); i = 120 * (cos(PI * b / 2000)); j2 = 60 * (sin(PI * b / 2000)); i2 = 60 * (cos(PI * b / 2000)); tft.drawLine(i2 + 160, j2 + 160, i + 160, j + 160, col); } tft.fillCircle(380, 100 + (30 * n), 10, col[n]); tft.setTextColor(0xffff); tft.setCursor(400, 94 + (30 * n)); tft.print(d[n]); tft.print("%"); n++; } while (1); }

Müzik

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" MCUFRIEND_kbv tft; #include "Volume.h" #define SİYAH 0x0000 int a = 0,b = 4000,c = 1000,d = 3000; int s = 2000; int j, j2; int i, i2; int Beyaz; void setup() ( Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); tft.invertDisplay(true); tft.setRotation(1); ) void loop(void) ( tft .invertDisplay(true), tft.fillScreen(BLACK);< s) { j = 14 * (sin(PI * a / 2000)); i = 14 * (cos(PI * a / 2000)); j2 = 1 * (sin(PI * a / 2000)); i2 = 1 * (cos(PI * a / 2000)); tft.drawLine(i2 + 62, j2 + 240, i + 62, j + 240, White); j = 14 * (sin(PI * (a-300) / 2000)); i = 14 * (cos(PI * (a-300) / 2000)); j2 = 1 * (sin(PI * (a-300) / 2000)); i2 = 1 * (cos(PI * (a-300) / 2000)); tft.drawLine(i2 + 62, j2 + 240, i + 62, j + 240, 0x0000); tft.fillRect(50, 285, 30, 30, 0x0000); tft.setTextSize(2); tft.setTextColor(0xffff); tft.setCursor(50, 285); tft.print(a / 40); tft.print("%"); a++; } if (b < s) { j = 14 * (sin(PI * b / 2000)); i = 14 * (cos(PI * b / 2000)); j2 = 1 * (sin(PI * b / 2000)); i2 = 1 * (cos(PI * b / 2000)); tft.drawLine(i2 + 180, j2 + 240, i + 180, j + 240, White); j = 14 * (sin(PI * (b-300) / 2000)); i = 14 * (cos(PI * (b-300) / 2000)); j2 = 1 * (sin(PI * (b-300) / 2000)); i2 = 1 * (cos(PI * (b-300) / 2000)); tft.drawLine(i2 + 180, j2 + 240, i + 180, j + 240, 0x0000); tft.fillRect(168, 285, 30, 30, 0x0000); tft.setTextSize(2); tft.setTextColor(0xffff); tft.setCursor(168, 285); tft.print(b / 40); tft.print("%"); b++;} if (c < s) { j = 14 * (sin(PI * c / 2000)); i = 14 * (cos(PI * c / 2000)); j2 = 1 * (sin(PI * c / 2000)); i2 = 1 * (cos(PI * c / 2000)); tft.drawLine(i2 + 297, j2 + 240, i + 297, j + 240, White); j = 14 * (sin(PI * (c-300) / 2000)); i = 14 * (cos(PI * (c-300) / 2000)); j2 = 1 * (sin(PI * (c-300) / 2000)); i2 = 1 * (cos(PI * (c-300) / 2000)); tft.drawLine(i2 + 297, j2 + 240, i + 297, j + 240, 0x0000); tft.fillRect(286, 285, 30, 30, 0x0000); tft.setTextSize(2); tft.setTextColor(0xffff); tft.setCursor(286, 285); tft.print(c / 40); tft.print("%"); c++;} if (d < s) { j = 14 * (sin(PI * d / 2000)); i = 14 * (cos(PI * d / 2000)); j2 = 1 * (sin(PI * d / 2000)); i2 = 1 * (cos(PI * d / 2000)); tft.drawLine(i2 + 414, j2 + 240, i + 414, j + 240, White); j = 14 * (sin(PI * (d-300) / 2000)); i = 14 * (cos(PI * (d-300) / 2000)); j2 = 1 * (sin(PI * (d-300) / 2000)); i2 = 1 * (cos(PI * (d-300) / 2000)); tft.drawLine(i2 + 414, j2 + 240, i + 414, j + 240, 0x0000); tft.fillRect(402, 285, 30, 30, 0x0000); tft.setTextSize(2); tft.setTextColor(0xffff); tft.setCursor(402, 285); tft.print(d / 40); tft.print("%"); d++;} if (a >s) (j = 14 * (sin(PI * a / 2000)); i = 14 * (cos(PI * a / 2000)); j2 = 1 * (sin(PI * a / 2000)); i2 = 1 * (çünkü (PI * a / 2000));i = 14 * (çünkü (PI * (a + 300) / 2000)); PI * (a+300) / 2000)); tft.setTextSize(2); tft.setTextColor(0xffff); s) (j = 14 * (sin(PI * b / 2000)); i = 14 * (cos (PI * b / 2000)); j2 = 1 * (sin (PI * b / 2000)); i2 = 1 * (çünkü (PI * b / 2000)); ben = 14 * (çünkü (PI * (b + 300) / 2000)); PI * (b + 300) / 2000)); tft.setTextSize(2); tft.setTextColor(0xffff); tft.setCursor(168, 285); tft.print(b/40); tft.print("%"); b--;) if (c > s) (j = 14 * (sin(PI * c / 2000)); i = 14 * (cos(PI * c / 2000)); j2 = 1 * (sin(PI) * c / 2000));i2 = 1 * (cos (PI * c / 2000)); sin(PI*(c+300)/2000)); i=14* (cos(PI*(c+300)/2000)); ), i2 = 1 * (cos (PI * (c + 300) / 2000)); 285, 30, 30, 0x0000); tft.setTextSize(2); c--;) if (d > s) (j = 14 * (sin(PI * d / 2000)); i = 14 * (cos(PI * d / 2000)); j2 = 1 * (sin(PI) * d / 2000));i2 = 1 * (cos (PI * d / 2000)); sin(PI*(d+300)/2000)); i = 14* );i2 = 1 * (cos (PI * (d +300) / 2000)); 285, 30, 30, 0x0000); tft.setTextSize(2); tft.setTextColor(0xffff); tft.setCursor(402, 285); tft.print(d/40); tft.print("%"); D--;) ) )

Hız göstergesi

#include "Adafruit_GFX.h" // Çekirdek grafik kitaplığı #include "MCUFRIEND_kbv.h" MCUFRIEND_kbv tft; #define BLACK 0x0000 #include "Gauge.h" #include "Fonts/FreeSans9pt7b.h" #include "Fonts/FreeSans12pt7b.h" #include "Fonts/FreeSerif12pt7b.h" #include "FreeDefault0 int b = 4000; int j, j2; int i, i2; void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg) ( int16_t x1; uint16_t wid, ht; tft.setFont(f); tft.setCursor (x, y); tft .setTextSize(sz); tft.println(msg); void setup() ( Serial.begin(9600); uint16_t ID = tft.readID(); tft.begin(ID); tft . invertDisplay(true); .setRotation(1); void loop(void) ( tft.invertDisplay(true); tft.fillScreen(BLACK); tft.drawRGBBitmap(0, 0, test, 480, 320);< b) { while (a < b) { Serial.println(a); j = 80 * (sin(PI * a / 2000)); i = 80 * (cos(PI * a / 2000)); j2 = 50 * (sin(PI * a / 2000)); i2 = 50 * (cos(PI * a / 2000)); tft.drawLine(i2 + 235, j2 + 169, i + 235, j + 169, tft.color565(0, 255, 255)); tft.fillRect(200, 153, 75, 33, 0x0000); tft.setTextSize(3); tft.setTextColor(0xffff); if ((a/20)>99) tft.setCursor(208, 160); else tft.setCursor(217, 160); tft.print(a/20); a++; ) b = 1000; ) ////////////////////////////////////////////// // /////////////////// while (b< a) { j = 80 * (sin(PI * a / 2000)); i = 80 * (cos(PI * a / 2000)); j2 = 50 * (sin(PI * a / 2000)); i2 = 50 * (cos(PI * a / 2000)); tft.drawLine(i2 + 235, j2 + 169, i + 235, j + 169, tft.color565(0, 0, 0)); tft.fillRect(200, 153, 75, 33, 0x0000); tft.setTextSize(3); tft.setTextColor(0xffff); if ((a/20)>99) tft.setCursor(208, 160); else tft.setCursor(217, 160); tft.print(a/20); A--; ) iken (1); )

Neşeli küçük adam

Bu şablonda, taramalı görüntü fonksiyonunun yardımıyla basit görüntüler bile görüntülenebilir. Bu sayede animasyonunuzu bu hile ile geliştirebilirsiniz. File.h dosyasını seçin ve Arduino klasörüne ekleyin.

#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" MCUFRIEND_kbv tft; #include "image.h" #include "Fonts/FreeSans9pt7b.h" #include "Fonts/FreeSans12pt7b.h" #include "Fonts/FreeSerif12pt7b.h" #include "FreeDefaultFonts.h" #define MAVİ 0x0 define KIRMIZI 0xF800 #define YEŞİL 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define SARI 0xFFE0 #define BEYAZ 0xFFFF #define GRİ 0x8410 #define OX z, const GFXfont *f, const char *msg) ( int16_t x1, y1; uint16_t wid, ht; (f); tft.setCursor(x, y); tft.setTextSize(sz); tft.print(msg) ; void setup() ( Serial.begin(9600); uint16_t ID = tft.readID(); tft. setRotation(1); tft.fillScreen(tft.color565(0,20,0)); 128, WHITE);delay(60); 258, 128, BEYAZ); gecikme(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır3, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır4, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır5, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır6, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır7, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır8, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır9, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line10, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Satır11, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line12, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line13, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line14, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line15, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line16, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line17, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128,tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line18, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line19, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line20, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line21, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line22, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line23, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line24, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line25, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128,tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line26, 258, 128, BEYAZ);delay(40); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); tft.drawBitmap(20, 180, Line27, 258, 128, BEYAZ);delay(60); tft.fillRect(20, 180, 258, 128, tft.color565(0,20,0)); )

Resim

Hangi şablonda ek bir işlev için görselin eylemlerini basitçe gösteriyoruz RGBbit haritasıі bit eşlem. Sadece dokunmatik ekranın kodunu oluşturun ve şablonu vikorize edin. File.h dosyasını seçin ve Arduino klasörüne ekleyin.

#include "Adafruit_GFX.h" // Çekirdek grafik kitaplığı #include "MCUFRIEND_kbv.h" // Donanıma özgü kitaplık MCUFRIEND_kbv tft; #define SİYAH 0x0000 #define KIRMIZI 0xF800 #define YEŞİL 0x07E0 #define BEYAZ 0xFFFF #define GRİ 0x8410 #include "images.h" #include "Fonts/FreeSans9pt7b.h" #2 nts/ FreeSerif12pt7b.h" #include "FreeDefaultFonts .h " int a = 3000; int b = 4000; int j, j2; int i, i2; void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg) ( int16_t x1, y1; uint16_t wid, ht; // tft.drawFastHLine(0, y, tft.width());tft.setFont(f); .readIDD(BLACK); .drawRGBBitmap(0, 0, test, 480, 320); // wifi tft.drawBitmap (125, 25, Satır3, 45, 45, 0xffff); //instagram tft.drawBitmap(245, 25, Satır6, 45, 45); , 0xffff);//power tft.drawBitmap(20, 260, Line5, 45, 45, 0xffff);//twitter tft.drawBitmap(4 , Line7, 45, 0xffff);//rain tft.setTextSize(6); tft.setTextColor(0xffff); tft.setTextColor(0xffff); 280, 1, FreeSans12pt7b, "Cumartesi"); showmsgXY(300, 305, 1, &FreeSans12pt7b, "6 Haziran 2018"); while(1); )

Kese

Arşivleri dosyalarla yakalayın .H daha düşük:

  • Tüm GIF dosyalarının oluşturulma hızı değiştirildi ve hızlı anlaşılması için daha fazla veya daha fazla derlendi. Sıvının akışkanlığı, işlemcinizin akışkanlığına ve kodun türüne, ayrıca koddaki öğelerin boyutuna ve sayısına bağlıdır.
  • Resim kodunu ana sayfaya ekleyebilirsiniz, aksi takdirde tüm sayfayı dolduracaktır. Bu şekilde bir dosya oluşturabilirsiniz. Ah Ve klasöre bir çizim ekleyin.
  • Bu yazıda öğelerin RK ekranındaki görünümünü dikkatlice analiz ettik. Dokunmatik ekranların ve SD kartların nasıl kullanılacağını öğrenmek için gelecek dersleri takip edin.
  • Dahil edilen kitaplıklarla ilgili sorun yaşıyorsanız "" ayak işaretini şu şekilde değiştirin:<>.

Şimdilik bu kadar. Arduino için bu TFT LCD'yi arkadaşlarınız ve iş arkadaşlarınızla paylaşın.

Mevcut cihazlar farklı konfigürasyonlara sahip ekranlarla donatılmıştır. Şu anda ana olanlar tabandaki ekranlardır, ancak bunlar için çeşitli teknolojiler kullanılabilir, özellikle tek bir giriş girişine dayanmalarına rağmen bir dizi düşük parametreden farklı olan TFT ve IPS.

Kısaltmaların altında yer alan teknolojileri belirten herhangi bir terim yoktur. Örneğin, birçok kişi IPS ve TFT hakkında biraz bilgi sahibi olmasına rağmen çok az kişi aralarındaki gerçek farkın ne olduğunu anlıyor. Bunun nedeni elektronik kataloglarındaki bilgi eksikliğidir. Bu kavramları anlamak ve ayrıca TFT ile IPS arasında karar vermek önemlidir; hangisi daha iyi?

Terminoloji

Cilt dokusunda neyin daha kısa veya daha kalın olacağını belirlemek için her vikorist hazırlanırken IPS cildinin TFT gerçeğine, daha doğrusu farklı türlerine göre hangi işlevlere sahip olduğunu bulmak gerekir. güncellendi - TN-TFT. Aşağıda raporlara ve teknolojilere bir bakış bulunmaktadır.

Vіdminnosti

TFT (TN), elemanların bir çift plaka arasında spiral şeklinde düzenlendiği ince fiber transistörler üzerinde bir ekran matrisi oluşturma yöntemlerinden biridir. Voltaj sağlanır sağlanmaz, kornalar yatay düzlemin düz bir çizgisi altında birer birer döndürülecektir. Maksimum voltaj kristallerin dönmesine neden olur, böylece içinden geçen ışık siyah piksellerin ortaya çıkmasına neden olur ve voltaj yoksa beyaz pikseller görünür.

IPS veya TFT'ye bakarsanız, birincisi ile diğeri arasındaki fark, matrisin daha önce anlatılanlara göre hazırlanmasıdır, çünkü içindeki kristaller spiral olarak değil, aynı ekran yüzeyine paralel olarak düzenlenmiştir. . TFT modunda kristaller stres nedeniyle asla dönmez.

Yak mi tse bachimo?

IPS'ye veya görsel olarak bakarsanız, aralarındaki farkın kontrastta yattığını ve bu da siyah rengin mükemmel bir şekilde işlenmesini sağlar. İlk ekranda görüntüler daha net olacaktır. Ve farklı bir TN-TFT matrisindeki renk aktarım eksenine harmonik denemez. Bu cilt tipi diğerlerinden farklı olarak nemli bir renk tonuna sahiptir. Bu renk çok fazla kafa karışıklığına neden olur. Ancak bu matrisin bir avantajı var: şu anda diğer tüm malzemeler arasında en yüksek akışkanlığa sahip olmasıyla karakterize ediliyor. Bir IPS ekranı için, tüm paralel kristallerin yeni bir dönüş yapmak üzere çekildiği uzun bir zaman alır. Bununla birlikte, insan gözü pratik olarak içme saatleri arasındaki farkı fark etmez.

Önemli ayrıntılar

Kullanımı daha kolay olanlardan bahsediyoruz: IPS veya TFT, bu da ilkinin daha enerji yoğun olduğu anlamına gelir. Bu, kristalleri döndürmenin enerji gerektirdiği anlamına gelir. Ayrıca verici, cihazını enerji verimli hale getirme göreviyle karşı karşıya olduğundan, bir TN-TFT matrisinin kullanılması gerekmektedir.

İster TFT ister IPS ekran seçin, bu, diğerinin daha geniş bir görünümü ve her iki boyutta da 178 derece anlamına gelir; bu, kamera kullanıcısı için bile kullanışlıdır. Diğerlerinin bunu sağlamak için müsait olmadığı ortaya çıktı. Bu iki teknoloji arasındaki farkın bir diğer avantajı da virüslerin bunlara dayanabilme yeteneğidir. TFT matrisleri şu anda çoğu bütçe modelinde bulunan en ucuz çözümlerdir ve IPS daha yüksek bir seviyeye getirilmiştir, ancak en üst düzey değildir.

IPS Chi TFT ekranı titriyor mu?

Birinci sınıf teknoloji, mümkün olan en net, en keskin görüntüleri elde etmenizi sağlar, ancak kristallerin kürlenmesi bir saatten fazla sürer. Bu, bir saat boyunca güç ve diğer parametrelerin eklenmesini sağlarken, deşarj edilen pilin akışkanlığını da artırır. TN matrisinin rengi çok düşüktür ve bu süre zarfında minimum düzeydedir. Buradaki kristaller spiral şeklinde düzenlenmiştir.

Aslında iki teknolojiye dayalı olarak çalışan ekranların sürekli kesintiye uğramasını kolaylıkla tespit etmek mümkün. Bu konuda çok fazla yaygara var. TN teknolojisi fiyat da dahil olmak üzere piyasada kaybolmuş durumda ve net bir tablo sunmaktan korunamıyor.

IPS, TFT ekranların daha da geliştirilmiş halidir. Yüksek düzeyde kontrast ve harika bir görsel etki, bu teknolojinin ek avantajlarıdır. Örneğin TN tabanlı monitörlerde siyah rengin kendisi tonunu değiştirir. Ancak IPS temelinde çalışan cihazların enerji tüketiminin yüksek olması, birçok üreticiyi alternatif teknolojilere başvurmaktan veya performanslarını düşürmekten caydırıyor. Çoğu zaman, bu tür matrisler, pille çalışan kablolu monitörlerde kullanılır ve bu, masaüstünün uçucu olmasını önler. Ancak bu galustaki gelişmeler sürekli olarak devam ediyor.

TFT ve IPS matrisleri: özellikler, avantajlar ve dezavantajlar

Günümüz dünyasında telefonların, tabletlerin, PC monitörlerinin ve TV'lerin ekranlarıyla düzenli olarak karşılaşıyoruz. Nadir kristal matrislerin üretimine yönelik teknolojiler, birçok insanın gıda sorunu yaşaması nedeniyle TFT'yi mi yoksa IPS'yi mi seçmek daha iyidir?

Güç tedarik zincirinin tam bir resmini elde etmek için her iki matrisin boyutlarını dikkatlice düşünmek, özelliklerini, avantajlarını ve dezavantajlarını görmek gerekir. Tüm incelikleri bilerek, ekranı ihtiyaçlarınıza tamamen uygun bir cihazı kolaylıkla seçebilirsiniz. Makalemiz size nasıl yardımcı olabilir?

TFT matrisleri

İnce Film Transistör (TFT), ince fiber transistörlerin aktif matrisine dayanan, nadir kristal ekranlar oluşturmaya yönelik bir sistemdir. Böyle bir matrise voltaj uygulandığında kristaller bire bir döner ve bu da siyah bir rengin oluşmasına neden olur. Elektriği bağlamak aynı sonucu verir; kristaller beyaz bir renk üretir. Sağlanan voltajın değiştirilmesi, seçilen pikselin dış görünümünde herhangi bir renk oluşturmanıza olanak tanır.

TFT ekranların temel avantajı, mevcut analoglarla aynı seviyede olan oldukça düşük üretim fiyatıdır. Ek olarak, bu tür matrisler olağanüstü parlaklık ve ara sıra canlılık açığa çıkarır. Nedense dinamik sahneleri izlemek için zaman sıkıntısı yaşanmıyor. TFT teknolojisi kullanılarak yapılan ekranlar çoğunlukla bütçe TV'lerde ve monitörlerde kullanılır.

Birkaç TFT ekranı:

    • düşük renk aktarımı. Teknolojinin kanal başına 6 biti vardır;
    • Kristallerin spiral dizilimi görüntü kontrastını olumsuz etkiler;
    • Etrafınıza baktığınızda görüntü parlaklığı gözle görülür biçimde azalır;
    • yüksek oranda “kırık” piksel oluşumu;
    • düşük enerji tüketimi.

En dikkat çekici olanı, çalışırken TFT matrisinin kısa bölümlerinin siyah renkte gösterilmesidir. Griye kadar gidebilirsiniz, aksi takdirde kontrast olması gerekir.

IPS matrisleri

IPS matrisi, TFT teknolojisine dayanan son derece gelişmiş bir ekrandır. Bu matrisler arasındaki temel fark, TFT kristallerinin nadiren spiral şeklinde düzenlenmesi, IPS'de ise kristallerin aynı düzlemde, birbirine paralel olmasıdır. Ayrıca elektrik olmadığı için koku da geri dönmüyor, bu da siyah renk şemasına olumlu yansıyor.

IPS matrisinin avantajları:

  • Etrafıma bakacağım ama görüntünün parlaklığı azalmıyor, 178 dereceye çıkıyor;
  • renk transferi boyanmıştır. Skin kanalı üzerinden iletilen veri miktarı 8 bit'e çıkarıldı;
  • Kontrast iyileştirildi;
  • azaltılmış enerji tüketimi;
  • “kırık” veya yanmış piksellerin ortaya çıkma olasılığı düşüktür.

IPS matrisindeki görüntüler daha canlı ve canlı görünüyor ancak bu, bu teknolojinin biraz azaldığı anlamına gelmiyor. Ön panelli IPS durumunda görüntünün parlaklığı önemli ölçüde azalır. Ayrıca kontrol edilen elektrotlar değiştirildikten sonra böyle bir etki oluştuğundan matrisi canlandırma zamanı gelmiştir. Son fakat bir o kadar da önemli dezavantaj, IPS ekran kullanan cihazların nispeten yüksek fiyatıdır. Kural olarak, TFT matrisli benzerlerinden% 10-20 daha pahalıdırlar.

Titreşim nedir: TFT chi IPS?

Görüntülerin doğası gereği önemi ne olursa olsun, TFT ve IPS matrislerinin çok benzer teknolojilere sahip olduğu açıktır. Kokular, nadir kristallerin aktif matrisleri ve vikoristik yapıları temelinde yaratılır. Mevcut üreticilerin çoğu, avantajlarını IPS matrislerine veriyor. Harika haber şu ki, kokular plazma matrisleriyle daha büyük bir rekabete yol açabilir ve gelecekte birçok potansiyele sahip olabilir. Prote TFT matrisleri de gelişiyor. Hem TFT-TN hem de TFT-HD ekranlar pazara sunulabilir. Pratik olarak görüntüleri IPS matrislerine feda etmezler, ancak bu daha yüksek görüntü kalitesine olanak tanır. Ancak bu tür monitörlere sahip çok fazla cihaz yok.

Görüntü kalitesi sizin için önemliyse ve biraz fazla ödemeye hazırsanız, IPS ekranlı bir cihaz en iyi seçimdir.

Kısaltmalar, özellikleri ve ayrıntıları tanımlamak için kullanılmalıdır. IPS ve TFT ekranlar hasar gördüğünde sonuç, IPS teknolojisinin (matris) farklı türde bir TFT matris ve panel olmasıdır. İki teknolojiyi birbiriyle karşılaştırmak mümkün değil.

ALE! TN-TFT teknolojisi – IPS ile arasındaki eksen seçilebilir ve ayarlanabilir. Bu nedenle hangi ekranın daha iyi olduğundan bahsediyorsak: IPS veya TFT, her durumda TFT ekranları hesaba katarız ancak farklı teknolojilere dayanarak üretilir: TN ve IPS.

Kısaca TN-TFT ve IPS hakkında

TN-TFT, nadir bulunan bir kristal ekran matrisine dayanan bir teknolojidir. Burada kristaller, eğer komitelerine voltaj sağlanmazsa 90 derecede tek başına dururlar. Kokular bir spiral boyunca hareket eder ve onlara voltaj uygulandığında kokular istenilen rengi oluşturacak şekilde döner.

IPS - bu teknoloji, kristallerin aynı ekran alanında (ilk durumda spiral olarak) birbirine paralel düzenlenmesi açısından dikkat çekicidir. Her şey karmaşık... Pratikte TN ve IPS matrisine dayalı ekranlar arasındaki fark, IPS'nin ideal olarak siyah rengi göstermesi ve bunun sonucunda resmin daha net ve daha canlı görünmesi gerçeğinde yatmaktadır.

TN-TFT olmasa da bu matrisin renk aktarma özelliği pek güven vermiyor. Burada cilt pikseli kendi tüylü tonunu taşıyabilir, dolayısıyla renkler karışır. IPS matrisleri resmi çok daha güzel gösterir ve kullanımı da daha kolaydır. IPS ayrıca büyük etki altında ekranda görüntülenenleri izlemenize de olanak tanır. TN-TFT ekrana aynı çerçeve altında baktığınızda renkler panellerin üzerinde olacağından resmin görüntülenmesi zorlaşacaktır.

Avantajları TN

Ancak TN-TFT matrislerinin avantajları vardır. Bunun temel nedeni piksellerin akışkanlığının düşük olmasıdır. IPS, tüm paralel kristal dizisinin gerekli açıda döndürülmesi için bir saatten fazla zaman gerektirir. Bu nedenle, oyun oynamak veya dinamik sahneleri görüntülemek için bir monitör seçerken, gölgelemenin netliği önemliyse, TN-TFT teknolojisine dayalı ekranın kendisini seçmek en iyisidir.

Öte yandan, bir PC'den yapılan ilk çalışmada piksel saatlerindeki farkı fark etmek imkansızdır. Bunu ancak bir saat boyunca aksiyon filmlerinde ve video oyunlarında sıklıkla görülen dinamik sahneleri izledikten sonra görebilirsiniz.

Diğer bir artı ise düşük enerji tüketimidir. IPS matrisleri enerji açısından verimlidir çünkü Bir dizi kristali döndürmek için çok fazla voltaj gerekir. Ayrıca TFT tabanlı ekranlar, yüksek güç tüketimi gerektiren ve pil enerjisinden tasarruf sağlayan mobil cihazlar için en uygun olanıdır.

Ayrıca TN-TFT matrisleri daha ucuzdur. Günümüzde TN teknolojisine dayalı bir modelden daha ucuz olan herhangi bir monitör (ister ucuza kullanılmış olsun, ister EPT modeli olsun) bulamazsınız. Ekranlı herhangi bir bütçe elektronik cihazı bir TN-TFT matrisi gerektirir.

Peki hangi ekran daha güzel:TFT veyaIP'ler:

  1. Daha fazla saat oynatma için IPS daha az anlamlıdır (oyun ve aksiyon sahneleri için kötü);
  2. IPS neredeyse mükemmel renk üretimi ve kontrastı garanti eder;
  3. IPS bakılması gereken en önemli şeydir;
  4. IPS elektrikten daha fazla enerji tüketir;
  5. Ayrıca daha pahalıdırlar, TN-TFT ise daha ucuzdur.

Eksen, prensipte, bu matrisler arasındaki farkın tamamıdır. Tüm avantajları ve dezavantajları hesaba katarsanız, elbette belirli bir sonuca varmak kolaydır: IPS ekranları çok daha güzel.


Nazik olun, makaleyi derecelendirin:

Monitörün (ekran) parlaklığı kişisel bilgisayar kullanıcılarının gözlerini kurtarmak açısından oldukça önemlidir. Uzun yıllar boyunca monitörün arkasında yoğun bir şekilde çalışmak, görme duyunuz üzerinde daha da güçlü taleplere neden olur. Görüntünün netliği büyük ölçüde ekrandaki fosfor noktalarının boyutuna bağlıdır. Noktalar arasındaki orta mesafeye tane denir. Diğer monitörler için bu parametre 0,21 ile 0,31 arasında değişir. Önemli parametreler, çerçevenin (dikey) ateşleme sıklığı, küçük (yatay) ateşleme ve video sinyalinin iletim miktarıdır. Kare hızı ne kadar yüksek olursa görüntü o kadar sabit olur ve görüntülenmesi o kadar az zaman alır (net monitörler için kare hızı 70-80 Hz'dir). Kilohertz cinsinden satırların sıklığı, bir karede görüntülenen satır sayısının kare hızıyla çarpılmasıyla belirlenir. Video sinyali (değiştirilmiş MHz) için iletim frekanslarının aralığı, bir sıradaki nokta sayısı ve küçük bir örneğin frekansının eklenmesiyle belirlenir. Aşağıda TFT LCD ekranların temel özellikleri verilmiştir:

1. Havalandırma deliği.

Diyafram güncellemesi (üst delik) є düz görüntü veya etkili açıklık alanı, yeraltı matrisine Uzaktan kumanda ekranı. Fiyat ne kadar yüksek olursa ekran o kadar parlak olur renklerin kapladığı alan artacaktır. O da artacak zıtlık . Ön açıklık, parlaklığını değerlendirmek için kullanılan ekranın PK'sinin önemli bir göstergesidir.

2. Etrafa bir göz atayım.

PK monitörünün görüntüsünün kontrastı, bakım yapılan yere bağlı olarak değişir. Kut zoru bu değişimi karakterize ediyor. Vites yukarı/aşağı ve sağ/sol elle vites değiştirirken kontrast değişikliği şeklinde ifadeler olabilir. Nadir bir kristalin kapasitesi, düşen ışığın sınırının altındaki büyük bir dünyada yatıyor. . Böylece kontrasttaki değişiklikler giriş ve çıkıştaki iletim katsayısı tarafından belirlenir.

Kesimin anlamını belirttiğinizden emin olun, örneğin 170/170°. Etrafıma hızlıca bir göz atacağımє Kontrast oranının kaydedilmesi 10:1'den düşük değil. Bu durumda, renkleri bu konumda aktarmak kesinlikle gereklidir, böylece renkler ters çevrilecektir (renkler matrisin merkezinde görüntülenir ve renkler üzerinde doğal olarak rengin altında görünürler).

3. Girişim.

Girişim şu durumda görünüyor: olumsuz Piksellerin birbirine bağlanması , eğer aktivasyonlar gergin bir şekilde piksel geminin pasifine akar . Bu, basit paneller için karakteristik olarak önemlidir. STN yazın ancak aktif matrisli panellerde hafif bir girişim akışı vardır.
4. Yaskravist.

PK ekranlarının parlaklığını ayarlamak için aşağıdaki değerler kullanılır: NIT, Ayak Lambert şamdan metrekare başına – cd/m (cd/m).

Ekran parlaklığı görünür dürüst oluyorum arka aydınlatmaі giriş kontrolu paneller.

Nadir kristalin verimi Düşük O görüntünün parlaklığını artırmak için zafer açıklık kapıları büyük hava kapısından , polarizasyon panelleri ve renk filtreleri yüksek verim veya prizma ile.

5. Çoklu mod işlemi sırasında görüntünün ölçeklendirilmesi.

TFT monitörler için ayrı XGA (1024x768) ve SXGA (1280x1024) formatları önerilir; ayrıca bu monitörler SVGA ve VGA tam ekran genişletme modlarını destekleyecektir. Ancak SVGA ve daha küçük modlar gibi ayrı görüntülerde görüntüdeki karakterler kaba ve dengesiz görünebilir. Bunun nedeni, temel piksel sayısının 14" ve 15" TFT paneller Mod için Bulo vibrano XGA. Bu nedenle görüntünün oluşturulması için SVGA veya VGA modlarında suçlu tersine dönecektir.

Asıl sorun, bu pazar durumunda şirketin rekabet edebilirliği alanında yatmaktadır. Şirketler ödeme yapmıyor özel ziyaretler Net bir görüntü elde etmeden önce bagator modlu robotla monitör. Teslim edildi ve uygulandı gelişmiş görüntü ölçeklendirme işlevi (Görüntü Geliştirme İşlevi), yaka, vikorystyuchi yöntem doğrusal olmayan enterpolasyon Resmi geliştirmek için, eseri temel sürümden ayrı, ayrı bir sürümde net bir şekilde görüntülemenize olanak tanır.

6. Şarkı söyleme zamanı.

Bu gösterge, nadir kristal panelin renk değiştirdiği minimum saati gösterir. Matris akışkanlığını ayarlamanın iki yolu vardır: siyahtan siyaha (siyah-beyaz-siyah),і griden griye(gri tonlamaları arasında), Üstelik bu değerlendirme yöntemlerinin önemi büyük ölçüde farklılık gösterir. Aşırı konumlar (siyah ve beyaz) arasındaki konumu değiştirirken, kristale maksimum voltaj verilir ve pim maksimum hızda döner (bu özellik mevcut monitörlerin özelliklerinde belirtilmelidir). : 8, 6, inode ve 4 ms. Yer değiştirmiş kristallerle gri tonlamaları arasında reklama sunuldu önemli ölçüde daha az Gerilim, çünkü gerekli ipliği çıkarmak için hassas bir şekilde konumlandırılmaları gerekir ve bunun için çok daha fazlası harcanır (14 ms'den 28 ms'ye kadar). Son zamanlarda bu sorunu çözmenin hoş bir yolunu bulmayı başardık. Anahtara maksimum voltaj verilir (veya sıfıra düşürülür) ve gerekli anda kristalin konumu hemen gerekli konuma ayarlanır. Bu yöntemin tüm avantajlarının yanı sıra hassas gerilim kontrolünün karmaşıklığı da önemli ölçüde artmaktadır. kornanın frekansını aşan bir frekansa sahip. Ek olarak, çekirdek dürtünün kristallerin kaburga konumunun hizalanmasıyla hizalanması gerekir (Samsung zaten modeller sunmuştur). Dijital Kapasite Dengeleme teknolojisi ile, bu aslında bir PVA matrisi için 8-6 ms'de performans sağlayacaktır).

7. Görüntü kontrastı.

Kontrast değeri, “siyah” ve “beyaz” aşamalardaki matrisin parlaklığına göre belirlenir (siyah renk daha az pozlanır ve beyaz ne kadar parlaksa kontrast da o kadar yüksek olur). Bu ekran, video görüntüsünün net bir şekilde görülebilmesi ve görüntü ne olursa olsun iyi görüntü(örneğin, S-IPS ortalama değer - 400:1 , ve için PVA – 1000:1'e kadar). Monitörün özelliklerinde belirtilenler şunlardır: için ölçüldü matrisler, monitör için değil ve özel bir stand üzerinde, matrise çok standart bir voltaj sağlanırsa, aydınlatma kesinlikle standart bir voltajla vb. sağlanır.

8. Renklerin aktarımı.

Bu doğruluk gösterisini unutmayın. Belshist'in matrisi, teknolojinin çöküşünün ardındaki bakireler, Koloro'ya 24-Bitnu iletimine (vicicacituces є Adetori Montory PVA VID Samsung- Niyako sistemleri kurulumunda 18 yataklı PVA samsung vurgulanmayacaktır).

Windows 7