Mündəricat:

Arduino TFT LCD Toxunma Ekranı Kalkulyatoru: 3 addım
Arduino TFT LCD Toxunma Ekranı Kalkulyatoru: 3 addım

Video: Arduino TFT LCD Toxunma Ekranı Kalkulyatoru: 3 addım

Video: Arduino TFT LCD Toxunma Ekranı Kalkulyatoru: 3 addım
Video: BTT SKR2 - A4988Stepper and CR10 (Creality) display setup 2024, Noyabr
Anonim
Arduino TFT LCD Toxunma Ekranı Kalkulyatoru
Arduino TFT LCD Toxunma Ekranı Kalkulyatoru

Salam Uşaqlar, bu təlimatlarda Arduino Uno ilə 3.5 TFT LCD Toxunma Ekranı olan bir kalkulyatorun necə qurulacağını öyrənəcəyik. Buna görə bir kod yazacağıq və ekranda kalkulyator interfeysini göstərəcək və toxunma funksiyasını alacaq arduino -ya yükləyəcəyik. əsas riyazi ifadələrin çıxışını verin.

Addım 1: Lazım olan şeylər

Ehtiyacınız olan şeylər
Ehtiyacınız olan şeylər
Ehtiyacınız olan şeylər
Ehtiyacınız olan şeylər

Bu layihə üçün aşağıdakılara ehtiyacınız olacaq: 3,5 TFT LCD DISPLAYARDUINO UNO

Addım 2: Arduino IDE -də TFT Ekran Kitabxanasının quraşdırılması

Arduino IDE -də TFT Ekran Kitabxanasının quraşdırılması
Arduino IDE -də TFT Ekran Kitabxanasının quraşdırılması

SPFD5408 Kitabxanasından istifadə edirik:

Bu arduino kalkulyator kodunun işləməsini təmin etmək üçün. Bu Adafruit -in dəyişdirilmiş bir kitabxanasıdır və LCD TFT Modulu ilə sorunsuz işləyə bilər. Bu kitabxananı Arduino IDE -yə yükləməyiniz və ya səhv etmədən tərtib etmək üçün bu proqramı yükləməyiniz çox vacibdir. Bu kitabxananı qurmaq üçün yuxarıdakı linki tıklayaraq sizi Github səhifəsinə aparacaqsınız. Orada klon vurun və ya yükləyin və "ZIP yüklə" seçin. Bir zip faylı yüklənəcək, indi Arduino IDE -ni açın və Sketch -> Kitabxanaya Daxil et -> ZIP kitabxanası əlavə edin. ZIP faylına gedən bir brauzer pəncərəsi açılacaq və "OK" düyməsini basın. Arduinonun sol alt küncündə "Kitabxanalarınıza əlavə edilmiş kitabxana" qeyd etməlisiniz.

Addım 3: Kalkulyator Kodunu Yükləyin

Kalkulyator Kodunu yükləyin
Kalkulyator Kodunu yükləyin
Kalkulyator Kodunu yükləyin
Kalkulyator Kodunu yükləyin

