SimpleClock

From BlinkenArea Wiki
Revision as of 19:33, 12 January 2019 by ArneRossius (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
zur Projektübersicht
English Version of this Page
SimpleClock.jpg
Jahr 2018
Anzahl Pixel 58
Graustufen / Farben 2
Leuchtmittel rechteckige LEDs
Leistungsaufnahme
Kontaktperson Arne Rossius
Projekt-Website

Die SimpleClock ist eine 4-stellige Digitaluhr, die nur sehr wenige Bauteile verwendet. Die Anzeige besteht aus 58 roten LEDs (2 pro Segment), die von einem ATtiny13-Microcontroller mit 8 Pins angesteuert werden. Als Zeitbasis wird die Stromnetz-Frequenz verwendet, deshalb muss die Uhr mit einer Wechselspannung versorgt werden. Wenn eine Gleichspannungsquelle verwendet wird, steht die Zeit still und der Doppelpunkt blinkt nicht.

Hardware

Die LEDs werden mit einer Technik namens "CharliePlexing Plus" angesteuert, die in Tim's Blog (englisch) erklärt wird. Für die LEDs zwischen einem I/O-Pin und Masse oder Versorgungsspannung müssen immer zwei LEDs in Reihe verwendet werden, damit diese Technik funktioniert. Damit auch für die restlichen Segmente zwei LEDs vorhanden sind, sind zwischen zwei I/O-Pins immer zwei LEDs parallelgeschaltet (und zwei weitere anti-parallel).

Der Strom durch die LEDs wird nur durch den Innenwiderstand der Microcontroller-Ausgänge begrenzt. Da der ATtiny13 "schwache" und "starke" Ausgänge hat, werden die starken Ausgänge durch zusätzliche Widerstände den schwachen Ausgängen angepasst.

Da in verschiedenen Segmenten die LEDs manchmal parallel und manchmal in Reihe geschaltet sind, ist der Strom pro LED unterschiedlich. Dies wird in der Software durch unterschiedliche Einschaltzeiten wieder ausgeglichen, damit alle Segment etwa gleich hell leuchten.

Der Reset-Pin am ATtiny13 ist als Eingang für die Zeitbasis umkonfiguriert. Die Eingangs-Wechselspannung wird durch einen Tiefpassfilter auf diesen Eingang gegeben. Da die Eingangsspannung ungeregelt ist, wird die Spannung am Eingang von einer Diode begrenzt, damit sie nicht größer als die Betriebsspannung wird (dadurch würde der Controller in den High-Voltage-Programming-Modus gehen).

Firmware

Die Firmware für den ATtiny13 ist in Assembler geschrieben. Mit einer Option kann zwischen 50 Hz oder 60 Hz Netzfrequenz gewählt werden. Bitte beachten, dass nach dem Programmieren der Fuse-Bytes der Controller nur noch mit einem HVSP-Programmer programmiert werden kann ("high voltage serial programming", mit +12V am Reset-Pin), ein normaler ISP-Programmer funktioniert nicht mehr.

Zeit einstellen

So wird die Uhrzeit eingestellt:

  1. Taster drücken und halten, bis die Stunden-Anzeige zu blinken beginnt
  2. Taster mehrmals kurz drücken, bis die Stunden korrekt eingestellt sind
  3. Taster drücken und halten, bis die Minuten-10er-Anzeige zu blinken beginnt
  4. Taster mehrmals kurz drücken, bis die Minuten-10er korrekt eingestellt sind (die Minuten-1er werden bei jedem Tastendruck auf 0 gesetzt)
  5. Taster drücken und halten, bis die Minuten-1er-Anzeige zu blinken beginnt
  6. Taster mehrmals kurz drücken, bis die Minuten-1er korrekt eingestellt sind (der interne Sekundenzähler wird bei jedem Tastendruck auf 00 gesetzt)
  7. Taster drücken und halten, bis die Anzeige nicht mehr blinkt.

Fotos

Mehr Fotos unter http://arne.blinkenarea.org/SimpleClock/gallery.htm