Arduino DCF77 Analyzer Clock MK2 – 60-LED-Ring mit Zeitcode-Anzeige
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino Nano R3 (oder Uno) – mit Quarzkristall, kein Resonator | 2 |
| DCF77-Empfängermodul (z. B. PV Electronics) | 1 |
| MAX7219 LED-Matrix-Module (für 2× 60 LED-Ringe + Status-LEDs) | 3 |
| MAX7219 7-Segment-Displays 0,56″ (Zeit/Datum) | 2 |
| MAX7219 7-Segment-Displays 0,39″ (Puls/Fehler/Bit-Info) | 2 |
| JQ6500 Sound-Module (16 Pin, 2 MB) | 2 |
| 3 W / 8 Ω Lautsprecher | 2 |
| DS3231 RTC-Modul (mit Pufferbatterie, R5 für Non-Rechargeable entfernen) | 1 |
| LM2596 Step-Down-Regler (auf 5 V einstellen) | 1 |
| RCWL-0516 Doppler-Radar oder PIR-Bewegungsmelder | 1 |
| LDR (Helligkeitssensor für Display-Dimmung) | 1 |
| 7× Schalter (Kippschalter/Taster) für Bedienfeld | 1 Set |
| Verdrahtung, Vero-Boards, Alu-Dial (305 mm Ø), Gehäuse | nach Bedarf |
Projektüberblick
Diese Uhr visualisiert das DCF77-Zeitsignal (deutscher Langwellensender) auf zwei konzentrischen LED-Ringen à 60 LEDs (Innenring: Live-Code der laufenden Minute; Außenring: dekodierte Zeit bei fehlerfreiem Empfang). 24 weitere LEDs zeigen Decoder-Status. Zwei große 8-stellige 7-Segment-Anzeigen geben Uhrzeit und Datum aus, zwei kleine zeigen Pulsdauern und Bit-Informationen.
Zwei ATmega328 (Arduino Uno-kompatibel) teilen sich die Arbeit:
- Analyzer: Dekodiert DCF77, steuert Anzeigen, Sounds, Helligkeit.
- Superfilter (nach Udo Klein): Filtert & synthetisiert das DCF77-Signal, justiert den Quarz des Analyzers nach.
Features: Stunden-/Viertelstundenschlag, Sekundentick (2× JQ6500), Display-Test beim Start, einstellbare Helligkeit (4 Zonen per LDR), zwei Gehäusevarianten (Retro-Uhrengehäuse / Bilderrahmen).
Unterschiede zu Erik deruiters Original
- Zwei Custom-Unos auf Vero-Boards statt Uno + Mega.
- Günstige 7-Segment- & Matrix-Module aus China (Code angepasst).
- 2× JQ6500 statt Adafruit Sound Board (Software-Änderungen, Library-Patch).
- 3. Matrix-Modul für Decoder-LEDs (wegen Pin-Mangel am Uno).
- Superfilter-LEDs per PWM vom Analyzer gedimmt (nicht vom Superfilter-Uno).
- 4 unabhängige Helligkeitszonen (Ringe, große 7-Seg, kleine 7-Seg, Superfilter-LEDs).
- Keine Temperatur-/Wochenzahl-Anzeige.
- DCF77-Sound: 0 = 100 ms, 1 = 500 ms Beep (bessere Unterscheidung).
Bedienelemente (7 Schalter)
- Tick Sound An/Aus – schaltet JQ6500 für Tick-Tock stromlos.
- Tick Lautstärke (Wippschalter) – ADKey am JQ6500.
- Schlagwerk: Aus / 24h / Timer (05:15–23:00).
- Schlag-Lautstärke (Wippschalter) – Software-gesteuert, Testton nach jedem Druck.
- DCF77 Sound An/Aus – Piezo gibt empfangene Bits als Töne aus.
- Reset (Wippe) – Filter oder Analyzer neu starten (Analyzer: Display-Test + Resync).
- DCF77 Quelle: Aus / Analyzer (direkt) / Filter (synthetisiert).
Schaltpläne
Drei Pläne: Hauptplatine, Matrix-Modul-Verdrahtung, 7-Segment-Module.
ATmega-Pinbelegung & Vero-Board-Layouts
Beide ATmega328 als Arduino UNO konfiguriert. Superfilter-Uno muss Quarzkristall haben (Modifikation: Resonator gegen Quarz tauschen). Detaillierte Pin-Mappings und Vero-Board-Layouts in den Bildern.
Vorbaugruppen (Module)
- LM2596: 5 V einstellen (10 kΩ Trimmer), vor Arduino-Bestückung messen. Strom: ~450 mA max (volle Helligkeit), ~80 mA (Displays aus). 1 A Netzteil (7–12 V) ausreichend.
- DS3231 RTC: R5 entfernen für Nicht-Wiederaufladbare (CR2032).
- MAX7219 Matrix: Onboard-Matrix ablöten, 2× 8-polige 90°-Stiftleisten anlöten → Kabel zu LED-Ringen.
- MAX7219 7-Seg 0,56″ & 0,39″: 10 µF Elko nachrüsten (fehlt oft), 1N4148-Diode in Versorgungsleitung durch Drahtbrücke ersetzen (Spannungsabfall bei Daisy-Chain).
- JQ6500: Sounds per USB (Windows) aufspielen (Tool: English MusicDownload v1.2a). Dateinamen: 1–12 = Stunden, 13–16 = Viertel, 17 = Test. Tick-Tock: 1 Datei (< 2 s).
- DCF77-Empfänger: Invertierter Ausgang (Low=Idle, High=Puls). PON auf GND für Normalbetrieb. Störquellen (Monitore, Netzteile) fernhalten.
Verdrahtungsstrategie & LED-Ringe
Ca. 400 Drähte. Vorgehen: Dial (Alu, 1,5 mm) bohren (ca. 700 Löcher), lackieren, Waterslide-Decal aufbringen. LED-Ringe auf Bohrschablone (Papier auf Holz) vorverdrahten: 8er-Blöcke, gemeinsame Anode pro Block, Kathoden verkettet. 16 Leitungen pro Ring zum Matrix-Modul. 3. Matrix-Modul für Status-LEDs (24 Stück) auf kleinem Vero-Board sammeln.
LEDs: Vishay TLH44 (3 mm, tinted diffused, hohe Effizienz, engere Helligkeitsgruppen für Uniformität).
Gehäuse & Zifferblatt
- Retro: Altem Uhrengehäuse (Eiche), Zifferblattrestaurierung (Beize, mattlackieren), Messing-Lünette, Rückkasten reparieren (schwarz lackiert).
- Modern: Großer Bilderrahmen, Fotokarton als Blende, Rückwand mit Ausschnitt, Scharniere, Lautsprecher seitlich.
Superfilter-Details
Der Superfilter lernt das DCF77-Signal, synthetisiert es fehlerfrei weiter und justiert den Quarz des Analyzers nach. Er bleibt auch bei Signalverlust synchron. Status-LEDs zeigen: Filter Sync, Lock, Sync Lost <200 ms, >200 ms, Signal Dirty/Bad.
DCF77-Zeitcode auf dem Zifferblatt
Code
- DCF77 Analyzer Code (Download:
DCF_77_ANALYZER_CLOCK_Mk2_43.zip) - Superfilter Code (Download:
Superfilter07DCF77AnalyzerMK2.zip) - JQ6500 Library Patch: In
JQ6500_Serial.cppZeile 263 einfügen:if(!responseBuffer && !bufferLength) return;(vermeidet 1 s Blockierung).
CAD & Dateien
- TurboCAD-Zeichnungen (Dial, Schablone) –
turbocad_drawings_TESmpq119g.zip - Sound-Dateien:
bell_wYLvJG1pUl.zip(Schlag),tick_tock_FLj9XHTJoB.zip(Tick)
Projektseite
brettoliver.org.uk – DCF77 Analyzer Clock MK2
Herstellungsprozess
- Kuckucksuhr: Geschichte, Handwerkskunst und moderne Evolution
- Arduino POV-Uhr: Persistence-of-Vision LED-Display selbst bauen
- Retro-Numitron-Uhr mit Arduino bauen: Einfach, zuverlässig & energieeffizient
- Stilvolle Wanduhr mit Adafruit 60-LED Neopixel-Ring & Arduino
- DIY Arduino Word Clock – Elegante Wortuhr mit RTC & Schieberegistern
- Arduino Echtzeituhr für islamische Gebetszeiten bauen
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
- Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
- Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen