Inhaltsverzeichnis:

Arduino TFT-LCD-Touchscreen-Rechner - Gunook
Arduino TFT-LCD-Touchscreen-Rechner - Gunook

Video: Arduino TFT-LCD-Touchscreen-Rechner - Gunook

Video: Arduino TFT-LCD-Touchscreen-Rechner - Gunook
Video: ARDUINO kurz gefasst - 2.8" TFT Touchscreen Shield 2024, November
Anonim
Arduino TFT-LCD-Touchscreen-Rechner
Arduino TFT-LCD-Touchscreen-Rechner

Hallo Leute in dieser Anleitung lernen wir, wie man einen Taschenrechner mit Arduino Uno mit 3,5 TFT-LCD-Touchscreen-Display herstellt. Also schreiben wir einen Code und laden ihn auf Arduino hoch, der die Rechnerschnittstelle auf dem Display anzeigt und die Touch-Funktionalität übernimmt und Geben Sie die Ausgabe grundlegender mathematischer Ausdrücke an.

Schritt 1: Dinge, die Sie brauchen

Dinge, die du brauchst
Dinge, die du brauchst
Dinge, die du brauchst
Dinge, die du brauchst

Für dieses Projekt benötigen Sie folgende Dinge: 3,5 TFT LCD DISPLAYARDUINO UNO

Schritt 2: Installieren der TFT-Display-Bibliothek in der Arduino IDE

Installieren der TFT-Display-Bibliothek in der Arduino IDE
Installieren der TFT-Display-Bibliothek in der Arduino IDE

Wir verwenden die SPFD5408-Bibliothek:

um diesen Arduino-Rechner-Code zum Laufen zu bringen. Dies ist eine modifizierte Bibliothek von Adafruit und kann nahtlos mit unserem LCD-TFT-Modul arbeiten. Es ist sehr wichtig, dass Sie diese Bibliothek in Ihrer Arduino-IDE installieren oder dieses Programm fehlerfrei kompilieren. Um diese Bibliothek zu installieren, können Sie einfach auf den obigen Link klicken, der Sie zu einer Github-Seite führt. Klicken Sie dort auf Klonen oder Herunterladen und wählen Sie „ZIP herunterladen“. Eine Zip-Datei wird heruntergeladen. Öffnen Sie nun die Arduino IDE und wählen Sie Sketch -> Include Librarey -> Add. ZIP library. Es öffnet sich ein Browserfenster, navigieren Sie zur ZIP-Datei und klicken Sie auf „OK“. Sie sollten "Bibliothek zu Ihren Bibliotheken hinzugefügt" in der unteren linken Ecke von Arduino bemerken.

Schritt 3: Laden Sie den Rechnercode hoch

Laden Sie den Rechnercode hoch
Laden Sie den Rechnercode hoch
Laden Sie den Rechnercode hoch
Laden Sie den Rechnercode hoch

Verbinden Sie nach der Installation der Bibliothek das Display mit Arduino und kopieren Sie den folgenden Code und laden Sie ihn auf Arduino hoch./*_Import Libraries_*/#include "SPFD5408_Adafruit_GFX.h" // Kerngrafikbibliothek#include "SPFD5408_Adafruit_TFTLCD.h" // Hardwarespezifisch library#include "SPFD5408_TouchScreen.h"/*_End of Libraries_*//*_Define LCD Pins (Ich habe die Standardwerte zugewiesen)_*/#define YP A1 // muss ein analoger Pin sein, verwende "An" Notation!# XM definieren A2 // muss ein analoger Pin sein, verwende "An" Notation!#define YM 7 // kann ein digitaler Pin sein#define XP 6 // kann ein digitaler Pin sein#define LCD_CS A3#define LCD_CD A2#define LCD_WR A1#define LCD_RD A0#define LCD_RESET A4/*_Ende der Definitionen_*//*_Farben und Druck benennen_*/#define WHITE 0x0000 //Schwarz->Weiß#define YELLOW 0x001F //define->Yellow#define //Rot->Cyan#define PINK 0x07E0 //Grün-> Pink#define ROT 0x07FF //Cyan -> Rot#define GRÜN 0xF81F //Pink -> Grün #define BLUE 0xFFE0 //Gelb- > Blau#define SCHWARZ 0xFFFF //Weiß-> Schwarz#define MINPRESSURE 10#define MAXPRESSURE 1000/*_Assigned_*//*_TFT LCD kalibrieren_*/#define TS_MINX 125#define TS_MINY 85#define#define 905/MAXX 965Ydefine*MAXX 965 _Ende der Kalibrierung_*/TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); // 300 ist die EmpfindlichkeitAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); //Kommunikation mit LCDString-Symbol starten[4][4] = { { "7", "8", "9", "/" }, { "4", "5", "6", "*" }, { "1", "2", "3", "-" }, { "C", "0", "=", "+" }}; intX, Y; lang Num1, Num2, Zahl; Zeichenaktion; boolesches Ergebnis = false;void setup () { Serial.begin (9600); // Verwenden Sie den seriellen Monitor zum Debuggen von tft.reset (); // Beim Start immer zurücksetzen tft.begin (0x9341); // Mein LCD verwendet LIL9341 Schnittstellentreiber IC tft.setRotation (2); // Ich habe nur so gedreht, dass die Strombuchse nach oben zeigt - optional tft.fillScreen(WHITE); 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 (); delay(300);}TSPoint waitTouch() { TSPoint p; do { p = ts.getPoint(); pinMode (XM, AUSGANG); pinMode (YP, AUSGANG); } while((p.z MAXPRESSURE)); p.x = map(p.x, TS_MINX, TS_MAXX, 0, 320); p.y = map(p.y, TS_MINY, TS_MAXY, 0, 240); return p;}void DetectButtons(){ if (X0) //Erkennen von Buttons in Spalte 1 { if (Y>0 && Y<85) //Wenn Abbrechen Button gedrückt wird {Serial.println ("Button Cancel"); Zahl=Zahl1=Zahl2=0; result=false;} if (Y>85 && Y<140) //Wenn Taste 1 gedrückt wird {Serial.println ("Taste 1"); if (Zahl==0) Zahl=1; sonst Zahl = (Zahl*10) + 1; // Zweimal gedrückt} if (Y>140 && Y<192) //Wenn Taste 4 gedrückt wird {Serial.println ("Taste 4"); if (Zahl==0) Zahl=4; sonst Zahl = (Zahl*10) + 4; // Zweimal gedrückt} if (Y>192 && Y<245) //Wenn Taste 7 gedrückt wird {Serial.println ("Taste 7"); if (Zahl==0) Zahl=7; sonst Zahl = (Zahl*10) + 7; // Zweimal gedrückt}} if (X50) // Tasten auf Spalte 2 erkennen { if (Y>0 && Y<85) {Serial.println ("Button 0"); // Taste 0 wird gedrückt, wenn (Zahl = = 0) Zahl = 0; sonst Zahl = (Zahl*10) + 0; // Zweimal gedrückt} if (Y>85 && Y<140) {Serial.println ("Button 2"); wenn (Zahl==0) Zahl=2; sonst Zahl = (Zahl*10) + 2; // Zweimal gedrückt} if (Y>140 && Y<192) {Serial.println ("Button 5"); if (Zahl==0) Zahl=5; sonst Zahl = (Zahl*10) + 5; //Zweimal gedrückt} if (Y>192 && Y<245) {Serial.println ("Button 8"); if (Zahl==0) Zahl=8; sonst Zahl = (Zahl*10) + 8; //Zweimal gedrückt}} if (X105) //Erkennen von Schaltflächen in Spalte 3 { if (Y>0 && Y<85) {Serial.println ("Button Equal"); Zahl2=Zahl; Ergebnis = wahr; } if (Y>85 && Y<140) {Serial.println ("Button 3"); if (Zahl==0) Zahl=3; sonst Zahl = (Zahl*10) + 3; // Zweimal gedrückt} if (Y>140 && Y<192) {Serial.println ("Button 6"); if (Zahl==0) Zahl=6; sonst Zahl = (Zahl*10) + 6; // Zweimal gedrückt} if (Y>192 && Y<245) {Serial.println ("Button 9"); if (Zahl==0) Zahl=9; sonst Zahl = (Zahl*10) + 9; //Zweimal gedrückt}} if (X165) //Erkennen von Schaltflächen in Spalte 3 { Num1 = Number; Zahl =0; tft.setCursor(200, 20); tft.setTextColor(RED); if (Y>0 && Y<85) {Serial.println ("Addition"); Aktion = 1; tft.println('+');} if (Y>85 && Y<140) {Serial.println ("Subtraktion"); Aktion = 2; tft.println('-');} if (Y>140 && Y<192) {Serial.println ("Multiplikation"); Aktion = 3; tft.println('*');} if (Y>192 && Y<245) {Serial.println ("Entwicklung"); Aktion = 4; tft.println('/');} Verzögerung(300); } }void CalculateResult(){ if (action==1) Number = Num1+Num2; if (Aktion==2) Zahl = Num1-Num2; if (Aktion==3) Zahl = Num1*Num2; if (Aktion==4) Zahl = Num1/Num2; } ungültiges DisplayResult () { tft.fillRect (0, 0, 240, 80, CYAN); // Ergebnisbox löschen tft.setCursor (10, 20); tft.setTextSize(4); tft.setTextColor(SCHWARZ); tft.println(Zahl); // neuen Wert aktualisieren} ungültig IntroScreen () { tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor(RED); tft.println("ARDUINO"); tft.setCursor (30, 160); tft.println("RECHNER"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor(BLAU); tft.println("-Circut Digest"); delay(1800);}void draw_BoxNButtons(){//Zeichnen Sie die Ergebnisbox tft.fillRect (0, 0, 240, 80, CYAN); // Erste Spalte zeichnen tft.fillRect (0, 260, 60, 60, RED); tft.fillRect (0, 200, 60, 60, SCHWARZ); tft.fillRect (0, 140, 60, 60, SCHWARZ); tft.fillRect (0, 80, 60, 60, SCHWARZ); //Dritte Spalte zeichnen tft.fillRect (120, 260, 60, 60, GRÜN); tft.fillRect (120, 200, 60, 60, SCHWARZ); tft.fillRect (120, 140, 60, 60, SCHWARZ); tft.fillRect (120, 80, 60, 60, SCHWARZ); //Zeige die zweite und vierte Spalte für (int b=260; b>=80; b-=60) { tft.fillRect (180, b, 60, 60, BLUE); tft.fillRect (60, b, 60, 60, BLACK);} // Horizontale Linien zeichnen für (int h=80; h<=320; h+=60) tft.drawFastHLine(0, h, 240, WHITE); //Vertikale Linien zeichnen für (int v=0; v<=240; v+=60) tft.drawFastVLine(v, 80, 240, WHITE); // Tastaturbeschriftungen anzeigen für (int j=0;j<4;j++) { for (int i=0;i<4;i++) { tft.setCursor(22 + (60*i), 100 + (60* J)); tft.setTextSize(3); tft.setTextColor(WEISS); tft.println(symbol[j]); } }}Nachdem Sie den Code hochgeladen haben, sehen Sie, wie der Rechner in Ihrem Display als meiner läuft und Sie können jetzt grundlegende mathematische Berechnungen damit durchführen. Viel Spaß beim Erstellen Ihres eigenen Taschenrechners mit Arduino UNO.

Empfohlen: