Სარჩევი:

Arduino TFT LCD სენსორული კალკულატორი: 3 ნაბიჯი
Arduino TFT LCD სენსორული კალკულატორი: 3 ნაბიჯი

ვიდეო: Arduino TFT LCD სენსორული კალკულატორი: 3 ნაბიჯი

ვიდეო: Arduino TFT LCD სენსორული კალკულატორი: 3 ნაბიჯი
ვიდეო: How to Make PLC LCD HMI || FLProg 2024, ივლისი
Anonim
Arduino TFT LCD სენსორული კალკულატორი
Arduino TFT LCD სენსორული კალკულატორი

გამარჯობა ბიჭებო, ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ გავაკეთოთ კალკულატორი Arduino Uno– ს გამოყენებით 3.5”TFT LCD სენსორული ეკრანით. ასე რომ, ჩვენ დავწერთ კოდს და ავტვირთავთ მას arduino– ში, რომელიც აჩვენებს კალკულატორის ინტერფეისს ეკრანზე და მიიღებს შეხების ფუნქციებს და მიეცით ძირითადი მათემატიკური გამონათქვამების გამომავალი.

ნაბიჯი 1: ის, რაც გჭირდებათ

ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ
ნივთები რაც თქვენ გჭირდებათ

ამ პროექტისთვის დაგჭირდებათ შემდეგი ნივთები: 3.5 TFT LCD DISPLAYARDUINO UNO

ნაბიჯი 2: დააინსტალირეთ TFT ჩვენების ბიბლიოთეკა Arduino IDE– ში

TFT ჩვენების ბიბლიოთეკის დაყენება Arduino IDE– ში
TFT ჩვენების ბიბლიოთეკის დაყენება Arduino IDE– ში

ჩვენ ვიყენებთ SPFD5408 ბიბლიოთეკას:

ამ არდუინოს კალკულატორის კოდის მუშაობისთვის. ეს არის ადაფრუტის მოდიფიცირებული ბიბლიოთეკა და შეუძლია შეუფერხებლად იმუშაოს ჩვენს LCD TFT მოდულთან. თქვენთვის ძალიან მნიშვნელოვანია, რომ დააინსტალიროთ ეს ბიბლიოთეკა თქვენს Arduino IDE– ში ან ეს პროგრამა შეადგინოთ ყოველგვარი შეცდომის გარეშე. ამ ბიბლიოთეკის დასაყენებლად შეგიძლიათ უბრალოდ დააჭიროთ ზემოთ მოცემულ ბმულს, რომელიც გადაგიყვანთ Github გვერდზე. იქ დააწკაპუნეთ კლონზე ან გადმოწერეთ და შეარჩიეთ "ჩამოტვირთეთ ZIP". გადმოწერილი იქნება zip ფაილი. ახლა გახსენით Arduino IDE და აირჩიეთ Sketch -> Include Librarey -> Add. ZIP ბიბლიოთეკა. ბრაუზერის ფანჯარა გაიხსნება ნავიგაცია ZIP ფაილზე და დააჭირეთ ღილაკს "OK". თქვენ უნდა შეამჩნიოთ "ბიბლიოთეკას დაემატა ბიბლიოთეკა" არდუინოს ქვედა მარცხენა კუთხეში.

ნაბიჯი 3: ატვირთეთ კალკულატორის კოდი

ატვირთეთ კალკულატორის კოდი
ატვირთეთ კალკულატორის კოდი
ატვირთეთ კალკულატორის კოდი
ატვირთეთ კალკულატორის კოდი

ბიბლიოთეკის დაყენების შემდეგ დააკავშირეთ ეკრანი Arduino– სთან და დააკოპირეთ შემდეგი კოდი და ატვირთეთ Arduino– ში. ბიბლიოთეკა#მოიცავს "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 // შავი-> თეთრი#განსაზღვრეთ YELLOW 0x001F // ლურჯი-> ყვითელი#განსაზღვრეთ CYAN 0xF800 // წითელი-> ცისფერი#განსაზღვრეთ ვარდისფერი 0x07E0 // მწვანე-> ვარდისფერი#განსაზღვრეთ RED 0x07FF // ცისფერი-> წითელი#განსაზღვრეთ მწვანე 0xF81F // ვარდისფერი-> მწვანე#განსაზღვრეთ ცისფერი 0xFFE0 // ყვითელი- > ლურჯი#განსაზღვრეთ შავი 0xFFFF // თეთრი-> შავი#განსაზღვრეთ MINPRESSURE 10#განსაზღვრეთ MAXPRESSURE 1000/*_ მინიჭებული _*//*_ დაკალიბრება TFT LCD _*/#განსაზღვრეთ TS_MINX 125#განსაზღვრეთ TS_MINY 85#განსაზღვრეთ TS_MAXX 965#განსაზღვრეთ TS _ კალიბრაციის დასასრული _*/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, ნომერი; დამამშვიდებელი მოქმედება; ლოგიკური შედეგი = ყალბი; void setup () {Serial.begin (9600); // გამოიყენეთ სერიული მონიტორი გამართვისთვის tft.reset (); // ყოველთვის გადატვირთეთ დაწყებისას tft.begin (0x9341); // ჩემი LCD იყენებს LIL9341 ინტერფეისის დრაივერს IC tft.setRotation (2); // მე უბრალოდ ვიმოძრავე ისე, რომ დენის ჯეკი იყოს ზემოთ - სურვილისამებრ tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } void loop () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // სერიული. ბეჭდვა (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);; დაბრუნება p;} void DetectButtons () {if (X0) // ღილაკების გამოვლენა სვეტში 1 {if (Y> 0 && Y <85) // გაუქმების ღილაკზე დაჭერით {Serial.println ("Button Cancel"); ნომერი = Num1 = Num2 = 0; შედეგი = ყალბი;} თუ (Y> 85 && Y <140) // თუ ღილაკზე 1 დაჭერილია {Serial.println ("ღილაკი 1"); თუ (რიცხვი == 0) ნომერი = 1; else ნომერი = (ნომერი*10) + 1; // ორჯერ დაჭერილი} if (Y> 140 && Y <192) // თუ ღილაკ 4 დაჭერილია {Serial.println ("ღილაკი 4"); თუ (რიცხვი == 0) ნომერი = 4; else ნომერი = (ნომერი*10) + 4; // ორჯერ დაჭერილი} თუ (Y> 192 && Y <245) // თუ ღილაკზე 7 დაჭერილია {Serial.println ("ღილაკი 7"); თუ (რიცხვი == 0) ნომერი = 7; else ნომერი = (ნომერი*10) + 7; // ორჯერ დაჭერილი}} if (X50) // ღილაკების გამოვლენა სვეტში 2 {if (Y> 0 && Y <85) {Serial.println ("ღილაკი 0"); // ღილაკი 0 დაჭერილია თუ (რიცხვი == 0) ნომერი = 0; else ნომერი = (ნომერი*10) + 0; // ორჯერ დაჭერილი} if (Y> 85 && Y <140) {Serial.println ("ღილაკი 2"); თუ (რიცხვი == 0) ნომერი = 2; else ნომერი = (ნომერი*10) + 2; // ორჯერ დაჭერილი} if (Y> 140 && Y <192) {Serial.println ("ღილაკი 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 ("ღილაკი 6"); თუ (რიცხვი == 0) ნომერი = 6; else ნომერი = (ნომერი*10) + 6; // ორჯერ დაჭერილი} if (Y> 192 && Y <245) {Serial.println ("ღილაკი 9"); თუ (რიცხვი == 0) ნომერი = 9; else ნომერი = (ნომერი*10) + 9; // ორჯერ დაჭერილი}} if (X165) // ღილაკების გამოვლენა 3 სვეტზე {Num1 = ნომერი; რიცხვი = 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 ("დევეზია"); მოქმედება = 4; tft.println ('/');} შეფერხება (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; if (action == 2) ნომერი = Num1-Num2; if (action == 3) ნომერი = Num1*Num2; if (action == 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, შავი); // დახაზეთ მეორე და მეოთხე სვეტი for (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, WHITE); // კლავიატურის ლაბლების ჩვენება (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– სთან ერთად.

გირჩევთ: