Kazalo:
- Korak: Stvari, ki jih potrebujete
- 2. korak: Namestitev knjižnice TFT Display v Arduino IDE
- 3. korak: Naložite kodo kalkulatorja
Video: Arduino TFT LCD kalkulator zaslona na dotik: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Pozdravljeni fantje, v teh navodilih se bomo naučili, kako narediti kalkulator z uporabo Arduino Uno s 3,5 -palčnim zaslonom na dotik TFT LCD. Zato bomo napisali kodo in jo naložili v arduino, ki bo prikazal vmesnik kalkulatorja na zaslonu in prevzel funkcionalnost dotika in podaj osnovne matematične izraze.
Korak: Stvari, ki jih potrebujete
Za ta projekt boste potrebovali naslednje: 3,5 -palčni TFT LCD DISPLAYARDUINO UNO
2. korak: Namestitev knjižnice TFT Display v Arduino IDE
Uporabljamo knjižnico SPFD5408:
da ta koda kalkulatorja arduino deluje. To je spremenjena knjižnica Adafruit in lahko brezhibno deluje z našim LCD TFT modulom. Za vas je zelo pomembno, da to knjižnico namestite v svoj Arduino IDE ali ta program za sestavo brez napak. Če želite namestiti to knjižnico, preprosto kliknite zgornjo povezavo, ki vas pripelje na stran Github. Tam kliknite na kloniranje ali prenos in izberite »Prenesi ZIP«. Naložena bo datoteka zip. Zdaj odprite Arduino IDE in izberite Sketch -> Include Librarey -> Add. ZIP library. Odpre se okno brskalnika, pomaknite se do datoteke ZIP in kliknite »V redu«. V spodnjem levem kotu Arduina bi morali opaziti »Knjižnica dodana v vaše knjižnice«.
3. korak: Naložite kodo kalkulatorja
Po namestitvi knjižnice povežite zaslon z Arduinom in kopirajte naslednjo kodo ter jo naložite v Arduino./*_Import Libraries _*/#include "SPFD5408_Adafruit_GFX.h" // Core graphics library#include "SPFD5408_Adafruit_TFTLCD.h" // Hardware specific library#include "SPFD5408_TouchScreen.h"/*_ Konec knjižnic _*//*_ Določite zatiče LCD (dodelil sem privzete vrednosti) _*/#določite YP A1 // mora biti analogni pin, uporabite zapis "An"! define XM A2 // mora biti analogni pin, uporabite zapis "An"! #define YM 7 // je lahko digitalni pin#define XP 6 // je lahko digitalni pin#define LCD_CS A3#definiraj LCD_CD A2#določi LCD_WR A1#definiraj LCD_RD A0#določi LCD_RESET A4/*_ Konec defenzij _*//*_ Dodelite imena barvam in pritisku _*/#določite BELO 0x0000 // Črno-> Belo#definirajte RUMENO 0x001F // Modro-> Rumeno#določite CYAN 0xF800 // Rdeča-> Cyan#definiraj PINK 0x07E0 // Green-> Pink#define RED 0x07FF // Cyan-> Red#define GREEN 0xF81F // Pink-> Green #define BLUE 0xFFE0 // Yellow- > Modra#definiraj ČRNA 0xFFFF // Bela-> Črna#določi MINPRESSURE 10#definiraj MAXPRESSURE 1000/*_ Dodeljena _*//*_ Umerjanje TFT LCD _*/#definiraj TS_MINX 125#določi TS_MINY 85#določi TS_MAXX 965#določi TS_MAXY 905* _ Konec umerjanja _*/Zaslon na dotik ts = Zaslon na dotik (XP, YP, XM, YM, 300); // 300 je občutljivostAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Začni komunikacijo s simbolom LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; dolga Num1, Num2, Število; akcija char; logični rezultat = false; void setup () {Serial.begin (9600); // Uporabite serijski monitor za odpravljanje napak tft.reset (); // Vedno ponastavi ob zagonu tft.begin (0x9341); // Moj LCD uporablja gonilnik vmesnika LIL9341 IC tft.setRotation (2); // Pravkar sem se vrtel tako, da je vtičnica obrnjena navzgor - izbirno tft.fillScreen (BELO); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serijski.tisk (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); delay (300);} TSPoint waitTouch () {TSPoint p; do {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = zemljevid (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = zemljevid (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Zaznavanje gumbov v stolpcu 1 {if (Y> 0 && Y <85) // Če pritisnete gumb za preklic {Serial.println ("Button Cancel"); Število = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Če pritisnete gumb 1 {Serial.println ("gumb 1"); če (Število == 0) Število = 1; else Število = (Število*10) + 1; // Dvakrat pritisnjen} if (Y> 140 && Y <192) // Če pritisnete gumb 4 {Serial.println ("Gumb 4"); če (Število == 0) Število = 4; else Število = (Število*10) + 4; // Dvakrat pritisnjen} if (Y> 192 && Y <245) // Če pritisnemo gumb 7 {Serial.println ("Gumb 7"); če (Število == 0) Število = 7; else Število = (Število*10) + 7; // Dvakrat pritisnjen}} if (X50) // Zaznavanje gumbov v stolpcu 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Gumb 0 pritisnemo, če (Število == 0) Število = 0; else Število = (Število*10) + 0; // Dvakrat pritisnjen} if (Y> 85 && Y <140) {Serial.println ("Button 2"); če (Število == 0) Število = 2; else Število = (Število*10) + 2; // Dvakrat pritisnjen} if (Y> 140 && Y <192) {Serial.println ("Button 5"); če (Število == 0) Število = 5; else Število = (Število*10) + 5; // stisnjen twic} if (Y> 192 && Y <245) {Serial.println ("Gumb 8"); če (Število == 0) Število = 8; else Število = (Število*10) + 8; // stisnjen twic}} if (X105) // Zaznavanje gumbov v stolpcu 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Število; rezultat = res; } if (Y> 85 && Y <140) {Serial.println ("Gumb 3"); če (Število == 0) Število = 3; else Število = (Število*10) + 3; // Dvakrat pritisnjen} if (Y> 140 && Y <192) {Serial.println ("Gumb 6"); če (Število == 0) Število = 6; else Število = (Število*10) + 6; // Dvakrat pritisnjen} if (Y> 192 && Y <245) {Serial.println ("Button 9"); če (Število == 0) Število = 9; else Število = (Število*10) + 9; // Dvakrat pritisnjen}} if (X165) // Zaznavanje gumbov v stolpcu 3 {Num1 = Number; Število = 0; tft.setCursor (200, 20); tft.setTextColor (RDEČA); if (Y> 0 && Y <85) {Serial.println ("Dodatek"); dejanje = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Odštevanje"); dejanje = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Množenje"); dejanje = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); dejanje = 4; tft.println ('/');} zakasnitev (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; if (dejanje == 2) Število = Num1-Num2; if (dejanje == 3) Število = Num1*Num2; if (dejanje == 4) Število = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // počisti polje z rezultati tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (ČRNO); tft.println (Število); // posodobi novo vrednost} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RDEČA); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("KALKULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (MODRA); tft.println ("-Krožni povzetek"); delay (1800);} void draw_BoxNButtons () {// Nariši polje z rezultati tft.fillRect (0, 0, 240, 80, CYAN); // Nariši prvi stolpec tft.fillRect (0, 260, 60, 60, RDEČA); tft.fillRect (0, 200, 60, 60, ČRNO); tft.fillRect (0, 140, 60, 60, ČRNO); tft.fillRect (0, 80, 60, 60, ČRNO); // Nariši tretji stolpec tft.fillRect (120, 260, 60, 60, ZELENO); tft.fillRect (120, 200, 60, 60, ČRNO); tft.fillRect (120, 140, 60, 60, ČRNO); tft.fillRect (120, 80, 60, 60, ČRNO); // Nariši drugi in četrti stolpec za (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Nariši vodoravne črte za (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, BELO); // Nariši navpične črte za (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, BELO); // Prikaz oznak tipkovnice za (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60* j)); tft.setTextSize (3); tft.setTextColor (BELO); tft.println (simbol [j] ); }}} Ko naložite kodo, boste lahko videli, da je kalkulator na vašem zaslonu prikazan kot moj, zdaj pa lahko za to izvedete osnovne matematične izračune. Zato se zabavajte pri izdelavi svojega kalkulatorja z Arduino UNO.
Priporočena:
Sistem zaklepanja zaslona LCD zaslona: 6 korakov
Sistem za zaklepanje doma z LCD zaslonom: Ta projekt bo deloval kot zaklepanje doma in edini način, da vstopite v hišo, je pritisk na pravilno 3 -mestno kodo. LCD bo deloval kot komunikacijska naprava, ki bo posameznika obvestila, če je vnesel pravilno kodo ali ne. IR
Arduino kalkulator zaslona na dotik: 7 korakov
Arduino kalkulator zaslona na dotik: Pozdravljeni! To je projekt izdelave kalkulatorja z zaslonom na dotik z uporabo Arduino Uno in TFT LCD ščita. Pripravila sem koncept za moj razred programiranja na šoli in izkušnje pri gradnji tega projekta so bile zelo zanimive. Ta kalkulator je
Arduino Flappy Bird - Arduino 2.4 "TFT zaslon na dotik SPFD5408 Projekt igre ptic: 3 koraki
Arduino Flappy Bird | Arduino 2,4 -palčni TFT zaslon na dotik SPFD5408 Bird Game Project: Flappy Bird je bila v nekaj letih preveč priljubljena igra in veliko ljudi jo je ustvarilo na svoj način, zato sem tudi jaz ustvaril svojo različico flappy bird z Arduinom in poceni 2,4 " TFT Zaslon na dotik SPFD5408, zato začnimo
Tri vezja senzorja na dotik + vezje časovnika na dotik: 4 koraki
Tri vezja senzorja na dotik + vezje časovnika na dotik: Senzor na dotik je vezje, ki se vklopi, ko zazna dotik na nožicah na dotik. Deluje na prehodni osnovi, to je, da bo obremenitev vklopljena le za čas dotika na zatičih. Tukaj vam bom pokazal tri različne načine, kako občutiti dotik
STIKALO NA DOTIK - Kako narediti stikalo na dotik s tranzistorjem in ploščico: 4 koraki
STIKALO NA DOTIK | Kako narediti stikalo na dotik z uporabo tranzistorja in tiskalne plošče.: Stikalo na dotik je zelo preprost projekt, ki temelji na uporabi tranzistorjev. V tem projektu je uporabljen tranzistor BC547, ki deluje kot stikalo na dotik. OBVEZNO OGLEDITE VIDEO, KI vam bo dal popolne podrobnosti o projektu