- Erforderliche Materialien:
- Lernen Sie das TFT LCD Screen Module kennen:
- Kalibrieren des TFT-LCD-Bildschirms für den Touchscreen:
- TFT LCD-Verbindungen mit Arduino:
- Programmieren Ihres Arduino für TFT LCD:
- Arbeiten:
Arduino hat immer dazu beigetragen, Projekte einfach zu erstellen und attraktiver zu gestalten. Das Programmieren eines LCD-Bildschirms mit Touchscreen-Option mag sich als komplizierte Aufgabe anhören, aber die Arduino-Bibliotheken und -Schilde hatten es wirklich einfach gemacht. In diesem Projekt werden wir einen 2,4-Zoll-Arduino-TFT-LCD- Bildschirm verwenden, um unseren eigenen Arduino-Touchscreen-Rechner zu erstellen, der alle grundlegenden Berechnungen wie Addition, Subtraktion, Division und Multiplikation durchführen kann.
Erforderliche Materialien:
- Arduino Uno
- 2,4 ”TFT LCD Display Shield
- 9V Batterie.
Lernen Sie das TFT LCD Screen Module kennen:
Bevor wir uns mit dem Projekt befassen, ist es wichtig zu wissen, wie dieses 2,4-Zoll-TFT-LCD-Modul funktioniert und welche Typen darin enthalten sind. Werfen wir einen Blick auf die Pinbelegung dieses 2,4-Zoll-TFT-LCD-Bildschirmmoduls.
Wie Sie sehen können, gibt es 28 Pins, die perfekt in jedes Arduino Uno / Arduino Mega Board passen. Eine kleine Klassifizierung dieser Stifte ist in der folgenden Tabelle angegeben.
Wie Sie sehen können, können die Pins in vier Hauptklassifizierungen eingeteilt werden, wie z. B. LCD-Befehlsstifte, LCD-Datenstifte, SD-Kartenstifte und Stromversorgungsstifte. Wir müssen nicht viel über die detaillierte Funktionsweise dieser Stifte wissen, da sie von behandelt werden unsere Arduino Bibliothek.
Sie finden auch einen SD-Kartensteckplatz am unteren Rand des oben gezeigten Moduls, über den eine SD-Karte mit BMP-Bilddateien geladen werden kann. Diese Bilder können mit dem Arduino-Programm auf unserem TFT-LCD-Bildschirm angezeigt werden.
Ein weiterer wichtiger Punkt ist Ihr Interface-IC. Es gibt viele Arten von TFT-Modulen auf dem Markt, angefangen vom originalen Adafruit TFT LCD-Modul bis hin zu billigen chinesischen Klonen. Ein Programm, das perfekt für Ihren Adafruit-Schild funktioniert, funktioniert möglicherweise nicht für chinesische Breakout-Boards. Daher ist es sehr wichtig zu wissen, welche Arten von LCD-Displays Sie in der Hand halten. Dieses Detail muss vom Verkäufer angefordert werden. Wenn Sie einen billigen Klon wie meinen haben, wird höchstwahrscheinlich der ili9341-Treiber-IC verwendet. Sie können dieser TFT-LCD-Schnittstelle mit dem Arduino-Tutorial folgen, um einige grundlegende Beispielprogramme auszuprobieren und sich mit dem LCD-Bildschirm vertraut zu machen. Schauen Sie sich auch unsere anderen TFT LCD-Projekte mit Arduino hier an:
- Verwendung von NeoPixel LED Strip mit Arduino und TFT LCD
- Smartphone-gesteuerte digitale Codesperre mit Arduino
Kalibrieren des TFT-LCD-Bildschirms für den Touchscreen:
Wenn Sie die Touchscreen-Funktion Ihres TFT-LCD-Moduls verwenden möchten, müssen Sie es kalibrieren, damit es ordnungsgemäß funktioniert. Ein LCD-Bildschirm ohne Kalibrierung funktioniert möglicherweise unwahrscheinlich. Beispielsweise können Sie an einer Stelle berühren und der TFT reagiert möglicherweise an einer anderen Stelle auf eine Berührung. Diese Kalibrierungsergebnisse sind nicht für alle Karten gleich, und Sie müssen dies alleine tun.
Die beste Methode zum Kalibrieren ist die Verwendung des Kalibrierungsbeispielprogramms (im Lieferumfang der Bibliothek enthalten) oder des seriellen Monitors, um Ihren Fehler zu erkennen. Da die Größe der Schaltflächen jedoch groß ist, sollte die Kalibrierung kein großes Problem darstellen. Im folgenden Programmierabschnitt werde ich auch erläutern, wie Sie Ihren Bildschirm kalibrieren können.
TFT LCD-Verbindungen mit Arduino:
Der 2,4-Zoll-TFT-LCD-Bildschirm ist ein perfekter Arduino Shield. Sie können den LCD-Bildschirm direkt auf den Arduino Uno schieben und er passt perfekt zu den Stiften und wird hineingeschoben. Aus Sicherheitsgründen sollten Sie jedoch das Programmier-Terminal Ihres Arduino UNO mit einem kleinen Isolierband abdecken, nur für den Fall, dass das Terminal mit Ihrem TFT-LCD-Bildschirm in Kontakt kommt. Das auf UNO montierte LCD sieht ungefähr so aus.
Programmieren Ihres Arduino für TFT LCD:
Wir verwenden die SPFD5408-Bibliothek, um diesen Arduino- Rechnercode zum Laufen zu bringen. Dies ist eine modifizierte Bibliothek von Adafruit und kann nahtlos mit unserem LCD-TFT-Modul zusammenarbeiten. Sie können das vollständige Programm am Ende dieses Artikels überprüfen.
Hinweis: Es ist sehr wichtig, dass Sie diese Bibliothek in Ihrer Arduino IDE oder diesem Programm installieren, um sie ohne Fehler zu kompilieren.
Um diese Bibliothek zu installieren, klicken Sie einfach auf den obigen Link, 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 Skizze -> Bibliothek einschließen -> ZIP-Bibliothek hinzufügen. Ein Browserfenster wird geöffnet, navigieren Sie zur ZIP-Datei und klicken Sie auf "OK". Bei Erfolg sollten Sie in der unteren linken Ecke von Arduino "Bibliothek zu Ihren Bibliotheken hinzugefügt" beachten. Eine ausführliche Anleitung dazu finden Sie im Interfacing-Tutorial.
Jetzt können Sie den folgenden Code in Ihrer Arduino IDE verwenden und auf Ihre Arduino UNO hochladen, damit der Touchscreen-Rechner funktioniert. Weiter unten habe ich den Code in kleine Segmente erklärt.
Wir brauchen drei Bibliotheken, damit dieses Programm funktioniert. Alle diese drei Bibliotheken wurden in der ZIP-Datei angegeben, die Sie über den oben angegebenen Link heruntergeladen haben. Ich habe sie einfach wie unten gezeigt in den Code aufgenommen.
#einschließen
Wie bereits erwähnt, müssen wir den LCD-Bildschirm kalibrieren, damit er wie erwartet funktioniert. Machen Sie sich jedoch keine Sorgen, dass die hier angegebenen Werte nahezu universell sind. Die Variablen TS_MINX, TS_MINY, TS_MAXX und TS_MAXY bestimmen die Kalibrierung des Bildschirms. Sie können um sie herum spielen, wenn Sie der Meinung sind, dass die Kalibrierung nicht zufriedenstellend ist.
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
Da wir wissen, dass der TFT-LCD-Bildschirm viele Farben anzeigen kann, müssen alle diese Farben als Hex-Wert eingegeben werden. Um die Lesbarkeit zu verbessern, weisen wir diese Werte einer Variablen zu, wie unten gezeigt.
#define WHITE 0x0000 // Schwarz-> Weiß #define YELLOW 0x001F // Blau-> Gelb #define CYAN 0xF800 // Rot-> Cyan #define PINK 0x07E0 // Grün-> Pink #define ROT 0x07FF // Cyan -> Rot #define GREEN 0xF81F // Pink -> Green #define BLUE 0xFFE0 // Yellow-> Blue #define BLACK 0xFFFF // White-> Black
Okay, jetzt können wir in den Programmierteil einsteigen. Dieses Programm besteht aus drei Abschnitten. Eine besteht darin, eine Benutzeroberfläche eines Taschenrechners mit Schaltflächen und Anzeige zu erstellen. Erkennen Sie dann die Schaltflächen anhand der Berührung des Benutzers, berechnen Sie die Ergebnisse und zeigen Sie sie an. Lasst uns eins nach dem anderen durchkommen.
1. Erstellen einer Benutzeroberfläche von Calculator:
Hier können Sie viel Kreativität einsetzen, um die Benutzeroberfläche des Taschenrechners zu gestalten. Ich habe einfach ein Grundlayout eines Taschenrechners mit 16 Tasten und einer Anzeigeeinheit erstellt. Sie müssen das Design so konstruieren, als würden Sie etwas auf MS-Farbe zeichnen. Mit den hinzugefügten Bibliotheken können Sie Linien, Rechtecke, Kreise, Zeichen, Zeichenfolgen und vieles mehr in jeder bevorzugten Farbe zeichnen. Sie können die verfügbaren Funktionen aus diesem Artikel verstehen.
Ich habe die Fähigkeiten zum Zeichnen von Linien und Kästchen verwendet, um eine Benutzeroberfläche zu entwerfen, die dem Taschenrechner der 90er Jahre sehr ähnlich sieht. Jede Box hat eine Breite und Höhe von 60 Pixel.
// Zeichne das Ergebnisfeld 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); // Zeichne dritte Spalte 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); // Zeichne die zweite und vierte Spalte für (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, BLAU); tft.fillRect (60, b, 60, 60, SCHWARZ);} // Horizontale Linien zeichnen für (int h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WEISS); // 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 ++) {für (int i = 0; i <4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 *) j)); tft.setTextSize (3); tft.setTextColor (WHITE); tft.println (Symbol);
2. Erkennen der Tasten:
Eine weitere herausfordernde Aufgabe ist das Erkennen der Benutzerberührung. Jedes Mal, wenn der Benutzer irgendwo berührt, können wir feststellen, wo sich die X- und Y-Position des Pixels befindet, das er berührt hat. Dieser Wert kann auf dem seriellen Monitor mit dem unten gezeigten Ausdruck angezeigt werden.
TSPoint p = waitTouch (); X = py; Y = px; Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y);
Da haben wir die Box mit einer Breite und Höhe von jeweils 60 Pixel entworfen und haben vier Zeilen und für Spalten ab (0,0). Die Position jeder Box kann wie in der folgenden Abbildung gezeigt vorhergesagt werden.
Im praktischen Fall ist dies jedoch nicht das Ergebnis. Aufgrund des Kalibrierungsproblems besteht ein großer Unterschied zwischen dem erwarteten und dem tatsächlichen Wert.
Um die genaue Position der Box vorherzusagen, müssen Sie auf die Linie klicken und die entsprechende Position auf dem seriellen Monitor überprüfen. Dies ist vielleicht nicht die professionellste Art, aber es funktioniert trotzdem perfekt. Ich habe die Position aller Linien gemessen und die folgenden Werte erhalten.
Nun, da wir die Position aller Boxen kennen. Wenn ein Benutzer irgendwo berührt, können wir vorhersagen, wo er berührt hat, indem wir seine (X, Y) -Werte mit dem Wert für jedes Feld vergleichen, wie unten gezeigt.
if (X <105 && X> 50) // Erkennen von Schaltflächen in Spalte 2 {if (Y> 0 && Y <85) {Serial.println ("Schaltfläche 0"); // Taste 0 wird gedrückt, wenn (Number == 0) Number = 0; sonst Zahl = (Zahl * 10) + 0; // zweimal gedrückt} if (Y> 85 && Y <140) {Serial.println ("Button 2"); if (Number == 0) Number = 2; sonst Zahl = (Zahl * 10) + 2; // zweimal gedrückt}
3. Zahlen anzeigen und Ergebnis berechnen:
Der letzte Schritt besteht darin, das Ergebnis zu berechnen und auf dem TFT-LCD-Bildschirm anzuzeigen. Dieser Arduino-Rechner kann nur mit 2 Zahlen arbeiten. Diese beiden Zahlen werden als Variablen "Num1" und "Num2" bezeichnet. Die Variable „Number“ gibt und nimmt Wert von Num1 und Num2 und trägt auch das Ergebnis.
Wenn eine Verwendung eine Taste drückt, wird der Zahl eine Ziffer hinzugefügt. Wenn eine andere Taste gedrückt wird, wird die vorherige Ziffer mit 10 multipliziert und die neue Nummer hinzugefügt. Wenn wir zum Beispiel 8 drücken und dann 5 und dann 7 drücken, dann hält zuerst die Variable 8, dann (8 * 10) + 5 = 85, dann (85 * 10) +7 = 857. Schließlich hat die Variable also der Wert 857 damit.
if (Y> 192 && Y <245) {Serial.println ("Button 8"); if (Number == 0) Number = 8; sonst Zahl = (Zahl * 10) + 8; // Erneut gedrückt}
Wenn wir eine Operation wie Addition ausführen und der Benutzer die Additionstaste drückt, wird der Wert von Number an Num1 übertragen, und Number wird auf Null gesetzt, damit er bereit ist, die Eingabe für die zweite Nummer zu übernehmen.
Wenn Equal gedrückt wird, wird der Wert in Number an Num2 gesendet und dann wird die entsprechende Berechnung (in diesem Fall Addition) durchgeführt und das Ergebnis erneut in der Variablen "Number" gespeichert.
Schließlich wird dieser Wert auf dem LCD-Bildschirm angezeigt.
Arbeiten:
Die Arbeit mit diesem Arduino Touchscreen-Rechner ist einfach. Sie müssen den unten angegebenen Code auf Ihr Arduino hochladen und ihn starten. Der Taschenrechner wird auf Ihrem LCD-Bildschirm angezeigt.
Jetzt können Sie eine beliebige Zahl eingeben und Ihre Berechnungen durchführen. Es ist derzeit auf nur zwei Operanden und nur einen Operator beschränkt. Sie können den Code jedoch so anpassen, dass er viele Optionen bietet.
Sie müssen jedes Mal nach einer Berechnung das „C“ drücken, um den Wert auf dem Bildschirm zu löschen. Ich hoffe, Sie haben das Projekt verstanden und es genossen, etwas Ähnliches zu bauen. Wenn Sie irgendwelche Zweifel haben, können Sie diese gerne in Foren oder im Kommentarbereich unten posten. Bis zum nächsten Mal mit einem weiteren interessanten Projekt bis dahin viel Spaß beim Rechnen !!
Überprüfen Sie auch das Demonstrationsvideo unten.