Агуулгын хүснэгт:

Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур: 3 алхам
Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур: 3 алхам

Видео: Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур: 3 алхам

Видео: Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур: 3 алхам
Видео: SKR Pro v1.2 - Basics 2024, Арванхоёрдугаар сар
Anonim
Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур
Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур

Сайн байна уу залуусаа, энэ гарын авлагад бид 3.5 TFT LCD мэдрэгчтэй дэлгэц бүхий Arduino Uno ашиглан тооцоолуур хийх аргыг сурах болно. Тиймээс бид код бичиж, тооцоолох интерфэйсийг дэлгэц дээр харуулах бөгөөд мэдрэгчтэй функцийг авах болно. математикийн үндсэн илэрхийллүүдийн гаралтыг өгөх.

Алхам 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 -> Номын сан оруулах -> Зип номын сан нэмэх. Хөтчийн цонх нээгдэж, ZIP файл руу очоод "OK" дээр дарна уу. Та Arduino-ийн зүүн доод буланд байрлах "Номын санд номын сан нэмэгдсэн" -ийг анзаарах хэрэгтэй.

Алхам 3: Тоолуурын кодыг байршуулна уу

Тооцооллын кодыг байршуулах
Тооцооллын кодыг байршуулах
Тооцооллын кодыг байршуулах
Тооцооллын кодыг байршуулах

Номын санг суулгасны дараа дэлгэцийг Arduino руу холбож, дараах кодыг хуулж Arduino-д байршуулна уу. номын сан#оруулах "SPFD5408_TouchScreen.h"/*_ Номын сангийн төгсгөл _*//*_ LCD тээглүүрийг тодорхойлно уу (би анхдагч утгыг тохируулсан) _*/#тодорхойлох YP A1 // нь аналог зүү байх ёстой, "An" тэмдэглэгээг ашиглана уу!# XM A2 тодорхойлох // аналог зүү байх ёстой, "Ан" тэмдэглэгээг ашиглана уу!#YM 7 -ийг тодорхойлох // дижитал зүү байж болно#XP 6 тодорхойлох / дижитал зүү байж болно#LCD_CS A3 тодорхойлох#LCD_CD A2#LCD_WR тодорхойлох A1#тодорхойлох LCD_RD A0#LCD_RESET тодорхойлох A4/*_ Дефаниацийн төгсгөл _*//*_ Нэрийг өнгө, даралтад оноох _*/#ЦАГААН 0x0000 тодорхойлох // Хар-> Цагаан#тодорхойлох ШАР 0x001F // Цэнхэр-> Шар#тодорхойлох ХҮН 0xF800 // Улаан-> Цэнхэр#PINK тодорхойлох 0x07E0 // Ногоон-> Ягаан#тодорхойлох RED 0x07FF // Цэнхэр-> Улаан#тодорхойлох НОГООН 0xF81F // Ягаан-> Ногоон#Цэнхэр 0xFFE0 // Шар- > Цэнхэр#тодорхойлох BLACK 0xFFFF // Цагаан-> Хар#тодорхойлох MINPRESSURE 10#тодорхойлох MAXPRESSURE 1000/*_ Оноосон _*//*_ TFT LCD-ийг тохируулах _*/#тодорхойлох TS_MINX 125#тодорхойлох TS_MINY 85#тодорхойлох TS_MAXX 965#тодорхойлох 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; урт Num1, Num2, Number; char үйлдэл; boolean result = false; 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; хийх {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } байхад ((p.z MAXPRESSURE)); p.x = газрын зураг (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = газрын зураг (p.y, TS_MINY, TS_MAXY, 0, 240);; буцах 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) // If Button 1 дарагдсан бол {Serial.println ("Button 1"); if (Number == 0) Number = 1; өөр тоо = (тоо*10) + 1; // Хоёр удаа дарсан} if (Y> 140 && Y <192) // If Button 4 дарагдсан бол {Serial.println ("Button 4"); хэрэв (Дугаар == 0) Дугаар = 4; өөр тоо = (тоо*10) + 4; // Хоёр удаа дарсан} if (Y> 192 && Y <245) // If Button 7 дарагдсан бол {Serial.println ("Button 7"); хэрэв (Дугаар == 0) Дугаар = 7; өөр тоо = (тоо*10) + 7; // Хоёр удаа дарсан}} if (X50) // 2 -р баганад байгаа товчлууруудыг илрүүлэх {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // (Тоон == 0) Дугаар = 0 бол 0 товчлуур дарагдана. өөр тоо = (тоо*10) + 0; // Хоёр удаа дарсан} if (Y> 85 && Y <140) {Serial.println ("Button 2"); хэрэв (Дугаар == 0) Дугаар = 2; өөр тоо = (тоо*10) + 2; // Хоёр удаа дарсан} if (Y> 140 && Y <192) {Serial.println ("Button 5"); хэрэв (Дугаар == 0) Дугаар = 5; өөр тоо = (тоо*10) + 5; // дарагдсан twic} if (Y> 192 && Y <245) {Serial.println ("Button 8"); хэрэв (Дугаар == 0) Дугаар = 8; өөр тоо = (тоо*10) + 8; // дарагдсан twic}} if (X105) // 3 -р баганад байгаа товчлууруудыг илрүүлж байна {if (Y> 0 && Y <85) {Serial.println ("Button Equal"); Num2 = тоо; үр дүн = үнэн; } if (Y> 85 && Y <140) {Serial.println ("Button 3"); хэрэв (Дугаар == 0) Дугаар = 3; өөр тоо = (тоо*10) + 3; // Хоёр удаа дарсан} if (Y> 140 && Y <192) {Serial.println ("Button 6"); хэрэв (Дугаар == 0) Дугаар = 6; өөр тоо = (тоо*10) + 6; // Хоёр удаа дарсан} if (Y> 192 && Y <245) {Serial.println ("Button 9"); хэрэв (Дугаар == 0) Дугаар = 9; өөр тоо = (тоо*10) + 9; // Хоёр удаа дарагдсан}} if (X165) // 3 -р баганад байгаа товчлууруудыг илрүүлэх {Num1 = Дугаар; Дугаар = 0; tft.setCursor (200, 20); tft.setTextColor (RED); 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; } хоосон 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 (RED); 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 & Fourth Column зурах {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 ашиглан өөрийн тооцоолуур хийж хөгжилтэй байгаарай.

Зөвлөмж болгож буй: