Агуулгын хүснэгт:
- Алхам 1: Танд хэрэгтэй зүйл
- Алхам 2: TFT Display Library -ийг Arduino IDE дээр суулгана уу
- Алхам 3: Тоолуурын кодыг байршуулна уу
Видео: Arduino TFT LCD мэдрэгчтэй дэлгэцийн тооцоолуур: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Сайн байна уу залуусаа, энэ гарын авлагад бид 3.5 TFT LCD мэдрэгчтэй дэлгэц бүхий Arduino Uno ашиглан тооцоолуур хийх аргыг сурах болно. Тиймээс бид код бичиж, тооцоолох интерфэйсийг дэлгэц дээр харуулах бөгөөд мэдрэгчтэй функцийг авах болно. математикийн үндсэн илэрхийллүүдийн гаралтыг өгөх.
Алхам 1: Танд хэрэгтэй зүйл
Энэхүү төслийн хувьд танд дараах зүйлс хэрэгтэй болно: 3.5 TFT LCD DISPLAYARDUINO UNO
Алхам 2: 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 ашиглан өөрийн тооцоолуур хийж хөгжилтэй байгаарай.
Зөвлөмж болгож буй:
K -Ability V2 - Мэдрэгчтэй дэлгэцийн нээлттэй эх сурвалжтай гар: 6 алхам (зурагтай)
K-Ability V2-Мэдрэгчтэй дэлгэцийн нээлттэй эх сурвалжтай гар: Энэхүү загвар нь K-Ability-ийн хоёр дахь хувилбар юм. K-Ability нь мэдрэл булчингийн эмгэгээс үүдэлтэй эмгэг бүхий хүмүүст мэдрэгчтэй дэлгэц ашиглах боломжийг олгодог физик гар юм. Олон туслах хэрэгсэл байдаг. Энэ нь тооцооллыг ашиглахад хялбар болгодог
Мэдрэгчтэй дэлгэцийн нэрийн хуудас: 8 алхам (зурагтай)
Мэдрэгчтэй дэлгэцийн нэрийн хуудас: Би механик инженер мэргэжилтэй, гэхдээ би цахилгаан хэлхээ, микроконтроллертой холбоотой олон жилийн төслүүдээс цахилгаан инженерчлэл, програмчлалын ур чадварыг эзэмшсэн. Ажил олгогчид намайг механик инженерийн ур чадвартай болно гэж найдах болно
Arduino мэдрэгчтэй дэлгэцийн тооцоолуур: 7 алхам
Arduino мэдрэгчтэй дэлгэцийн тооцоолуур: Сайн байна уу! Энэ бол Arduino Uno болон TFT LCD бамбай ашиглан мэдрэгчтэй дэлгэцийн тооцоолуур хийх төсөл юм. Би гэрийн сургуулийн програмчлалын ангийнхаа концепцийг гаргаж ирсэн бөгөөд энэ төслийг бүтээх туршлага маш сонирхолтой байсан. Энэхүү тооцоолуур нь
Arduino TFT мэдрэгчтэй дэлгэцийн хаалганы түгжээ: 5 алхам
Arduino TFT мэдрэгчтэй дэлгэцийн хаалганы түгжээ: Энэ бол миний анхны зааварчилгаа юм. Энэ төсөл нь Arduino болон 2.8 " Нууц үгийн ноорог бүхий TFT мэдрэгчтэй дэлгэц нь цоожны хаалганы хэлхээг таслах релеийг идэвхжүүлдэг. Дахин хэлэхэд ажлын хаалганы RFID түгжээг дахин холбохоос илүү эвдэрсэн
Arduino Uno: Visuino -тай ILI9341 TFT мэдрэгчтэй дэлгэцийн бамбай дээрх Bitmap Animation: 12 алхам (зурагтай)
Arduino Uno: Visuino -тай ILI9341 TFT мэдрэгчтэй дэлгэцийн бамбай дээрх Bitmap Animation: ILI9341 дээр суурилсан TFT мэдрэгчтэй дэлгэцийн бамбай нь Arduino -ийн хямд үнэтэй дэлгэц бамбай юм. Visuino нь тэднийг удаан хугацаанд дэмжиж байсан боловч тэдгээрийг хэрхэн ашиглах талаар заавар бичих боломж надад байгаагүй. Саяхан гэхдээ цөөхөн хүн асуусан