Мазмұны:

Arduino TFT LCD сенсорлық экранының калькуляторы: 3 қадам
Arduino TFT LCD сенсорлық экранының калькуляторы: 3 қадам

Бейне: Arduino TFT LCD сенсорлық экранының калькуляторы: 3 қадам

Бейне: Arduino TFT LCD сенсорлық экранының калькуляторы: 3 қадам
Бейне: Как работает ЖК-дисплей? (Анимация) 2024, Шілде
Anonim
Arduino TFT LCD сенсорлық экраны калькуляторы
Arduino TFT LCD сенсорлық экраны калькуляторы

Сәлеметсіздер ме, балалар, осы нұсқаулықта біз 3,5 дюймдік TFT LCD сенсорлы дисплейі бар Arduino Uno көмегімен калькулятор жасауды үйренеміз, сондықтан біз кодты жазамыз және оны arduino -ға жүктейміз, ол дисплейде калькулятор интерфейсін көрсетеді және сенсорлық функцияны алады. негізгі математикалық өрнектерді шығарады.

1 -қадам: Сізге қажет заттар

Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар

Бұл жоба үшін сізге келесі заттар қажет: 3,5 «TFT LCD DISPLAYARDUINO UNO

2 -қадам: Arduino IDE -де TFT дисплей кітапханасын орнату

Arduino IDE -де TFT дисплей кітапханасын орнату
Arduino IDE -де TFT дисплей кітапханасын орнату

Біз SPFD5408 кітапханасын қолданамыз:

бұл arduino калькуляторының кодын жұмыс істеу үшін. Бұл Adafruit түрлендірілген кітапханасы және біздің LCD TFT модулімен үздіксіз жұмыс жасай алады. Бұл кітапхананы Arduino IDE -ге немесе осы бағдарламаны қатесіз құрастыру үшін орнату өте маңызды. Бұл кітапхананы орнату үшін жоғарыдағы сілтемені басу арқылы Github бетіне өтуге болады. Онда клондауды немесе жүктеуді нұқыңыз және «ZIP жүктеуді» таңдаңыз. Zip файлы жүктеледі, енді Arduino IDE бағдарламасын ашыңыз және Sketch -> Include Librarey -> Add. ZIP кітапханасын таңдаңыз. ZIP файлына өтетін шолғыш терезесі ашылады және «ОК» түймесін басыңыз. Ардуиноның төменгі сол жақ бұрышында «Кітапханаларыңызға кітапхана қосылды» дегенді байқауыңыз керек.

3 -қадам: Калькулятор кодын жүктеңіз

Калькулятор кодын жүктеңіз
Калькулятор кодын жүктеңіз
Калькулятор кодын жүктеңіз
Калькулятор кодын жүктеңіз

