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.
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:
- 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 - sudo nano /etc/modprobe.d/raspi-blacklist.conf
Hashtag vor “blacklist spi-bcm2708” setzen - sudo reboot
- 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.