Mitunter ein Grund, warum ich heute bei Arduino-Hannover bin. Angefangen mit einem Raspberry Pi B – der eindeutig zu überdimensioniert für das Projekt ist, steckt nun ein ATmega328 drin. Für einen ATmega8 war das Programm zu groß und 168 hatte ich gerade nicht hier – hätte bestimmt noch gepasst.
Uhr ablesen muss man mehrmals täglich, dabei möchte man informiert werden. Doch Uhren haben eine Ästhetik, man guckt viel zu kurz drauf. Deswegen muss man hier länger drauf gucken, um zu wissen, wie spät es ist.
Die Verwandlung meiner binären Armbanduhr zu einer Wanduhr stand an. Allerdings wollte ich die Uhr nicht opfern, sie sollte weiterhin meinen Arm schmücken. Ich nahm eine normale digitale Funkuhr auseinander und versuchte mich im Reverse-Engeneering der Ansteuerung, aber das war mir zu dem Zeitpunkt noch zu komplex. Microcontroller, mir war nur PIC ein Begriff und als ich mich nach Programmern bei Conrad umschaute, waren die Preise von 25-30€ mir dann doch insgesamt zu viel. Einen Raspberry gab’s zum gleichen Preis, also den gekauft. Da kann man dann auch mehr mit machen.
Also alles soweit zusammengebaut – das war vor 2 Jahren. Da hatte ich keinerlei Ahnung von gutem Layout. Schrecklich, wenn ich jetzt so darüber nachdenke… Auch die Programmierung war schlimm im Rückblick. Mein erstes C++-Programm. Und Pull-Ups? Sit-Ups kenne ich! Die Platine habe ich allerdings als Relikt behalten. Eventuell rahme ich mir die ein. Ein echtes Schmuckstück. Und so teuer, diese ganzen unnötigen Meter an Kabel, Shift-Register und Darlington-Arrays für €1,30 das Stück.
Naja gut, ist Vergangenheit, schließen wir damit ab. Neue Platine, neues Glück!
Kabel? Noch ganze 13 Stück auf der Platine fest verlötet. 5 Kabel mit Dupont-Verbindern für Push-Encoder und Taster. Benutzt habe ich die Funktionen, die darauf gelegt sind bisher allerdings nie. Im Bild ist noch die DS1307, die ich aber aus Gründen ersetzt habe.
Rechts unten der 328, mittig 4 74HC595 Shift-Register, darüber jeweils ein ULN2003 7er Darlington-Array. Neben dem 328 hat rechts inzwischen ein IDC-10 Header für ISP sein neues Zuhause gefunden. In der Ecke ein aktiver Piezo für den Alarm. Außerhalb des Bildes versteckt sich unten eine Mini-USB-Buchse für die Stromversorgung.
Das Programm kümmert sich hauptsächlich um die Anzeige der Zeit, bietet aber auch noch weitere Funktionen. Mit dem Encoder kann man durch das Menü surfen, Wecker stellen, aus und abschalten, Countdown einrichten und natürlich die Zeit stellen. Das Menü wird als Lauftext auf der 7-Segmentanzeige in englisch dargestellt.
Die Zeit selbst wird durch die 11 10mm LEDs aufgeteilt in Stunde und Minute dargestellt. Bei den Sekunden gab es bei der ersten Version immer den Einwand „die Sekunden kann ich aber lesen“. Jetzt nicht mehr! Neulich kam der selbe Spruch noch einmal, wenige Sekunden später, fragte ich, ob es immer noch entzifferbar ist. „Was soll denn bitte 2C sein?“ Tja, 7-Segment-Anzeige schön und gut, aber nicht nur Zahlen sind darstellbar. Also den ganzen Spaß hexadezimal dargestellt.
Wem das immer noch zu langweilig ist, der kann zum nächsten Level übergehen.
P.S.: die aktuelle Revisionsnummer ist einstellig 😉