Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bagay na Kailangan mo
- Hakbang 2: Pag-install ng TFT Display Library sa Arduino IDE
- Hakbang 3: I-upload ang Calculator Code
Video: Calculator ng Arduino TFT LCD Touchscreen: 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Kumusta mga kalalakihan sa mga itinuturo na ito matututunan natin kung paano gumawa ng isang calculator gamit ang Arduino Uno na may 3.5 TFT LCD Touchscreen display. Kaya magsusulat kami ng isang code at I-upload ito sa arduino na magpapakita ng interface ng calculator sa display at tatagal sa pagpapaandar ng pag-andar at ibigay ang output ng pangunahing mga expression ng matematika.
Hakbang 1: Mga Bagay na Kailangan mo
Para sa proyektong ito kakailanganin mo ang mga sumusunod na bagay: 3.5 TFT LCD DISPLAYARDUINO UNO
Hakbang 2: Pag-install ng TFT Display Library sa Arduino IDE
Gumagamit kami ng SPFD5408 Library:
upang makuha ang code ng calculator ng arduino na ito. Ito ay isang binagong aklatan ng Adafruit at maaaring gumana nang walang putol sa aming LCD TFT Module. Napakahalaga para sa iyo na mai-install ang library na ito sa iyong Arduino IDE o ang program na ito upang mag-ipon nang walang anumang error. Upang mai-install ang library na ito, maaari mo lamang i-click ang link sa itaas na magdadala sa iyo sa isang pahina ng Github. Mayroong pag-click sa clone o pag-download at piliin ang "I-download ang ZIP". Isang zip file ang mai-download. Ngayon, buksan ang Arduino IDE at piliin ang Sketch -> Isama ang librarey -> Magdagdag ng. ZIP library. Ang isang window ng browser ay magbubukas mag-navigate sa ZIP file at i-click ang "OK". Dapat mong mapansin ang "Library na idinagdag sa iyong Mga Aklatan" sa kaliwang sulok sa kaliwa ng Arduino.
Hakbang 3: I-upload ang Calculator Code
Matapos mai-install ang silid-aklatan ikonekta ang display sa Arduino at kopyahin ang sumusunod na code at i-upload ito sa Arduino./ ** library # isama ang "SPFD5408_TouchScreen.h" / * _ Katapusan ng Mga Aklatan _ * // * _ Tukuyin ang mga pin ng LCD (Inilahad ko ang mga default na halaga) _ * / # tukuyin ang YP A1 // ay dapat na isang analog pin, gamitin ang "Isang" notasyon! # tukuyin ang XM A2 // dapat ay isang analog pin, gamitin ang "Isang" notasyon! # tukuyin ang YM 7 // ay maaaring isang digital na pin # tukuyin ang XP 6 // ay maaaring isang digital na pin A1 # tukuyin ang LCD_RD A0 # tukuyin ang LCD_RESET A4 / * _ Pagtatapos ng mga paninirang-puri _ * // * _ Magtalaga ng mga pangalan sa mga kulay at presyon // Red-> Cyan # tukuyin ang PINK 0x07E0 // Green-> Pink # tukuyin ang PULANG 0x07FF // Cyan -> Pula # tukuyin ang GREEN 0xF81F // Pink -> Green #define BLUE 0xFFE0 // Yellow- > Blue # tukuyin ang BLACK 0xFFFF // White-> Itim # tukuyin ang MINPRESSURE 10 # tukuyin ang MAXPRESSURE 1000 / * _ Itinalaga _ * // * _ I-calibrate ang TFT LCD _ * / # tukuyin ang TS_MINX 125 # tukuyin ang TS_MINY 85 # tukuyin ang TS_MAXX 965 # tukuyin ang TS_MAXY 905 / * _End of Calibration _ * / TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 ay ang pagiging sensitiboAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Simulan ang komunikasyon sa simbolo ng LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; mahabang Num1, Num2, Bilang; aksyon ng char; resulta ng boolean = false; void setup () {Serial.begin (9600); // Gumamit ng serial monitor para sa pag-debug ng tft.reset (); // Laging i-reset sa pagsisimula ng tft.begin (0x9341); // Ang aking LCD ay gumagamit ng LIL9341 Interface driver IC tft.setRotation (2); // Nag-roated lang ako upang ang power jack ay nakaharap - opsyonal na tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); Detect Buttons (); kung (resulta == totoo) CalculateResult (); DisplayResult (); antala (300);} TSPoint waitTouch () {TSPoint p; gawin ang {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } habang ((p.z MAXPRESSURE)); p.x = mapa (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = mapa (p.y, TS_MINY, TS_MAXY, 0, 240);; ibalik ang p;} walang bisa ang Mga Detect Buttons () {kung (X0) // Ang Pagtuklas ng Mga Pindutan sa Hanay 1 {kung (Y> 0 && Y <85) // Kung ang pindutang kanselahin ay pinindot ang {Serial.println ("Button Kanselahin"); Bilang = Num1 = Num2 = 0; resulta = false;} kung (Y> 85 && Y <140) // Kung ang Button 1 ay pinindot ang {Serial.println ("Button 1"); kung (Bilang == 0) Bilang = 1; iba pa Bilang = (Bilang * 10) + 1; // Pinindot nang dalawang beses} kung (Y> 140 && Y <192) // Kung ang Pindutan 4 ay pinindot {Serial.println ("Button 4"); kung (Bilang == 0) Bilang = 4; iba pa Bilang = (Bilang * 10) + 4; // Pinindot nang dalawang beses} kung (Y> 192 && Y <245) // Kung ang Button 7 ay pinindot {Serial.println ("Button 7"); kung (Bilang == 0) Bilang = 7; iba pa Bilang = (Bilang * 10) + 7; // Pinindot nang dalawang beses}} kung (X50) // Pagtuklas ng Mga Pindutan sa Hanay 2 {kung (Y> 0 && Y <85) {Serial.println ("Button 0"); // Button 0 ay Pinsala kung (Bilang == 0) Bilang = 0; iba pa Bilang = (Bilang * 10) + 0; // Pinindot ng dalawang beses} kung (Y> 85 && Y <140) {Serial.println ("Button 2"); kung (Bilang == 0) Bilang = 2; iba pa Bilang = (Bilang * 10) + 2; // Pinindot nang dalawang beses} kung (Y> 140 && Y <192) {Serial.println ("Button 5"); kung (Bilang == 0) Bilang = 5; iba pa Bilang = (Bilang * 10) + 5; // Pressed twic} kung (Y> 192 && Y <245) {Serial.println ("Button 8"); kung (Bilang == 0) Bilang = 8; iba pa Bilang = (Bilang * 10) + 8; // Pressed twic}} if (X105) // Detecting Buttons on Column 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Bilang; resulta = totoo; } kung (Y> 85 && Y <140) {Serial.println ("Button 3"); kung (Bilang == 0) Bilang = 3; iba pa Bilang = (Bilang * 10) + 3; // Pinindot ng dalawang beses} kung (Y> 140 && Y <192) {Serial.println ("Button 6"); kung (Bilang == 0) Bilang = 6; iba pa Bilang = (Bilang * 10) + 6; // Pinindot nang dalawang beses} kung (Y> 192 && Y <245) {Serial.println ("Button 9"); kung (Bilang == 0) Bilang = 9; iba pa Bilang = (Bilang * 10) + 9; // Pinindot nang dalawang beses}} kung (X165) // Pagtuklas ng Mga Pindutan sa Hanay 3 {Num1 = Bilang; Bilang = 0; tft.setCursor (200, 20); tft.setTextColor (RED); kung (Y> 0 && Y <85) {Serial.println ("Addition"); aksyon = 1; tft.println ('+');} kung (Y> 85 && Y <140) {Serial.println ("Pagbawas"); aksyon = 2; tft.println ('-');} kung (Y> 140 && Y <192) {Serial.println ("Multiplication"); aksyon = 3; tft.println ('*');} kung (Y> 192 && Y <245) {Serial.println ("Devesion"); aksyon = 4; tft.println ('/');} pagkaantala (300); }} walang bisa CalculateResult () {kung (aksyon == 1) Bilang = Num1 + Num2; kung (aksyon == 2) Bilang = Num1-Num2; kung (aksyon == 3) Bilang = Num1 * Num2; kung (aksyon == 4) Bilang = Num1 / Num2; } walang bisa ang DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // clear box ng resulta tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (BLACK); tft.println (Bilang); // update new value} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (RED); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("CALCULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BLUE); tft.println ("- Circut Digest"); antala (1800);} walang bisa draw_BoxNButtons () {// Iguhit ang Result Box tft.fillRect (0, 0, 240, 80, CYAN); // Draw First Column tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, BLACK); tft.fillRect (0, 140, 60, 60, BLACK); tft.fillRect (0, 80, 60, 60, BLACK); // Iguhit ang Third Column tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, BLACK); tft.fillRect (120, 140, 60, 60, BLACK); tft.fillRect (120, 80, 60, 60, BLACK); // Draw Secound & Fourth Column for (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Gumuhit ng Mga Pahalang na Linya para sa (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Draw Vertical Lines for (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Display keypad lables for (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 (PUTI); tft.println (simbolo [j] ); }}} Matapos i-upload ang code makikita mo ang calculator na tumatakbo sa iyong display bilang minahan at ngayon ay maaari kang magsagawa ng mga pangunahing kalkulasyon sa matematika dito. Kaya't magsaya sa paggawa ng iyong sariling calculator sa Arduino UNO.
Inirerekumendang:
Calculator ng Arduino Touchscreen: 7 Mga Hakbang
Calculator ng Arduino Touchscreen: Kumusta! Ito ay isang proyekto upang gumawa ng isang calculator ng touchscreen gamit ang isang Arduino Uno at isang kalasag na TFT LCD. Naisip ko ang konsepto para sa aking klase sa pag-programa sa homeschool, at ang karanasan sa pagbuo ng proyektong ito ay napaka-interesante. Ang calculator na ito ay
Arduino Flappy Bird - Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: 3 Mga Hakbang
Arduino Flappy Bird | Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: Ang Flappy Bird ay napakapopular na laro pabalik doon sa ilang taon at maraming tao ang lumikha nito sa kanilang sariling paraan kaya ginawa ko, nilikha ko ang aking bersyon ng flappy bird kasama si Arduino at ang murang 2.4 " TFT Touchscreen SPFD5408, Kaya't magsimula tayo
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial: 12 Hakbang (na may Mga Larawan)
BluBerriSix - isang TFT TouchScreen / Arduino Tutorial: Ang 2019 ay ang ika-20 anibersaryo ng RIM Blackberry 850! Ang maliit na imbensyong ito ng Canada ay binago ang paraan ng pakikipag-usap sa mundo. Matagal na itong nawala, ngunit ang pamana nito ay nagpapatuloy! Sa itinuturo na ito, malalaman mo kung paano gamitin ang MCUfriend.com 2.4 " TFT dis
Arduino Uno: Bitmap Animation sa ILI9341 TFT Touchscreen Display Shield With Visuino: 12 Hakbang (na may Mga Larawan)
Arduino Uno: Bitmap Animation sa ILI9341 TFT Touchscreen Display Shield With Visuino: batay sa ILI9341 na TFT Touchscreen Display Shields ay napakapopular ng mga Shield na may mababang gastos sa Display para sa Arduino. Ang Visuino ay mayroong suporta para sa kanila sa loob ng mahabang panahon, ngunit hindi ako nagkaroon ng pagkakataong magsulat ng isang Tutorial sa kung paano gamitin ang mga ito. Kamakailan ngunit ilang tao ang nagtanong
Gawing isang TI Graphing Calculator Sa isang Intervalometer at Lumikha ng Mga Video ng Paglipas ng Oras: 7 Mga Hakbang (na may Mga Larawan)
Gawing isang TI Graphing Calculator sa isang Intervalometer at Lumikha ng Mga Video ng Paglipas ng Oras: Palagi kong nais na gumawa ng mga video na lumipas ng oras, ngunit wala akong camera na may naka-built na tampok na intervalometer. Sa katunayan, sa palagay ko ay hindi masyadong marami ang mga camera ay may kasamang isang tampok (lalo na hindi mga SLR camera). Kaya ano ang nais mong gawin kung nais mong