Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

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.

Zuverlässige LCD-Stoppuhr mit Arduino Nano bauen – ohne Potentiometer

Herstellungsprozess

  1. 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
  2. Intelligente Jalousien: Automatische Lichtsteuerung mit Arduino & Solarenergie
  3. Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
  4. Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
  5. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  6. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
  7. DIY-Oszilloskop mit Arduino Nano (10 Hz–50 kHz) und 128×64-LCD
  8. DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
  9. Arduino 101: Schrittzähler (Pedometer) mit DHT11 & LCD-Display
  10. Arduino RGB-Farbmischer bauen – Schritt-für-Schritt-Anleitung