Съдържание:

Arduino TFT LCD Калкулатор със сензорен екран: 3 стъпки
Arduino TFT LCD Калкулатор със сензорен екран: 3 стъпки

Видео: Arduino TFT LCD Калкулатор със сензорен екран: 3 стъпки

Видео: Arduino TFT LCD Калкулатор със сензорен екран: 3 стъпки
Видео: ESP8266 Беспроводной ЧМИ Nextion || Внешний ПЛК Arduino 2024, Ноември
Anonim
Arduino TFT LCD сензорен екран калкулатор
Arduino TFT LCD сензорен екран калкулатор

Здравейте, момчета, в тази инструкция ще се научим как да правим калкулатор, използвайки Arduino Uno с 3.5 TFT LCD сензорен екран. Така че ще напишем код и ще го качим в arduino, който ще покаже интерфейса на калкулатора на дисплея и ще използва функционалността на докосване и дават изхода на основните математически изрази.

Стъпка 1: Неща, от които се нуждаете

Нещата, от които се нуждаете
Нещата, от които се нуждаете
Нещата, от които се нуждаете
Нещата, от които се нуждаете

За този проект ще ви трябват следните неща: 3.5 TFT LCD DISPLAYARDUINO UNO

Стъпка 2: Инсталиране на TFT Display Library в Arduino IDE

Инсталиране на TFT Display Library в Arduino IDE
Инсталиране на TFT Display Library в Arduino IDE

Използваме библиотеката SPFD5408:

за да работи този код на калкулатор arduino. Това е модифицирана библиотека на Adafruit и може да работи безпроблемно с нашия LCD TFT модул. За вас е много важно да инсталирате тази библиотека във вашата Arduino IDE или тази програма, за да компилирате без никакви грешки. За да инсталирате тази библиотека, можете просто да кликнете върху връзката по -горе, която ще ви отведе до страница на Github. Щракнете върху клониране или изтегляне и изберете „Изтегляне на ZIP“. Ще бъде изтеглен zip файл. Сега отворете Arduino IDE и изберете Sketch -> Include Librarey -> Add. ZIP library. Ще се отвори прозорец на браузър, отворете ZIP файла и кликнете върху „OK“. Трябва да забележите „Библиотека, добавена към вашите библиотеки“в долния ляв ъгъл на Arduino.

Стъпка 3: Качете кода на калкулатора

Качете кода на калкулатора
Качете кода на калкулатора
Качете кода на калкулатора
Качете кода на калкулатора

След като инсталирате библиотеката, свържете дисплея към Arduino и копирайте следния код и го качете в Arduino./*_Импортиране на библиотеки _*/#включва „SPFD5408_Adafruit_GFX.h“// Основна графична библиотека#включва „SPFD5408_Adafruit_TFTLCD.h“// Специфично за хардуера library#include "SPFD5408_TouchScreen.h"/*_ Край на библиотеките _*//*_ Определете LCD пиновете (аз съм задал стойностите по подразбиране) _*/#дефинирайте YP A1 // трябва да бъде аналогов щифт, използвайте нотация "An"!# дефинирайте XM A2 // трябва да бъде аналогов щифт, използвайте "An" нотация!#дефинирайте 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 // Бял-> Черен#дефинира МИНПРЕСУР 10#дефинира МАКСИМАТУРА 1000/*_ Присвоява _*//*_ Калибрира TFT LCD _*/#дефинира TS_MINX 125#дефинира TS_MINY 85#дефинира TS_MAXX 965#дефинира TS_MAXY 905* _ Край на калибрирането _*/TouchScreen ts = Сензорен екран (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; дълъг Num1, Num2, Номер; char действие; логически резултат = невярно; void setup () {Serial.begin (9600); // Използвайте сериен монитор за отстраняване на грешки в tft.reset (); // Винаги нулиране при стартиране tft.begin (0x9341); // Моят LCD използва 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; do {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);; return p;} void DetectButtons () {if (X0) // Откриване на бутони в колона 1 {if (Y> 0 && Y <85) // Ако бутонът за отказ е натиснат {Serial.println ("Button Cancel"); Брой = Num1 = Num2 = 0; result = false;} if (Y> 85 && Y <140) // Ако е натиснат Бутон 1 {Serial.println ("Бутон 1"); ако (Число == 0) Число = 1; else Number = (Number*10) + 1; // Натиснат два пъти} if (Y> 140 && Y <192) // Ако е натиснат Бутон 4 {Serial.println ("Бутон 4"); ако (Число == 0) Число = 4; else Number = (Number*10) + 4; // Натиснат два пъти} if (Y> 192 && Y <245) // Ако е натиснат Бутон 7 {Serial.println ("Бутон 7"); ако (Число == 0) Число = 7; else Number = (Number*10) + 7; // Натиснат два пъти}} if (X50) // Откриване на бутони в колона 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Бутон 0 се натиска, ако (Номер == 0) Номер = 0; else Number = (Number*10) + 0; // Натиснат два пъти} if (Y> 85 && Y <140) {Serial.println ("Бутон 2"); ако (Число == 0) Число = 2; else Number = (Number*10) + 2; // Натиснат два пъти} if (Y> 140 && Y <192) {Serial.println ("Button 5"); ако (Число == 0) Число = 5; else Number = (Number*10) + 5; // Натиснат twic} if (Y> 192 && Y <245) {Serial.println ("Бутон 8"); ако (Число == 0) Число = 8; else Number = (Number*10) + 8; // Натиснат twic}} if (X105) // Откриване на бутони в колона 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = Номер; резултат = вярно; } if (Y> 85 && Y <140) {Serial.println ("Бутон 3"); ако (Число == 0) Число = 3; else Number = (Number*10) + 3; // Натиснат два пъти} if (Y> 140 && Y <192) {Serial.println ("Button 6"); ако (Число == 0) Число = 6; else Number = (Number*10) + 6; // Натиснат два пъти} if (Y> 192 && Y <245) {Serial.println ("Button 9"); ако (Число == 0) Число = 9; else Number = (Number*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; ако (действие == 2) Номер = Num1-Num2; if (действие == 3) Номер = Num1*Num2; if (действие == 4) Номер = 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"); забавяне (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, ЗЕЛЕН); 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) {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, БЯЛ); // Показва етикетите на клавиатурата за (int j = 0; j <4; j ++) {for (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60* й)); tft.setTextSize (3); tft.setTextColor (БЯЛ); tft.println (символ [j] ); }}} След като качите кода, ще можете да видите калкулатора, който работи на дисплея ви като мой, и сега можете да извършвате основни математически изчисления по това. Затова се забавлявайте, като направите свой собствен калкулатор с Arduino UNO.

Препоръчано: