Mündəricat:

Arduino TFT Rəsm Proqramı: 4 addım
Arduino TFT Rəsm Proqramı: 4 addım

Video: Arduino TFT Rəsm Proqramı: 4 addım

Video: Arduino TFT Rəsm Proqramı: 4 addım
Video: Arduino TFT RGB Renkli Ekran - 128x128 - 1,8" inc SD Kart Modüllü Ekran - Arduino Dersleri - 68 - 2024, Iyul
Anonim
Arduino TFT Rəsm Proqramı
Arduino TFT Rəsm Proqramı
Arduino TFT Rəsm Proqramı
Arduino TFT Rəsm Proqramı
Arduino TFT Rəsm Proqramı
Arduino TFT Rəsm Proqramı

Bu təlimat, bir Arduino TFT ekranı üçün bir rəsm proqramı hazırlamağa gedən kodu ətraflı izah edir. Bu proqram, bənzərsizdir, çünki bir şəklin SD karta qənaət edilməsinə və daha sonra düzəlişlər etmək üçün daha sonra yüklənməsinə imkan verir!

Təchizat

  1. Arduino Uno - orijinal və ya uyğun bir klon
  2. TFT toxunma ekranı - Elegoo ekranlarından istifadə etdim, yəni Elegoo sürücülərinə ehtiyacım var idi.
  3. Micro SD oxucu lövhəsi - rəsm məlumatlarını SD karta saxlamaq üçün istifadə olunur. Ekranın altında ekranın altında quraşdırılmış oxucu vardı.
  4. Stylus - ekranım bir ilə gəldi. Tırnaqlar da yaxşı işləyir.
  5. Micro SD kart - exFAT format məhdudiyyətləri səbəbindən 32 GB -dan çox deyil (Arduino FAT32 formatlı kartları oxuya bilər, lakin exFAT DEYİL. Ən böyük kartlar exFAT ilə formatlanır.) Genişlənə bilən yaddaşa malik bir telefona qoyacağınız növ budur.
  6. Arduino IDE ilə kompüter
  7. Proqramlaşdırma kabeli - USB A -dan USB B. -ə mənim Arduino biri ilə gəldi.
  8. SD kart adapteri - Micro SD kartını SD yuvasına və ya SD kartı USB yuvasına bağlayan bir SD karta çevirmək üçün istifadə olunur.

Addım 1: SD kartı formatlaşdırın

SD kartı formatlaşdırın
SD kartı formatlaşdırın
SD kartı formatlaşdırın
SD kartı formatlaşdırın
  1. Micro SD kartı götürün və SD kart oxuyucunuzdan istifadə edərək kompüterinizə bağlayın
  2. Fayl Gəzgini açın və SD kartı tapın.
  3. Bunun üzərinə sağ vurun və Format seçin.
  4. Ekran görüntüsünə əsasən seçimləri təyin edin.
  5. Başlat düyməsini basın.
  6. Proses başa çatdıqda kartı çıxarın.

Windows işləmirsinizsə, SD birliyindən SD Formatter istifadə edin.

Addım 2: Arduino hazırlayın

Arduino hazırlayın
Arduino hazırlayın
Arduino hazırlayın
Arduino hazırlayın
  1. İğnələri sıralamağa diqqət yetirərək ekran qalxanınızı Arduino üzərinə basın.
  2. SD kartı ekranın altındakı oxucuya daxil edin.

Addım 3: Arduino Sketch

Parça siyahısı olduqca sadə olsa da, bir ton kod var. Burada addım-addım keçəcəyəm.

#daxil edin

#daxil edin #əlavə edin #daxil edin

Elegoo_GFX, _TFTLCD və TouchScreen hamısı aparata xasdır. Fərqli bir ekran istifadə edirsinizsə, istehsalçı tərəfindən təmin edilmiş kitabxanalardan istifadə edin.

SD kartı ilə əlaqə qurmaq üçün SPI və SD istifadə olunur. SPI, SD kart nəzarətçisinin istifadə etdiyi protokoldur.

#if müəyyən edildikdə (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif

Bu da aparata xasdır.

#define YP A3 // analog pin olmalıdır #XM A2 təyin edin // analoq pin olmalıdır #define YM 9 #define XP 8

// Yeni ILI9341 TP üçün Toxun

#define TS_MINX 120 #define TS_MAXX 900 #define TS_MINY 70 #define TS_MAXY 920

#CSPIN 10 təyin edin

#LCD_CS A3 təyin edin

#define LCD_CD A2 #LCD_WR A1 təyin edin #LCD_RD A0 təyin edin #LCD_RESET A4

Bu #define ifadələrinin hər biri IDE -nin adını dəyəri ilə əvəz etməsinə səbəb olur. Burada LCD və SD G/Ç pinlərini təyin edirlər.

// Bəzi 16 bitlik rəng dəyərlərinə adlar təyin edin: #QARA 0x0000 təyin edin #BEYAZ 0xFFFF #QIRMIZI 0xF800 təyin edin MAVİ 0x001F #YEŞİL 0x07E0

Bunlar kodda istifadə olunan rənglərdən bir neçəsidir. #onları təyin etmək kodu oxumağı asanlaşdırır.

#PENRADIUS 3 təyin edin

Bu rəsm qələminin ölçüsünü təyin edir.

#MINPRESSURE 10 təyin edin#MAXPRESSURE 1000 təyin edin

// Daha yaxşı təzyiq dəqiqliyi üçün müqaviməti bilməliyik

// X+ və X arasında- Oxumaq üçün hər hansı bir multimetrdən istifadə edin // İstifadə etdiyim üçün X lövhəsi boyunca 300 ohm olan TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);

Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

Bu ifadələr bir toxunuşu qeyd etmək, toxunma funksiyasını başlatmaq və ekranı işə salmaq üçün lazım olan təzyiqi təyin edir.

Fayl saxlama; int storageSize; int stoX = 1; int stoY = 1;

Bunlar proqramın saxlama hissəsi üçün dəyişənlərdir.

void setup (void) {Serial.begin (9600); Serial.println ("Boya proqramı");

tft.reset ();

uint16_t identifikatoru = tft.readID ();

əgər (identifikator == 0x0101) {identifikator = 0x9341; Serial.println (F ("0x9341 LCD sürücüsü tapıldı")); }

// Ekranı işə salın

tft.begin (identifikator); tft.setRotation (2);

pinMode (13, Çıxış);

// SD kartı işə salın

if (! SD.begin (CSPIN)) {Serial.println ("SD başlatma uğursuz oldu"); qayıtmaq; } Serial.println ("SD başlanğıc");

// Arxa plan çəkin

drawBackground (); }

Quraşdırma funksiyası mövcud olduqda Serialı işə salır, ekranı sıfırlayır, TFT sürücüsünü algılar, ekranı işə salır, kartı işə salır və fon çəkmək üçün bir funksiyanı çağırır.

Döngü funksiyasının əsas hissəsinə keçəcəyəm. Qalan hər şey yalnız toxunma ekranını idarə etmək üçün istifadə olunur.

// Ekran düyməsini aşkar edin və (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Ölçək p.x = xəritə (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - xəritə (p.y, TS_MINY, TS_MAXY, tft.height (), 0));

// Çək

if (p.y> 21) {// Məlumatları SD kart yaddaşına saxla = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();

// Toxunma mövqeyində nöqtə

tft.fillCircle (p.x, p.y, PENRADIUS, BEYAZ); }

// Sil düyməsi

if ((p.y 198) && (p.x <219)) {deleteStorage (); }

// Yükləmə düyməsi hərəkəti

if ((s.y 219)) {loadStorage (); }}

Bir mətbuat aşkar edilərsə, mətbuat yeri üçün dəyişənlər təyin edin.

Sonra, şəkil çəkmə sahəsinin içərisindədirsə, nöqtəni storage.txt -də SD karta qeyd edin və basıldığı nöqtədə müəyyən bir ölçü və rənglə bir dairə çəkin.

Sonra, mətbuat silmə düyməsinin yerindədirsə, saxlanılan rəsmləri silən bir funksiyanı işlədin. Fərqli ölçülü bir ekran istifadə edirsinizsə, düymə yeri dəyərləri ilə oynamağa çalışın.

Sonra, mətbuat yükləmə düyməsinin yerindədirsə, saxlanılan rəsmini yükləyən bir funksiyanı işlədin. Fərqli ölçülü bir ekran istifadə edirsinizsə, düymə yeri dəyərləri ilə oynamağa çalışın.

İndi funksiyaları izah edəcəyəm.

İlk funksiya, fon və düymələri çəkmək üçün quraşdırmada çağırılır.

void drawBackground () {// Arxa fonu təyin etmək tft.fillScreen (SİYAH);

// Mətni rəngləyin

tft.setTextColor (BEYAZ); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Boya");

// Yükləmə düyməsi

tft.fillRect (219, 0, 21, 21, GREEN);

// Sil düyməsi

tft.fillRect (198, 0, 21, 21, RED); }

Ekranı qara rənglə doldurur, Paint sözünü yazır və düymələr üçün rəngli kvadratlar çəkir. Fərqli ölçülü bir ekran istifadə edirsinizsə, düymə yeri dəyərləri ilə oynamağa çalışın.

void deleteStorage () {// SD.remove faylını silin ("storage.txt");

// Arxa planı təyin edin

tft.fillScreen (SİYAH);

// Müvəffəqiyyət mətnini silin

tft.setTextColor (BEYAZ); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt silindi");

// İstifadəçiyə oxusun

gecikmə (2000);

// Çəkməyə davam edin

drawBackground (); }

DeleteStorage funksiyası storage.txt faylını silir, ekranı qara rənglə doldurur və silmək üçün uğur mesajı verir. Daha sonra başqa bir şeyin rənglənməsinə başlamaq üçün drawBackground funksiyasını çağırır.

void loadStorage () {// Yavaş barmaqların gecikməsindən təkrarlardan çəkinin (250);

// Saxlama faylını yoxlayın

if (! SD.exists ("storage.txt"))) {Serial.println ("storage.txt faylı yoxdur"); qayıtmaq; }

// Faylı yalnız oxumaq rejimində açın

saxlama = SD.open ("storage.txt", FILE_READ);

// Məlumat olsa da, while (stoY> 0) {// Vəziyyət dəyişənlərini yeniləyin stoX = storage.parseInt (); stoY = storage.parseInt ();

// Saxlama yerindən çəkin

tft.fillCircle (stoX, stoY, PENRADIUS, BEYAZ); } // storage.close () faylını bağlayın; }

Nəhayət, loadStorage funksiyası saxlama faylını yoxlayır, onu yalnız oxumaq rejimində açır və sonra bu döngəni təkrarlayır:

Daha çox məlumat olduğu müddətcə,

  1. Vəzifə dəyişənlərini storage.txt -dən ayrılmış məlumatlarla yeniləyin
  2. Yüklənmiş nöqtədə bir dairə çəkin

Döngü tamamlandıqda və artıq məlumat olmadıqda, saxlama faylını bağlayır.

Bu eskizin kodunu aşağıda tapa bilərsiniz. Sadəcə yükləyin, Arduinoda açın və lövhənizə yükləyin!

Addım 4: Bu proqramı istifadə edin

Bu Proqramdan istifadə
Bu Proqramdan istifadə

Arduino -nu bir enerji mənbəyinə - kompüterə, batareyaya, divar siğilinə və s. Qoşun və çəkməyə başlayın. Rəsminizi və saxlanılan məlumatları silmək üçün qırmızı düyməni basın. Anbardan bir rəsm yükləmək və üzərində işləməyə davam etmək üçün yaşıl düyməni basın. Bu şəkildə bir rəsm üzərində dəfələrlə təkrar edə bilərsiniz!

Bir uzantı olaraq, rəsmini kompüterinizdə qurmağa çalışın:

  1. Məlumatları olan SD kartı kompüterinizə qoşun.
  2. Storage.txt faylını sevdiyiniz mətn/kod redaktorunda açın.
  3. Storage.txt -dəki bütün dəyərləri kopyalayın.
  4. Nöqtə qurma proqramına keçmək üçün bu linki izləyin.
  5. Soldakı iki nümunə nöqtəni silin.
  6. Məlumatlarınızı nümunə nöqtələrinin olduğu yerə yapışdırın.

Bu, rəsmlərinizi nümayiş etdirməyin səliqəli bir yoludur - bəlkə də Arduino üzərindəki və ya nöqtə planlayıcısındakı nöqtə rəngini dəyişdirməyə çalışın!

Dəyişikliklər xoş qarşılanır və şərhlərdə bəzi təkliflər görmək istərdim. Buna baxdığınız üçün təşəkkürlər və ümid edirəm ki, öz layihələrinizdə səliqəli istifadə tapacaqsınız!

Tövsiyə: