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

Präzise 7-Segment-Uhr mit Arduino Pro Mini & DS1302 RTC – Selbstbau

Benötigte Bauteile

Arduino Pro Mini 328 – 5 V / 16 MHz (SparkFun) 1
DS1302 Echtzeituhr-Modul (RTC) IC-Sockel & Quarz vom Modul ablösen & auf Platine übernehmen 1
CR1220 Knopfzelle + Halter z. B. „5pcs Black Housing CR1220 CR1225 Button Cell Battery Socket Holder BS-1220-1“ 1
Keramik-Kondensator 0,1 µF 1206 SMD 1
Keramik-Kondensator 10 µF 1206 SMD 1
Taster 12 mm (Top Actuated) Mit Tastenkappen 4
DC-DC Step-Down Converter 3 A (Mini) Für 12 V → 5 V 1
0,28″ Common Cathode 4-stellige 7-Segment-Anzeige 36
MAX7219 DIP IC LED-Treiber 18
Summer (Buzzer) 1
Maschinen-Stiftleisten (Male & Female Header) Ca. 8 Streifen à 40 Pins je Sorte 1 Set
DC-Strombuchse 5,5 × 2,1 mm Panel Mount, für 12 V Netzteil 1

Benötigte Werkzeuge

Software

Projektbeschreibung

Inspiriert von einer großen 7-Segment-Uhr auf Hackaday.io (von Frugha, 0,56″ Displays) entstand diese kompakte Version mit 0,28″ Displays – nur ein Viertel der Größe. Die Software wurde komplett neu geschrieben und um Wecker, Konfigurationsmenü (Zeit, Datum, Weckzeit, Melodie, Helligkeit, Datumsformat, Schriftart) erweitert.

Bedienkonzept – 4 Tasten

Datumsanzeige

Drückt man ENTER im Normalbetrieb, wird das Datum 5 Sekunden lang angezeigt. Im Menü „Datumsformat“ lässt sich zwischen DD-MM und MM-DD sowie zwischen zwei Schriftarten (quadratisch/schmal) wählen.

Design-Überlegungen

Spalten-Platinen (Column Boards) – 6 Stück nötig

Jede Spaltenplatine hält 6 Stück 4-stellige Displays (insgesamt 36 Displays = 6 Spalten × 6 Displays). Löten: Mittlere Stiftleisten zuerst, dann nach außen arbeiten. Streichholz o. ä. unter die Buchse legen, um Lötzugang zu schaffen. Nach dem Bestücken: Display-Ränder matt schwarz lackieren (verdeckt weiße Kanten bei minimalem Versatz). Jede Spaltenplatine nummerieren (Marker) – erleichtert späteren Einbau in der richtigen Reihenfolge.

MAX7219-Motherboard

Die Segment-/Ziffernzuordnung der MAX7219 wurde nicht hardware-seitig korrekt verdrahtet, sondern das PCB-Layout so einfach wie möglich gehalten. Die Zuordnung wird komplett in Software korrigiert (siehe digitMap[] im Code).

Tipp: Female-Buchsen zuerst auf die Male-Pins der Spaltenplatinen stecken, dann die gesamte Einheit einlöten. So passen die Pins exakt. Beim Ausbau: Nummerierung beachten, damit jede Spalte wieder an ihren Platz kommt.

MPU-Platine (Mikroprozessor-Board)

Enthält Arduino Pro Mini, RTC, Step-Down-Converter, Summer, Taster, Kondensatoren. Die 4 Taster und die zwei SMD-Kondensatoren liegen auf der Rückseite, alle anderen Bauteile vorn. Für flaches Profil: FTDI-Header nicht auf den Pro Mini, sondern direkt auf die PCB gelötet; DTR & VCC per Drahtbrücke nach unten geführt.

Gehäuse (3D-Druck)

Software & Inbetriebnahme

  1. Bibliothek MD_MAX72XX in Arduino IDE installieren.
  2. Test-Sketch Hardware_Test_V1 hochladen – alle Segmente leuchten → Kurzschlüsse / defekte Verdrahtung prüfen.
  3. Bei erfolgreichem Test: Haupt-Sketch Clock_V4 hochladen.

Code-Highlights (Auszug aus Clock_V4.ino)

// Hauptbibliotheken
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <TimeLib.h>
#include <DS1302RTC.h>
#include <EEPROM.h>
#include "button.h"
#include "Tunes.h"
#include "Digits.h"

#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 18        // 18 MAX7219
#define LED_CLK 13, LED_DATA 11, LED_CS 10
#define SPEAKER 2
#define SW_UP 3, SW_DOWN 4, SW_ENTER 7, SW_SELECT 9
#define RTC_CLK 5, RTC_IO 6, RTC_CE 8

// EEPROM-Struktur für persistente Einstellungen
struct EEPROM_DATA {
  uint32_t magic;       // 0x0BAD0DAD
  bool alarm;           // Wecker an/aus
  uint8_t minutes, hours; // Weckzeit
  bool format12hr;      // 12/24 h
  uint8_t brightness;   // 0..15
  uint8_t tune;         // Melodie 0..2
  bool formatDmy;       // DD-MM vs MM-DD
  bool squareFont;      // Schriftart Datum
};

// Betriebsmodi: CLOCK, TIME_SET, DATE_SET, ALARM_SET, TUNE_SET, BRIGHT_SET, FORMAT_SET
// Blinklogik im Setup-Menü (SETUP_FLASH_RATE 200 ms)
// Großziffern (6×6 Pixel pro Ziffer) über 18 MAX7219 gemappt
// Kleine/quadratische Ziffern für Datumsanzeige (5×3 / 3×3)
// Wecker-Melodien in Tunes.h (ELISE, RANGE, SUNSHINE)
// PetitFS nicht nötig – Standard-EEPROM & RTC

Dateien im Projekt

Schaltpläne & PCB

Tipps & Tricks

Herstellungsprozess

  1. Arduino POV-Uhr: Persistence-of-Vision LED-Display selbst bauen
  2. DIY Arduino Word Clock – Elegante Wortuhr mit RTC & Schieberegistern
  3. Arduino Echtzeituhr für islamische Gebetszeiten bauen
  4. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  5. Arduino Flip Clock mit 8×8 LED-Matrix – DIY Echtzeituhr-Projekt
  6. 8×8 LED-Matrix mit Arduino Uno meistern: Schritt-für-Schritt-Anleitung
  7. eDOT: Präzise Arduino-Uhr & Wetterstation mit IR-Fernbedienung
  8. Kompaktes Arduino-Radar mit HC-SR04 Ultraschallsensor & 1,8″ Display
  9. Arduino Echtzeit-Wetteruhr: OLED-Display für Zeit, Datum & Temperatur
  10. Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen