Zuverlässige LCD-Stoppuhr mit Arduino Nano bauen – ohne Potentiometer
Komponenten und Materialien
| Breadboard (generisch) | 1 |
| Arduino Nano R3 | 1 |
| Adafruit Standard LCD – 16×2 Weiß auf Blau | 1 |
| SparkFun Drucktaster 12 mm | 3 |
| Widerstand 10 kΩ | 5 |
| Widerstand 221 Ω | 1 |
| Jumper-Kabel (generisch) | 26 |
Über dieses Projekt
Hallo zusammen!
Dieses Projekt ist ein einfaches Lernprojekt für den Einstieg in die LCD-Programmierung. Verwendet werden ein Arduino Nano und ein QUAPASS 1602A 16×2 LCD. Die Stoppuhr zählt Stunden, Minuten und Sekunden. Auch die LCD-Helligkeit lässt sich einstellen.
Mit einer kleinen Code-Änderung könnte man auch Hundertstelsekunden zählen, doch mein LCD schafft die nötige Bildwiederholrate nicht.
Die Zeitmessung ist fast perfekt justiert (meine Stoppuhr weist ca. 15 % Abweichung auf: bei realen 10 Minuten zeigt sie 10 Minuten und 2 Sekunden an). Werden Änderungen im Start-Unterprogramm (im Code stopwatch) vorgenommen, müssen auch die Zeitwerte angepasst werden, da die Arduino-Ausführungszeit jedes Befehls Einfluss hat.
Schritt 1: Verkabelung
Verbinden Sie Arduino und LCD gemäß dem Schaltplan.
Schritt 2: Code hochladen
Kopieren Sie den untenstehenden Code in die Arduino IDE, schließen Sie den Arduino per USB an und klicken Sie auf „Hochladen“.
Schritt 3: Viel Spaß!
Genießen Sie Ihre einfache, selbstgebaute LCD-Stoppuhr. Fragen gerne in die Kommentare.
Code
Der vollständige Sketch für die Stoppuhr. Einfach in die Arduino IDE kopieren und auf den Arduino laden.
/* Einfache LCD-Stoppuhr mit Stopp-, Start-, Reset- und Runden-Taste. */
// Bibliothek für LCD einbinden
#include <LiquidCrystal.h>
// LCD-Pins festlegen (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Zeitvariablen
int h = 0, m = 0, s = 0, ms = 0;
// Tasten-Pins
const int startPin = 8;
const int stopPin = 9;
const int resetPin = 10;
// Tasten-Zustände
int start = 0, stop1 = 0, reset = 0;
// Helligkeitssteuerung (PWM-Pin 6)
int brightnessPin = 6;
int brightness = 100; // 0–255
void setup() {
analogWrite(brightnessPin, brightness); // Helligkeit setzen
lcd.begin(16, 2); // LCD initialisieren
pinMode(startPin, INPUT);
pinMode(stopPin, INPUT);
pinMode(resetPin, INPUT);
pinMode(brightnessPin, OUTPUT);
}
void loop() {
lcd.setCursor(0, 1);
lcd.print("STOPWATCH");
lcd.setCursor(0, 0);
lcd.print("ZEIT:");
lcd.print(h); lcd.print(":");
lcd.print(m); lcd.print(":");
lcd.print(s);
start = digitalRead(startPin);
if (start == HIGH) {
stopwatch(); // Springt in Stoppuhr-Unterprogramm
}
}
// ---------- UNTERPROGRAMME ----------
void stopwatch() {
lcd.setCursor(0, 0);
lcd.print("ZEIT:");
lcd.print(h); lcd.print(":");
lcd.print(m); lcd.print(":");
lcd.print(s);
ms += 10;
delay(10);
if (ms == 590) lcd.clear();
if (ms == 590) { // Sekunde hochzählen
ms = 0;
s++;
}
if (s == 60) { // Minute hochzählen
s = 0;
m++;
}
if (m == 60) { // Stunde hochzählen
m = 0;
h++;
}
lcd.setCursor(0, 1);
lcd.print("STOPWATCH");
stop1 = digitalRead(stopPin);
if (stop1 == HIGH) {
stopwatchStop();
} else {
stopwatch(); // Rekursiver Aufruf für laufende Zeitmessung
}
}
void stopwatchStop() {
lcd.setCursor(0, 0);
lcd.print("ZEIT:");
lcd.print(h); lcd.print(":");
lcd.print(m); lcd.print(":");
lcd.print(s);
lcd.setCursor(0, 1);
lcd.print("STOPWATCH");
start = digitalRead(startPin);
if (start == HIGH) stopwatch();
reset = digitalRead(resetPin);
if (reset == HIGH) stopwatchReset();
else stopwatchStop();
}
void stopwatchReset() {
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("STOPWATCH");
h = 0; m = 0; s = 0;
return; // Zurück zum Aufrufer
}
Benötigte Bibliothek
LiquidCrystal Library (GitHub)
Schaltplan
Der Schaltplan zeigt die Verdrahtung aller Komponenten.
Herstellungsprozess
- 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
- Intelligente Jalousien: Automatische Lichtsteuerung mit Arduino & Solarenergie
- Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
- Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
- DIY-Oszilloskop mit Arduino Nano (10 Hz–50 kHz) und 128×64-LCD
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
- Arduino 101: Schrittzähler (Pedometer) mit DHT11 & LCD-Display
- Arduino RGB-Farbmischer bauen – Schritt-für-Schritt-Anleitung