Kitabxananı qurduqdan sonra ekranı Arduino-ya bağlayın və aşağıdakı kodu kopyalayın və Arduino-ya yükləyin./**_ Kitabxanaları idxal edin _*/#"SPFD5408_Adafruit_GFX.h" daxildir // Əsas qrafik kitabxanası#daxildir "SPFD5408_Adafruit_TFTLCD.h" // Hardware-specific kitabxana#daxildir "SPFD5408_TouchScreen.h"/*_ Kitabxanaların Sonu _*//*_ LCD sancaqlarını təyin edin (standart dəyərləri təyin etdim) _*/#tanımlayın YP A1 // analog pin olmalıdır, "An" işarəsini istifadə edin!# XM A2 təyin edin // analog pin olmalıdır, "An" işarəsini istifadə edin!#YM 7 təyin edin // rəqəmsal pin ola bilər#XP 6 təyin edin / rəqəmsal pin ola bilər#LCD_CS A3 təyin edin#LCD_CD A2 təyin edin#LCD_WR təyin edin A1#müəyyən LCD_RD A0#LCD_RESETini təyin A4/*_ Defanitionların sonu _*//*_ Rənglərə və təzyiqə ad təyin edin _*/#BEYAZ 0x0000 təyin edin // Qara-> Ağ#SARI 0x001F təyin edin // Mavi-> Sarı#CYAN 0xF800 təyin edin // Qırmızı-> Cyan#PINK təyin 0x07E0 // Yaşıl-> Çəhrayı#QIRMIZI 0x07FF təyin edin // Cyan-> Qırmızı#YEŞİL 0xF81F təyin edin // Çəhrayı-> Yaşıl#MAVİ 0xFFE0 // Sarı- > Mavi#müəyyən QARA 0xFFFF // Ağ-> Qara#təyin MINPRESSURE 10#təyin MAXPRESSURE 1000/*_ Təyin edilmiş _*//*_ TFT LCD-ni kalibr edin _*/#TS_MINX 125 təyin edin#TS_MINY 85 təyin edin#TS_MAXX 965#TS_MAXX 965#müəyyən edin _ Kalibrləmə sonu _*/TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 həssaslıqdırAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // LCDString simvolu ilə ünsiyyətə başlayın [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; uzun Num1, Num2, Number; char hərəkəti; boolean nəticə = yalan; void setup () {Serial.begin (9600); // tft.reset () ayıklama üçün serial monitordan istifadə edin; // Həmişə tft.begin (0x9341) başlanğıcında sıfırlayın; // Mənim LCD -də LIL9341 Arayüz sürücüsü IC tft.setRotation (2) istifadə olunur; // Mən sadəcə güc yuvasının yuxarıya baxması üçün gəzdim - isteğe bağlı tft.fillScreen (BEYAZ); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial. çap (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); gecikmə (300);} TSPoint waitTouch () {TSPoint p; etmək {p = ts.getPoint (); pinMode (XM, Çıxış); pinMode (YP, ÇIXIŞ); } isə ((p.z MAXPRESSURE)); p.x = xəritə (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = xəritə (p.y, TS_MINY, TS_MAXY, 0, 240);; qayıt p;} void DetectButtons () {if (X0) // Sütun 1 -də Düymələri Algılama {if (Y> 0 && Y <85) // Ləğv etsəniz Buttona basarsanız {Serial.println ("Button Cancel"); Sayı = Sayı1 = Nüm2 = 0; result = false;} if (Y> 85 && Y <140) // Əgər Button 1 -ə basılırsa {Serial.println ("Button 1"); əgər (Sayı == 0) Sayı = 1; başqa Sayı = (Sayı*10) + 1; // iki dəfə basıldı} if (Y> 140 && Y <192) // If Button 4 is pressed {Serial.println ("Button 4"); əgər (Sayı == 0) Sayı = 4; başqa Sayı = (Sayı*10) + 4; // iki dəfə basıldı} if (Y> 192 && Y <245) // If Button 7 is pressed {Serial.println ("Button 7"); əgər (Sayı == 0) Sayı = 7; başqa Sayı = (Sayı*10) + 7; // İki dəfə basıldı}} if (X50) // Sütun 2 -də Düymələrin Alınması {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // 0 sayı düyməsinə basılır, əgər (Sayı == 0) Sayı = 0; başqa Sayı = (Sayı*10) + 0; // iki dəfə basıldı} if (Y> 85 && Y <140) {Serial.println ("Button 2"); əgər (Sayı == 0) Sayı = 2; başqa Sayı = (Sayı*10) + 2; // iki dəfə basıldı} if (Y> 140 && Y <192) {Serial.println ("Button 5"); əgər (Sayı == 0) Sayı = 5; başqa Sayı = (Sayı*10) + 5; // Basılan twic} if (Y> 192 && Y <245) {Serial.println ("Button 8"); əgər (Sayı == 0) Sayı = 8; başqa Sayı = (Sayı*10) + 8; // Basılan twic}} if (X105) // Sütun 3 -də Düymələrin Alınması {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Sayı; nəticə = doğru; } if (Y> 85 && Y <140) {Serial.println ("Button 3"); əgər (Sayı == 0) Sayı = 3; başqa Sayı = (Sayı*10) + 3; // iki dəfə basıldı} if (Y> 140 && Y <192) {Serial.println ("Button 6"); əgər (Sayı == 0) Sayı = 6; başqa Sayı = (Sayı*10) + 6; // iki dəfə basıldı} if (Y> 192 && Y <245) {Serial.println ("Button 9"); əgər (Sayı == 0) Sayı = 9; başqa Sayı = (Sayı*10) + 9; // İki dəfə basıldı}} if (X165) // Sütun 3 -də Düymələrin Alınması {Num1 = Sayı; Sayı = 0; tft.setCursor (200, 20); tft.setTextColor (QIRMIZI); if (Y> 0 && Y <85) {Serial.println ("Əlavə"); hərəkət = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Çıkarma"); hərəkət = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Çarpma"); hərəkət = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); hərəkət = 4; tft.println ('/');} gecikmə (300); }} etibarsız CalculateResult () {if (action == 1) Number = Num1+Num2; if (hərəkət == 2) Sayı = Num1-Num2; if (action == 3) Number = Num1*Num2; if (action == 4) Number = Num1/Num2; } boş DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // nəticə qutusunu sil tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (SİYAH); tft.println (Sayı); // yeni dəyəri yeniləyin} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (QIRMIZI); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("HESABLAYICI"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (MAVİ); tft.println ("-Circut Digest"); gecikmə (1800);} void draw_BoxNButtons () {// Nəticə qutusunu çəkin tft.fillRect (0, 0, 240, 80, CYAN); // Birinci Sütunu çəkin tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, SİYAH); tft.fillRect (0, 140, 60, 60, SİYAH); tft.fillRect (0, 80, 60, 60, SİYAH); // Üçüncü Sütunu çəkin tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, SİYAH); tft.fillRect (120, 140, 60, 60, SİYAH); tft.fillRect (120, 80, 60, 60, SİYAH); // (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE) üçün Secound & Dördüncü Sütun çəkin; tft.fillRect (60, b, 60, 60, BLACK);} // Üfüqi Xəttlər çəkin (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, BEYAZ); // (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, BEYAZ) üçün Şaquli Xəttlər çəkin; // (int j = 0; j <4; j ++) {üçün (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60*) üçün klaviatura etiketlərini göstərin j)); tft.setTextSize (3); tft.setTextColor (BEYAZ); tft.println (simvol [j] ); }}} Kodu yüklədikdən sonra ekranınızda işləyən kalkulyatoru mənim kimi görürsünüz və indi bununla bağlı əsas riyazi hesablamalar apara bilərsiniz. Arduino UNO ilə öz kalkulyatorunuzu hazırlamaqdan zövq alın.

Tövsiyə: