Multi-Display LCD-Wecker mit 10 anpassbaren Ziffernblättern
Komponenten und Materialien
| Komponente | Anzahl | Hinweise |
|---|---|---|
| Arduino UNO (oder ATmega328P auf PCB) | 1 | Bei PCB: 16 MHz Quarz, 2×22 pF, 7805, 100 µF, 3×100 nF, 1 µF |
| Widerstand 10 kΩ | 4 | Pull-ups für Taster |
| Widerstand 470 Ω | 1 | Buzzer / Hintergrundbeleuchtung |
| LCD 1602 (16×2, weiß auf blau) | 1 | Standard HD44780-kompatibel |
| Summer (passiv) | 1 | Mit 10 µF DC-Entkopplung |
| Kondensator 10 µF | 1 | Für Summer |
| Echtzeituhr DS1302 | 1 | Mit 32,768 kHz Quarz |
| Knopfzelle CR2032 + Halter | 1 | Bei PCB: CR1220 |
| Kippschalter (Quecksilber/verkapselt) | 1 | Zum Ausschalten des Alarms durch Schütteln |
| Trimmpotentiometer 10 kΩ | 1 | LCD-Kontrast |
Benötigte Werkzeuge
- 3D-Drucker (für Gehäuse, 0,2 mm Schichthöhe, keine Stützen)
Software
- Arduino IDE
Projektbeschreibung
Dieser Wecker vereint acht (inzwischen zehn) verschiedene Anzeigestile in einem Gerät. Basis war ein klassischer Arduino-Digitalwecker; der Autor integrierte diverse Community-Designs und fügte eigene Funktionen hinzu: Geburtsdatum-Speicher, Biorhythmus-Anzeige, DHT21-Temperatur/Feuchte-Sensor, einstellbare Hintergrundbeleuchtung und Quecksippschalter zum „Ausschütteln“ des Alarms.
Anzeigemodi (per INCREMENT-Taste wählbar)
- Standard: HH:MM:SS | HH:MM (Alarm) / DD/MM/YY | ALARM (blinkend)
- Dual Thick: Großziffern (2 Zeilen × 3 Spalten pro Ziffer) – 12/24 h wählbar
- Dual Bevel: 3D-Effekt-Ziffern (Custom Chars)
- Dual Trek: „Star Trek“-Schrift (schmale, hohe Ziffern)
- Dual Thin: Feine Linien-Ziffern
- Word Clock: Uhrzeit als Text (z. B. „TWELVE THIRTY“) + Sanduhr-Animation
- Biorhythmus: Drei Balken (Physisch 23 T, Emotional 28 T, Intellektuell 33 T) – positiv/negativ
- Thermometer/Hygrometer: DHT21-Werte (°C / % rF)
- Neu (v10): Zwei weitere Ziffernblätter (Details im Update-Log)
Bedienung
- SETUP: Eintritt in Einstellmenüs (Cursor „>“). INCREMENT/DECREMENT ändern Werte. Weiterer Druck wechselt: Stunde, Minute, Tag, Monat, Jahr, Geburts-Tag, -Monat, -Jahr, Alarm-Stunde, Alarm-Minute, zurück zur Uhr.
- INCREMENT (im Normalmodus): Wechselt Anzeigestil.
- DECREMENT (im Normalmodus): Alarm ein/aus.
- Kippschalter / beliebige Taste: Schaltet laufenden Alarm aus.
- Hintergrundbeleuchtung: Geht nach 10 s Inaktivität aus; jede Taste schaltet sie wieder ein.
Aufbau – Vom Breadboard zum fertigen Gerät
Breadboard-Version
Einfache Verdrahtung: LCD an D2–D7, Taster an A0–A2, Kippschalter an A3, Summer an D11, DS1302 an D10/D12/D13, DHT21 an D9, Hintergrundbeleuchtung an D2. Sketch hochladen – fertig.
PCB-Version (Eagle-Dateien beigelegt)
- ATmega328P-DIL statt Arduino UNO
- 7805 5 V-Regelung, 16 MHz Quarz
- DS1302 mit 32,768 kHz Quarz
- Summer per 10 µF entkoppelt
- 3 Taster (6×6 mm, 13 mm Schaft) auf Rückseite
- LCD per Winkelstiftleiste auf Hauptplatine (Tipp: doppelseitige PCB mit Durchkontaktierung erleichtert Montage im Gehäuse)
- 3D-Gehäuse: 2-teilig, M3-Gewinde in PCB-Bohrungen schneiden
Code-Highlights (DigitalClockAlarmV7.ino)
- Bibliotheken:
Wire.h,TimeLib.h,DS1302RTC.h,LiquidCrystal.h,EEPROM.h,dht.h - EEPROM-Adressen: Alarmzeit (0,1), Alarm an/aus (2), Anzeigestil (3), Geburtsjahr (4/5), -monat (6), -tag (7)
- Custom Characters für alle Großziffern-Stile (Thick, Bevel, Trek, Thin), Sanduhr-Animation (8 Frames), Glocke, Uhr, Thermometer, Tropfen
setSyncProvider(rtc.get)synchronisiert TimeLib alle 5 Min. mit DS1302- Biorhythmus-Berechnung: Tage seit Geburt → Sinus-Phasen → Balkengrafik (Custom Chars PHYSICAL_M/L etc.)
- DHT21-Abfrage alle 6 s (
DHT_UPDATE_INTERVAL) - Nicht-blockierende Backlight-Timeout-Logik via
millis() - Define-Schalter:
DUAL_THICK_12HR,DUAL_THIN_12HR,BACKLIGHT_TIMEOUT 10000,NO_BACKLIGHT,BACKLIGHT_ALWAYS_ON
// Beispiel: Dual Thick Ziffer zeichnen
void lcdDualThickPrintDigit(int pos, int number) {
for (int y = 0; y < 2; y++) {
lcd.setCursor(pos, y);
for (int x = 0; x < 3; x++) {
lcd.write(blockChar[number][y][x]);
}
}
}
// Biorhythmus-Balken
void drawBioBar(int row, int phase, int maxLen) {
// phase: 0..maxLen für positiv, -maxLen..-1 für negativ
// nutzt Custom Chars PHYSICAL_M/L etc.
}
Updates & Changelog
- 29.06.2020: Rechtschreibung Word-Clock korrigiert, Backlight-Defines, Timeout 5→10 s
- 23.11.2020: Geburtsdatum-Setup + EEPROM, Biorhythmus-Ziffernblatt, Setup-Code bereinigt
- 06.12.2020: DHT21-Support, Thermo/Hygro-Ziffernblatt, PCB um 3-Pin-DHT21-Anschluss erweitert
Credits & Quellen
- Basiscode: Michalis Vasilakis (Arduino Digital Clock With Alarm Function)
- Dual Thick/Thin: Arduino World (Hackster)
- Dual Bevel: Arduino Forum
- Dual Trek: Carrie Sundra (Alpenglow Industries)
- Word Clock Konzept: LAGSILVA
- Biorhythmus: John Bradnam
- Weather Clock: ARDUinoautoMOTIVE
Dateien
- STL-Dateien für Gehäuse:
stl_files_ZuDXHCHZCl.zip - Eagle-Dateien (Schaltplan + PCB):
eagle_files_ZN59zdeNf5.zip - Vollständiger Sketch:
DigitalClockAlarmV7.ino(im Code-Bereich)
Herstellungsprozess
- Headless Raspberry Pi 2 Wasser-Alarm mit Adafruit T‑Cobbler Plus bauen
- Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
- Intelligenter bewegungsaktivierter Wecker: Endlich aufstehen
- Retro-Numitron-Uhr mit Arduino bauen: Einfach, zuverlässig & energieeffizient
- Arduino Echtzeituhr für islamische Gebetszeiten bauen
- Präzisions-Wortuhr: Minuten-genaue Zeitanzeige in Worten
- Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
- TM1637 Digitaluhr mit Zeiteinstellung & Alarm – Arduino Nano Prototyp
- Bilder auf 1,17-Zoll-TFT-LCD mit Arduino UNO anzeigen
- Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen