Ruum42
Hackerspace in St.Gallen
Sie sind hier
NumeralSystemsClock
Aktives Projekt
Im Frühjahr 2018 nahm die neue Binäruhr am St.Galler Hauptbahnhof ihren Betrieb auf. Das besondere an dieser Uhr schien zunächst, dass sie niemand lesen kann. In Wirklichkeit ist sie eine Hommage an den St.Galler Hackerspace.
Photo by Burkhard Mücke on Wikipedia under the Creative Commons Attribution-Share Alike 4.0 International license.
Eine Binär-Uhr ist natürlich eine geniale Idee für Bahnreisende. Aber für Datenreisende kann es je nach Situation erwünscht sein, die aktuelle Zeit im Oktal- oder im Hexadezimalsystem ablesen zu können. Hierfür baue ich meine eigene Uhr, die sich auf Tastendruck zwischen den verschiedenen Zahlensystemen umschalten lässt.
Bauteile
- Arduino Nano
- 17 blaue 7-Segment-Anzeigen Common Cathode
- 3 Display-Treiber MAX 7219 CNG
- DS1307 Real Time Clock
- 3 Buttons 12x12 mm²
- 2 Kondensatoren 10NF und 100Nf
- 3 Widerstände 10k
Prototyp auf dem Breadboard
Leiterplatten-Layout
Meine Uhr Version 0.1
(Der Sound stammt von einer anderen Uhr.)
Mit Acryl-Glas
- 17 cm x 13.2 cm
- Bohrungen Durchmesser 3.2 mm, Abstand von Rändern 15 mm
- Ausschnitt 6 cm x 2 cm, Abstand von Rändern 2 cm
Arduino Code
Die reine binäre Zeit lässt sich ganz elegant mit not not lösen (Danke Wene!):
void binary(int number, int row, int firstDigit) { /* (number & 1<<i) gives 0 or number, * ! negates => 1 or 0), but need 1 for true => !!(number & i<<i). * DIGITS[row] gives number of digits per row. */ for (int i = 0; i < DIGITS[row] - first_digit; i++) { lc.setDigit(row, first_digit + i, !!(number & 1<<i), false); } }
Meinen (sehr laienhaften!) Code gibts hier.
Bislang implementierte Funktionen
- Umschaltbar von Binär- bis Hexadezimalsystem.
- Stoppuhr mit Doppelklick (mittlerer Taster).
- Display-Test mit Dreifachklick (mittlerer Taster).
- Uhrzeit ändern mit langem Klick (mittlerer Taster).
- Anzeigehelligkeit ändern (mittlerer Taster + links/rechts).
- Speichern der Einstellungen Helligkeit und Zahlensystem im RTC-RAM.