Orodha ya maudhui:
- Hatua ya 1: Vitu Unavyohitaji
- Hatua ya 2: Kusanikisha Maktaba ya Maonyesho ya TFT katika Arduino IDE
- Hatua ya 3: Pakia Nambari ya Kikokotozi
Video: Calculator ya skrini ya kugusa Arduino TFT LCD: Hatua 3
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Hi Guys katika masomo haya tutajifunza jinsi ya kutengeneza kikokotoo kwa kutumia Arduino Uno na onyesho la skrini ya kugusa ya 3.5 TFT LCD. Kwa hivyo tutaandika nambari na kuipakia kwa arduino ambayo itaonyesha kiolesura cha kikokotoo kwenye onyesho na itachukua utendaji wa kugusa na toa pato la maneno ya msingi ya hisabati.
Hatua ya 1: Vitu Unavyohitaji
Kwa mradi huu utahitaji mambo yafuatayo: 3.5 TFT LCD DISPLAYARDUINO UNO
Hatua ya 2: Kusanikisha Maktaba ya Maonyesho ya TFT katika Arduino IDE
Tunatumia Maktaba ya SPFD5408:
kupata msimbo huu wa kikokotoo cha arduino ukifanya kazi. Hii ni maktaba iliyobadilishwa ya Adafruit na inaweza kufanya kazi bila mshono na Moduli yetu ya LCD TFT. Ni muhimu kwako kusanikisha maktaba hii katika Arduino IDE yako au mpango huu kukusanya bila kosa lolote. Ili kusanikisha maktaba hii, unaweza kubofya tu kwenye kiunga hapo juu ambacho kitakupeleka kwenye ukurasa wa Github. Hapo bonyeza clone au pakua na uchague "Pakua ZIP". Faili ya zip itapakuliwa Sasa fungua Arduino IDE na uchague Mchoro -> Jumuisha Librarey -> Ongeza maktaba ya. ZIP. Dirisha la kivinjari litafungua nenda kwenye faili ya ZIP na bonyeza "OK". Unapaswa kugundua "Maktaba imeongezwa kwenye Maktaba yako" kwenye kona ya kushoto ya Arduino.
Hatua ya 3: Pakia Nambari ya Kikokotozi
Baada ya kusanikisha maktaba unganisha onyesho kwa Arduino na unakili nambari ifuatayo na uipakie kwa Arduino. maktaba # ni pamoja na "SPFD5408_TouchScreen.h" / * _ Mwisho wa Maktaba _ * // * _ Fafanua pini za LCD (nimetenga maadili ya msingi) _ * / # fafanua YP A1 // lazima iwe pini ya analogi, tumia noti "An"! # fafanua XM A2 // lazima iwe pini ya analogi, tumia "nukuu" #fafanua YM 7 // inaweza kuwa pini ya dijiti # fafanua XP 6 // inaweza kuwa pini ya dijiti # fafanua LCD_CS A3 # fafanua LCD_CD A2 # fafanua LCD_WR A1 # fafanua LCD_RD A0 # fafanua LCD_RESET A4 / * _ Mwisho wa defanitions _ * // * _ Toa majina kwa rangi na shinikizo _ * / # fafanua NYEUPE 0x0000 // Nyeusi-> Nyeupe # fafanua YELLOW 0x001F // Bluu-> Njano # fafanua CYAN 0xF800 // Nyekundu> Cyan # define PINK 0x07E0 // Kijani-> Pink # fafanua RED 0x07FF // Cyan -> Nyekundu # fafanua KIJANI 0xF81F // Pink -> Kijani #fafanua BLUE 0xFFE0 // Njano- > Bluu # fafanua WEUSI 0xFFFF // Nyeupe-> Nyeusi # fafanua UMASHARA 10 # fafanua MAXPRESSURE 1000 / * _ Iliyopewa _ * // * _ Suluhisha TFT LCD _ * / # fafanua TS_MINX 125 # fafanua TS_MINY 85 # fafanua TS_MAXX 965 # fafanua TS_MAXY 905 / * _ Mwisho wa Upimaji _ * / TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 ni unyetiAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Anzisha mawasiliano na ishara ya LCDString [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; muda mrefu Num1, Num2, Nambari; hatua ya char; matokeo ya boolean = uwongo; usanidi batili () {Serial.begin (9600); // Tumia mfuatiliaji wa serial kwa utatuzi wa tft.reset (); // Daima kuweka upya mwanzoni tft. Kuanza (0x9341); // LCD yangu hutumia dereva wa Interface LIL9341 IC tft.setRotation (2); // Niliweka tu ili jack ya nguvu iangalie juu - hiari tft.fillScreen (NYEUPE); IntroScreen (); chora_BoxNButtons (); } kitanzi batili () {TSPoint p = waitTouch (); X = p.y; Y = px; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); Tambua Vifungo (); kuchelewesha (300);} TSPoint waitTouch () {TSPoint p; fanya {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } wakati ((p.z MAXPRESSURE)); p.x = ramani (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = ramani (p.y, TS_MINY, TS_MAXY, 0, 240);; Return p;} batili DetectButtons () {if (X0) // Kugundua Vifungo kwenye Safu ya 1 {if (Y> 0 && Y <85) // If cancel Button is pressed {Serial.println ("Button Cancel"); Nambari = Num1 = Num2 = 0; matokeo = uongo; ikiwa (Nambari == 0) Nambari = 1; nambari nyingine = (Nambari * 10) + 1; // Imebanwa mara mbili} ikiwa (Y> 140 && Y <192) // Ikiwa Kitufe cha 4 kimeshinikizwa {Serial.println ("Button 4"); ikiwa (Nambari == 0) Nambari = 4; Nambari nyingine = (Nambari * 10) + 4; // Imebanwa mara mbili} ikiwa (Y> 192 && Y <245) // Ikiwa Kitufe cha 7 kimeshinikizwa {Serial.println ("Button 7"); ikiwa (Nambari == 0) Nambari = 7; nambari nyingine = (Nambari * 10) + 7; // Imebanwa mara mbili}} ikiwa (X50) // Kugundua Vifungo kwenye Safuwima 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Kitufe 0 kimesisitizwa ikiwa (Nambari == 0) Nambari = 0; Nambari nyingine = (Nambari * 10) + 0; // Imesisitizwa mara mbili} ikiwa (Y> 85 && Y <140) {Serial.println ("Button 2"); ikiwa (Nambari == 0) Nambari = 2; nambari nyingine = (Nambari * 10) + 2; // Imesisitizwa mara mbili} ikiwa (Y> 140 && Y <192) {Serial.println ("Button 5"); ikiwa (Nambari == 0) Nambari = 5; Nambari nyingine = (Nambari * 10) + 5; // Bonyeza twic} ikiwa (Y> 192 && Y <245) {Serial.println ("Button 8"); ikiwa (Nambari == 0) Nambari = 8; nambari nyingine = (Nambari * 10) + 8; // Bonyeza twic}} ikiwa (X105) // Kugundua Vifungo kwenye Safuwima 3 {if (Y> 0 && Y <85) {Serial.println ("Button Sawa"); Nambari2 = Nambari; matokeo = kweli; } ikiwa (Y> 85 && Y <140) {Serial.println ("Button 3"); ikiwa (Nambari == 0) Nambari = 3; Nambari nyingine = (Nambari * 10) + 3; // Imesisitizwa mara mbili} ikiwa (Y> 140 && Y <192) {Serial.println ("Button 6"); ikiwa (Nambari == 0) Nambari = 6; nambari nyingine = (Nambari * 10) + 6; // Imesisitizwa mara mbili} ikiwa (Y> 192 && Y <245) {Serial.println ("Button 9"); ikiwa (Nambari == 0) Nambari = 9; Nambari nyingine = (Nambari * 10) + 9; // Imebanwa mara mbili}} ikiwa (X165) // Kugundua Vifungo kwenye Safuwima ya 3 {Num1 = Idadi; Nambari = 0; tft.setCursor (200, 20); tft.setTextColor (RED); ikiwa (Y> 0 && Y <85) {Serial.println ("Nyongeza"); hatua = 1; tft.println ('+');} ikiwa (Y> 85 && Y <140) {Serial.println ("Ondoa"); hatua = 2; tft.println ('-');} ikiwa (Y> 140 && Y <192) {Serial.println ("Kuzidisha"); hatua = 3; tft.println ('*');} ikiwa (Y> 192 && Y <245) {Serial.println ("Devesion"); hatua = 4; tft.println ('/');} kuchelewa (300); }} batili CalculateResult () {if (action == 1) Number = Num1 + Num2; ikiwa (hatua == 2) Nambari = Num1-Num2; ikiwa (hatua == 3) Nambari = Num1 * Num2; ikiwa (hatua == 4) Nambari = Num1 / Num2; } batili DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // wazi sanduku la matokeo tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (NYEUSI); tft.println (Nambari); // sasisha thamani mpya} batili 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 ("- Mzunguko wa Mzunguko"); kuchelewesha (1800);} batili draw_BoxNButtons () {// Chora Sanduku la Matokeo tft.fillRect (0, 0, 240, 80, CYAN); // Chora safu ya kwanza tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, NYEUSI); tft.fillRect (0, 140, 60, 60, NYEUSI); tft.fillRect (0, 80, 60, 60, NYEUSI); // Chora safu ya tatu tft.fillRect (120, 260, 60, 60, KIJANI); tft.fillRect (120, 200, 60, 60, NYEUSI); tft.fillRect (120, 140, 60, 60, NYEUSI); tft.fillRect (120, 80, 60, 60, NYEUSI); // Chora safu ya nne na ya nne ya (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, NYEUSI);} // Chora Mistari Ulalo ya (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // Chora Mistari Wima ya (int v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE); // Onyesha lebo za keypad 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 (NYEUPE); tft.println (ishara [j] ); }}}} Baada ya kupakia nambari hiyo utaweza kuona kikokotoo kikiwa kwenye onyesho lako kama changu na sasa unaweza kufanya mahesabu ya msingi ya hesabu kwenye hii. Kwa hivyo furahiya kutengeneza kikokotoo chako na Arduino UNO.
Ilipendekeza:
Skrini ya kugusa Macintosh - Mac ya kawaida na Mini ya IPad kwa Skrini: Hatua 5 (na Picha)
Skrini ya kugusa Macintosh | Mac ya kawaida na Mini iPad ya Screen: Hii ndio sasisho langu na muundo uliyorekebishwa juu ya jinsi ya kubadilisha skrini ya Macintosh ya mavuno na mini iPad. Hii ni moja ya 6 ya haya ambayo nimefanya kwa miaka mingi na ninafurahi sana na mageuzi na muundo wa hii! Nyuma mnamo 2013 wakati nilifanya
Kikokotoo cha skrini ya kugusa Arduino: Hatua 7
Kikokotoo cha skrini ya kugusa ya Arduino: Halo! Huu ni mradi wa kutengeneza kikokotoo cha skrini ya kugusa kwa kutumia Arduino Uno na ngao ya LCD ya TFT. Nilikuja na dhana ya darasa langu la programu ya shule ya nyumbani, na uzoefu wa kujenga mradi huu ulikuwa wa kupendeza sana. Kikokotoo hiki
Ndege ya Arduino Flappy - Arduino 2.4 "Skrini ya kugusa TFT SPFD5408 Mradi wa Mchezo wa Ndege: Hatua 3
Ndege ya Arduino Flappy | Mradi wa Mchezo wa Ndege wa Arduino 2.4 "Mradi wa Mchezo wa Ndege wa SpFD5408: Ndege ya Flappy ilikuwa mchezo maarufu sana huko nyuma katika miaka michache na watu wengi waliiunda kwa njia yao wenyewe vile vile mimi, niliunda toleo langu la ndege flappy na Arduino na bei rahisi ya 2.4 " TFT Skrini ya kugusa SPFD5408, Basi wacha tuanze
Uonyesho wa Skrini ya Kugusa Arduino: Hatua 4
Onyesho la skrini ya kugusa ya Arduino: Halo! Leo, nitakuonyesha jinsi ya kutumia ngao ya skrini ya kugusa na Arduino Uno. Unaweza kuitumia kama onyesho ndogo kwa nukuu au picha au kila aina ya vitu vingine
Kiwango cha Kupima na Skrini ya Kugusa (Arduino): Hatua 7 (na Picha)
Kiwango cha Kupima Na Skrini ya Kugusa (Arduino): Je! Umewahi kutaka kujenga Kiwango cha Kupima na skrini ya kugusa? Kamwe haujafikiria? Soma vizuri na jaribu kujenga moja … Je! Unajua skrini ya kugusa ya TFT na Kiini cha Mzigo ni Kama Ndio ruka kwa hatua ya 1 anza tu kwa kusoma Utangulizi: Je