Arduino TFT LCD Touchscreen Tutorial – Schritt-für-Schritt Anleitung
In diesem Tutorial lernen Sie, wie Sie einen TFT LCD Touchscreen mit Arduino verwenden. Drei praktische Beispiele werden vorgestellt: Verwendete Pins: GND, digitale Pins 8–13, Pin 14. Da die 5V-Pins vom TFT-Shield belegt sind, wird Pin 13 als VCC für den Ultraschallsensor genutzt (im Setup auf HIGH gesetzt). Verwendet werden die UTFT und URTouch Bibliotheken von Henning Karlsen (RinkyDinkElectronics.com). Diese unterstützen viele TFT-Modelle, Shields und Controller. Der Code ist modular aufgebaut: Haupt-Schleife verwaltet Seiten (Startbildschirm, Beispiel 1–3), benutzerdefinierte Funktionen zeichnen GUIs und behandeln Touch-Events. Die Funktion Im Loop wird geprüft, welche Seite aktiv ist ( Flappy-Bird-Klon mit Physik (Schwerkraft, Kollisionserkennung, Score). Steuerung per Touch (ganzer Bildschirm) oder Taster. Code im vollständigen Listing enthalten, wird in separatem Tutorial detailiert erklärt. Für das Spiel wird eine zusätzliche Übersicht



Benötigte Komponenten

Schaltplan

Software & Bibliotheken
Code-Struktur
Hauptprogramm (Ausschnitt)
#include <UTFT.h>
#include <URTouch.h>
// Objekte erstellen - Parameter an Ihr Display/Shield anpassen!
UTFT myGLCD(SSD1289, 38, 39, 40, 41);
URTouch myTouch(6, 5, 4, 3, 2);
// Fonts & Variablen
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
extern unsigned int bird01[0x41A];
int x, y;
char currentPage, selectedUnit;
// Ultraschallsensor
const int VCC = 13;
const int trigPin = 11;
const int echoPin = 12;
long duration;
int distanceInch, distanceCm;
// RGB LED
const int redLed = 10, greenLed = 9, blueLed = 8;
int xR = 38, xG = 38, xB = 38;
// Birduino Spiel
int xP = 319, yP = 100, yB = 30;
int fallRateInt = 0;
float fallRate = 0;
int score = 0;
const int button = 14;
int buttonState = 0;
void setup() {
myGLCD.InitLCD();
myGLCD.clrScr();
myTouch.InitTouch();
myTouch.setPrecision(PREC_MEDIUM);
pinMode(VCC, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(button, INPUT);
digitalWrite(VCC, HIGH);
drawHomeScreen();
currentPage = '0';
selectedUnit = '0';
}Startbildschirm zeichnen
drawHomeScreen() erstellt die GUI mit drei Buttons (Distanzsensor, RGB LED, Birduino Spiel). Buttons werden als gefüllte abgerundete Rechtecke mit Rahmen und Text gezeichnet.Touch-Event-Handling
currentPage). Bei Touch-Eingabe werden Koordinaten ausgelesen und geprüft, ob sie in einem Button-Bereich liegen. Entsprechende Zeichnungs-Funktionen werden aufgerufen und currentPage aktualisiert.Beispiel 1: Entfernungsmessung
drawDistanceSensor() zeichnet die GUI einmalig. getDistance() wird zyklisch aufgerufen, liest den HC-SR04 aus und zeigt den Wert in cm oder Zoll (SevenSegNumFont) an. Touch-Buttons für Einheitenwahl und Zurück.void getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * 0.034 / 2;
distanceInch = distanceCm / 2.53;
if (selectedUnit == '0' && distanceCm <= 400) {
myGLCD.setFont(SevenSegNumFont);
myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 0);
myGLCD.printNumI(distanceCm, 130, 145, 3, '0');
myGLCD.setFont(BigFont);
myGLCD.print("cm", 235, 178);
}
if (selectedUnit == '1' && distanceCm <= 160) {
myGLCD.setFont(SevenSegNumFont);
myGLCD.setColor(0, 255, 0);
myGLCD.setBackColor(0, 0, 0);
myGLCD.printNumI(distanceInch, 130, 145, 3, '0');
myGLCD.setFont(BigFont);
myGLCD.print("inch", 235, 178);
}
delay(10);
}Beispiel 2: RGB LED Steuerung
drawLedControl() zeichnet drei Schieberegler (R, G, B). setLedColor() liest Touch-Koordinaten, begrenzt sie auf Slider-Bereiche, mapped X-Werte (38–310) auf PWM (0–255) und aktualisiert LED und Anzeige.Beispiel 3: Birduino Spiel
Vollständiger Quellcode
.c Datei (Bitmap des Vogels) benötigt. Download-Link im Originalartikel./* Arduino TFT Tutorial
* by Dejan Nedelkovski, www.HowToMechatronics.com
* Uses UTFT & URTouch libraries by Henning Karlsen (RinkyDinkElectronics.com)
*/
// ... vollständiger Code wie im Original, alle Funktionen enthalten:
// drawHomeScreen, drawFrame, drawDistanceSensor, getDistance,
// drawLedControl, setLedColor, drawGround, drawPilars, drawBird,
// gameOver, restartGame
Herstellungsprozess
- Sicheres Arduino RFID-Schloss bauen – Schritt-für-Schritt-Anleitung
- Tragbares kapazitives Touch-Piano mit Arduino & MPR121 – Bauanleitung
- LCD-Animationen & Spiele mit Arduino UNO erstellen
- Bilder auf 1,17-Zoll-TFT-LCD mit Arduino UNO anzeigen
- BMP-Bilder von SD-Karte auf Arduino 2,4″ TFT-LCD-Shield anzeigen
- Touchscreen-Probleme beim 2,4″ TFT LCD Shield für Arduino lösen
- Zuverlässige Arduino-Wetterstation mit DHT-Sensoren bauen
- Arduino Nano Fingerabdruck-Sensor-Projekt – Schritt-für-Schritt-Tutorial
- Arduino LCD-Projekt: 16×2 Display mit Tastern & Widerständen selbst bauen
- Arduino Einsteiger Tutorial #1: Erstes Projekt (Blink)