DCF77 Radioklok & Analyzer v2.0 – Arduino Mega/UNO Project
Onderdelen en Benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino Mega 2560 | 1 |
| Arduino UNO (voor DCF77 Superfilter) | 1 |
Over dit Project
Na de ontdekking van het Arduino-platform wilde de maker een nuttige radioklok bouwen die niet alleen de tijd toont, maar ook laat zien wat er "onder de motorkap" gebeurt bij de ontvangst van het DCF77-signuit (uit Duitsland). Na honderden uren knutselen en fouten maken, ontstond een werkende klok met eigen code en printplaatontwerpen.
Versie 2.0 Verbeteringen
- Code volledig herschreven en uitgebreid gecommentarieerd
- PIR-bewegingsensor toegevoegd voor energiebesparing (displays uit bij afwezigheid)
- DCF77 Superfilter (op aparte Arduino Uno) voor schoon signaal bij slechte ontvangst
- Extra display voor temperatuur of zonop/ondergang tijden
- Ingebouwd in een staande klok (grandfather clock)
Frontpaneel en Behuizing
Het frontpaneel is ontworpen in Inkscape (gratis vectorprogramma). Productie via een online fotoservice op DiBond-paneel (28€ inclusief verzending). Let op: vraag vooraf of 1:1 print mogelijk is! Na een eerste mislukte poging (te groot geprint) werd een correcte panel geleverd. Vervolgens veel boren en frezen voor de componenten.
Code
DCF Analyzer / Klok v2.1 (Arduino Mega)
De volledige code is uitgebreid (1000+ regels) en bevat:
- DCF77 signaalverwerking met interrupt-opvang (pin 2)
- Pariteitscontrole van de 3 pariteitsbits in DCF77 signaal
- RTC synchronisatie (DS1307 via I2C)
- Temperatuurmetering met DS18B20 (OneWire)
- Maxim 7219 LED-display sturing (7 displays in daisy-chain)
- LED-ringen voor visualisatie van binnenkomende DCF-bits
- Energiesparmodus: nacht-uitschakeling + PIR-gebaseerde uitschakeling
- DCF geluidssignaal (buzzer) optioneel
- Uurslag (chime) via Adafruit Soundboard
Belangrijke definities:
#define DCF77PIN 2 // Interrupt pin
#define PIRDETECTORPIN 3
#define BUZZERSWITCHPIN 4
#define CHIMESWITCHPIN 5
#define POWERSAVESWITCHPIN 6
#define TEMPSENSORPIN 8 // DS18B20
#define TEMPRESETPIN 9
#define MAXIMCCLD 10, MAXIMCCCLK 11, MAXIMCCDATA 12 // Maxim 7219
// LED pinnen 22-50 voor dagen, status, pariteit, etc.
#define BUZZER A7
#define SPEAKERVOLPIN A6
#define CHIMEPIN A5
De code is onder GNU LGPL licentie beschikbaar. Download de volledige sketch voor alle details.
Superfilter Sketch (Arduino Uno)
Deze code draait op een aparte Arduino Uno tussen de DCF77-antenne en de Mega. Het is de "Superfilter" van Udo Klein (blinkenlight.net) die een ruisch signaal opschoont en een gesynthetiseerd signaal produceert.
// DCF77 Superfilter 3.0 - Udo Klein
#include
// Pin configuratie voor gefilterde, semi-gesynthetiseerde en gesynthetiseerde uitgang
// Zie code voor volledige pin-mapping
void setup() {
// Serial, pinnen, clock initialisatie
}
void loop() {
// Continue signaalverwerking en statusreporting
}
Aangepaste Onderdelen en Behuizingen (PCB Ontwerpen)
- PCB voor Tijd/Datum displays (Maxim 7219, Adafruit 0.56" 7-segment) - ZIP bestand
- PCB voor compacte 7-segment displays (KingBright SC39-11SRWA) - ZIP bestand
- Geluidbestanden: tikgeluid en uurslag (voor grootvaderklok) - ZIP bestand
Schema's
Volledig elektrisch schema (EAGLE/KiCad formaat) beschikbaar als download (ZIP).
Productieproces
- Koekeklok: geschiedenis, vakmanschap en moderne evolutie
- Arduino POV-klok: Bouw een Persistence-of-Vision LED-display
- Bouw een retro Numitron-klok met Arduino: Eenvoudig, betrouwbaar en energiezuinig
- Een stijlvolle wandklok bouwen met Adafruit 60-LED Neopixel Ring & Arduino
- DIY Arduino Woordklok – Bouw een Elegant Real-Time Display
- Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
- Bluetooth-gecontroleerde Arduino Spybot bouwen
- FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
- Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
- Arduino Temperatuurbewaking & Realtime Klok met 3.2" TFT-display
- Bouw een betrouwbare wekker met DS1302 RTC en Arduino UNO