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.

Neue Binär-Uhr am St.Galler Hauptbahnhof

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

Prototyp

Fritzing Steckbrett Layout

Leiterplatten-Layout

Fritzing Leiterplatten Layout oben

Fritzing Leiterplatten Layout unten

Platine

 

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

fertites Projekt

 

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.