Кітапхананы орнатқаннан кейін дисплейді Arduino-ға қосып, келесі кодты көшіріп, Arduino-ға жүктеңіз. кітапхана#қамтиды «SPFD5408_TouchScreen.h»/*_ Кітапханалардың соңы _*//*_ СКД түйреуіштерін анықтаңыз (мен әдепкі мәндерді қойдым) _*/#анықтаңыз YP A1 // аналогтық түйреуіш болуы керек, «Ан» белгісін қолданыңыз!# анықтау XM A2 // аналогтық түйреуіш болуы керек, «Ан» белгісін қолданыңыз!#анықтаңыз YM 7 // сандық түйреуіш болуы мүмкін#XP 6 анықтаңыз // сандық түйреуіш болуы мүмкін#LCD_CS A3 анықтау#LCD_CD A2 анықтау#LCD_WR анықтау A1#анықтау LCD_RD A0#анықтау LCD_RESET A4/*_ Дефанцияның соңы _*//*_ Түстерге және қысымға аттарды тағайындаңыз _*/#ақты анықтаңыз 0x0000 // Қара-> Ақ#анықтаңыз САРЫ 0x001F // Көк-> Сары#анықтаңыз CYAN 0xF800 // Қызыл-> Көгілдір#PINK 0x07E0 анықтаңыз // Жасыл-> Қызғылт#анықтаңыз ҚЫЗЫЛ 0x07FF // Көгілдір-> Қызыл#анықтаңыз ЖАСЫЛ 0xF81F // Қызғылт-> Жасыл#КӨК 0xFFE0 // Сары- > Көк#анықтау ҚАРА 0xFFFF // Ақ-> Қара#анықтау MINPRESSURE 10#анықтау MAXPRESSURE 1000/*_ Тағайындалған _*//*_ TFT LCD калибрлеу _*/#анықтау TS_MINX 125#анықтау TS_MINY 85#анықтау TS_MAXX 965#TS_MAXX 965#анықтау _ Калибрлеудің соңы _*/TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 - сезімталдықAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Байланысты LCDString белгісімен бастаңыз [4] [4] = {{«7», «8», «9», «/»}, {«4», «5», «6», «*»}, {«1», «2», «3», «-»}, {«C», «0», «=», «+»}}; int X, Y; ұзын сан1, сан2, сан; char әрекеті; логикалық нәтиже = жалған; void setup () {Serial.begin (9600); // tft.reset () күйін келтіру үшін сериялық мониторды қолданыңыз; // Әрқашан бастапқы күйге қайтару tft.begin (0x9341); // Менің СКД -де LIL9341 интерфейс драйвері IC tft.setRotation (2) қолданылады; // Мен қуат ұясы жоғары қарайтындай ғана айналдым - қосымша tft.fillScreen (АҚ); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + «» + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); кешіктіру (300);} TSPoint waitTouch () {TSPoint p; істеу {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } while ((p.z MAXPRESSURE)); p.x = карта (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = карта (p.y, TS_MINY, TS_MAXY, 0, 240);; қайтару; Сан = Сан1 = Сан2 = 0; result = false;} if (Y> 85 && Y <140) // If Button 1 pressed {Serial.println («Button 1»); if (Сан == 0) Сан = 1; else Сан = (Сан*10) + 1; // екі рет басылды} if (Y> 140 && Y <192) // If Button 4 is pressed {Serial.println («Button 4»); егер (Сан == 0) Сан = 4; else Сан = (Сан*10) + 4; // екі рет басылды} if (Y> 192 && Y <245) // If Button 7 is pressed {Serial.println («Button 7»); егер (Сан == 0) Сан = 7; else Сан = (Сан*10) + 7; // Екі рет басылды}} if (X50) // 2 -бағандағы түймелерді анықтау {if (Y> 0 && Y <85) {Serial.println («Button 0»); // 0 батырмасы басылады, егер (Сан == 0) Сан = 0; else Сан = (Сан*10) + 0; // екі рет басылды} if (Y> 85 && Y <140) {Serial.println («Button 2»); егер (Сан == 0) Сан = 2; else Сан = (Сан*10) + 2; // екі рет басылды} if (Y> 140 && Y <192) {Serial.println («Button 5»); егер (Сан == 0) Сан = 5; else Сан = (Сан*10) + 5; // Басылған twic} if (Y> 192 && Y <245) {Serial.println («8 -түйме»); егер (Сан == 0) Сан = 8; else Сан = (Сан*10) + 8; // Басылған twic}} if (X105) // 3 -бағандағы түймелерді анықтау {if (Y> 0 && Y <85) {Serial.println («Түйме тең»); Num2 = Сан; нәтиже = ақиқат; } if (Y> 85 && Y <140) {Serial.println («3 -түйме»); егер (Сан == 0) Сан = 3; else Сан = (Сан*10) + 3; // екі рет басылды} if (Y> 140 && Y <192) {Serial.println («Button 6»); егер (Сан == 0) Сан = 6; else Сан = (Сан*10) + 6; // екі рет басылды} if (Y> 192 && Y <245) {Serial.println («9 -түйме»); егер (Сан == 0) Сан = 9; else Сан = (Сан*10) + 9; // екі рет басылды}} if (X165) // 3 -бағандағы түймелерді анықтау {Num1 = Number; Сан = 0; tft.setCursor (200, 20); tft.setTextColor (ҚЫЗЫЛ); if (Y> 0 && Y <85) {Serial.println («Қосымша»); әрекет = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println («Алып тастау»); әрекет = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println («Көбейту»); әрекет = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println («Devesion»); әрекет = 4; tft.println ('/');} кешіктіру (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; if (action == 2) Number = Num1-Num2; if (action == 3) Number = Num1*Num2; if (action == 4) Number = Num1/Num2; } void DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // нәтиже терезесін жою tft.setCursor (10, 20); tft.setTextSize (4); tft.setTextColor (ҚАРА); tft.println (Сан); // жаңа мәнді жаңарту} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (ҚЫЗЫЛ); tft.println («ARDUINO»); tft.setCursor (30, 160); tft.println («КАЛЬКУЛЬТОР»); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (КӨК); tft.println («-Circut Digest»); delay (1800);} void draw_BoxNButtons () {// Нәтижелер қорабын салу tft.fillRect (0, 0, 240, 80, CYAN); // Бірінші бағанды салу tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, ҚАРА); tft.fillRect (0, 140, 60, 60, ҚАРА); tft.fillRect (0, 80, 60, 60, ҚАРА); // Үшінші бағанды салу tft.fillRect (120, 260, 60, 60, GREEN); tft.fillRect (120, 200, 60, 60, ҚАРА); tft.fillRect (120, 140, 60, 60, ҚАРА); tft.fillRect (120, 80, 60, 60, ҚАРА); // (int b = 260; b> = 80; b- = 60) үшін Secound & Төртінші бағанды сызу {tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Көлденең сызықтар сызу (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE) үшін тік сызықтар салу; // (int j = 0; j <4; j ++) {үшін (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60*) j)); tft.setTextSize (3); tft.setTextColor (АҚ); tft.println (таңба [j] ); }}} Кодты жүктегеннен кейін сіз дисплейде калькулятор менікі ретінде жұмыс істейтінін көре аласыз, енді сіз бұл үшін негізгі математикалық есептеулерді жасай аласыз. Сонымен, Arduino UNO көмегімен жеке калькулятор жасауды көңілді өткізіңіз.

Ұсынылған: