Aktuelle Zeit in einem Display sekundengenau anzeigen

  • Hallo,


    ich habe an meinem Raspberry Pi B ein 20x4 Zeilen Display mittels i2c angeschlossen.

    Dort möchte ich bspw. die aktuelle Uhrzeit anzeigen.


    Das funktioniert soweit schon, jedoch wird die Uhrzeit nicht aktualisiert.

    Hier mein bestehender Quellcode:



    Problem ist, dass dies nun eine statische Anzeige auf dem Display ist.

    Wie bekomme ich die Uhrzeit und andere analoge Werte sekündlich aktualisiert?


    Danke und Gruß

    julian

  • Moin dreamshader,


    hatte auch schon die Überlegung mit der Schleife realisiert, jedoch selbes Verhalten:


  • from time import *

    besser: import time


    Als Ergänzung zum Zaubewort Schleife, wollt ich nocht ergänzen, dass diese Schleife in eine Abtastrate von 1/10 laufen sollte. -> 0.1 (2/10 sollte auch noch problemlos möglich sein)


    EDIT: ist fun_time ein eigen erstelltes Modul von dir? Vielleicht verursacht auch das deine Probleme. Konnte ich jetzt jedenfalls auf die schnelle nicht finden. Verwende stattdessen besser datetime

  • Habe jetzt zwei funktionierende Versionen.

    Version 1: mit while true Schleife

    Version 2: mit Threadaufruf


    Ich erhoffe mir durch Version 2, dass es ressourcenschonender Betrieben wird.

    Jedoch bekommeich bei einem Threadaufruf <1 Sek. dann kryptische Sachen im Display angezeigt.

    Nur wenn ich bei einer Sekunde bleibe, dann reagiert das Display vernünftig.

    Hat jemand eine Idee woran sich der Thread timer ggf. stören könnte?







  • 1.: Also Threading brauchst du hier in meinen Augen nicht


    Zum oberen Codebeispiel:

    Die While Schleife gehört nicht in die Funktion sondern in die main Funktion. Aufbau dazu wie folgt:

    So sollte schon mal der Grundsätzliche aufbau aussehen

    Bzgl. der Zeit habee ich das bei meinem Projekt so realisiert, Achtung nur Auszug:

    Python
    1. while True:
    2. try:
    3. rgbconf = rgb_standard()
    4. now = datetime.now()
    5. if lastsecond != now.second:
    6. lastsecond, led_gesetzt = led_calc(now, stdliste, rgbconf, led_gesetzt, strip)
    7. time.sleep(0.2)


    Kann sich die IP während das Skript läuft ändern? Wenn nein muss diese nicht jedesmal beim Funktionsaufruf neu ausgelesen werden und gehört in einer seperaten Funktion untergebracht

  • Moin julianpe,


    auch ich bin nicht der Python-Mensch.

    in meinem aktuellen Projekt schreibe ich auch Datum und Uhrzeit auf ein TFT-Display.

    ich lasse aber nur schreiben wenn sich der Tag oder die Sekunde geändert hat. Das Programm speichert die geschrieben Sekunde ab und vergleicht sie mit der neuen Sekunde. Wenn gleich wird nicht geschrieben.


    Eventuell hilft das.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"