P1030154_2

Thank you for reading this post, don't forget to subscribe!

Vor kurzem beschloss ich, dass ich mit der Raspberry, die wir für die Homeautomation nutzen, eine LED-Uhr zu bauen.
Die analoge Uhr, die wir bisher nutzen, tickt einfach zu laut.

Nach einigen Recherchen beschloss ich, dass die Uhr mit SPI und einem Python-Programm gesteuert wird.

Das SPI-Signal geht auf 4 Schieberegister, die die Stunden und Minuten darstellen.
Um Strom zu sparen sollte immer nur eine Ziffer leuchten, aber so schnell, dass man denkt, dass alle gleichzeitig leuchten.
Ich entschied mich für einen Takt von ca. 4,7 kHz, da dies an einem NE555 mit 100nF und 1kOhm zu realisieren ist.
Der Takt geht dann auf einen 74HC4017, der die LEDs der Ziffern und des Doppenpunktes nacheinander per Transistor auf Masse schaltet.
Ebenso schaltet der 74HC4017 die Ausgabe der Schieberegister und setzt über einen P-Channel-Mostfet-Schalter eine einstellbare LED-Spannung auf die Segmente der Ziffern.
Die 4,7kOhm Vorwiederstände zwischen Schieberegister und Mosfet-Schalter können auch weggelassen werden.
Die LED-Spannung habe ich einstellbar gemacht, damit die Helligkeit geregelt werden kann. Im Moment noch über ein Poti, später vielleicht mal automatisch nach Umgebungslicht.

Hier der Schaltplan.
LEDUhr

Das Pythonprogramm habe ich so eingerichtet, dass es automatisch beim Starten der Raspberry startet. Die Anleitung dazu habe ich bei folgender Seite gefunden. Link1 Link2

Danke an die Autoren dieser Seiten.

Gedächnisstütze für mich zum Einrichten des SPI-Ports und des autostartes des Pythonprogrammes:

  1. sudo apt-get update
    sudo apt-get install python-dev
    mkdir python-spi
    cd python-spi
    wget https://raw.github.com/doceme/py-spidev/master/setup.py
    wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c
    sudo python setup.py install
  2. sudo nano /etc/modprobe.d/raspi-blacklist.conf
    Hashtag vor “blacklist spi-bcm2708” setzen
  3. sudo reboot
  4. sudo nano /etc/rc.local
    Pythonprogramm vor “exit 0” inkl. Verzeichnis einfügen
    z.B. “sudo python /opt/fhem/www/Uhr/uhr.py &”
    Das & am Ende der Zeile gibt an, dass das Script nicht auf das beenden des Programmes wartet und weiter abgearbeitet wird.