Seite 1 von 1

Uhrzeit auf 7 Segment Anzeige, Frage

Verfasst: Sonntag 16. Juli 2017, 23:35
von robiv8
Hallo in die Runde,
Kurz zu mir: Bin weder Programmierer noch habe ich Ahnung von Python & Co
Experimentiere aber gerne :-)
Da ich mit meinem Problem nicht weiter komme und auch google mir keine Antwort gibt hoffe ich hier Hilfe zu bekommen.

Habe mir ein so eine Sieben Segment Anzeige gekauft und Erfolgreich angeschloßen. Über GitHub hab ich das Python module to drive LED Matrices & 7-segment displays (MAX7219) runtergeladen und es funktioniert Einwandfrei. https://github.com/rm-hull/luma.led_matrix
Da ich nur eine Uhrzeit haben will habe ich die sevensegment_demo.py auf meine Bedürfnisse gekürzt und es funktioniert.
Es gibt nur ein kleines Problem:
Im Code ist die Anzeigedauer festgelegt in

Code: Alles auswählen

clock(seg, seconds=10)
klar kann ich das erhöhen ergibt aber keinen sinn.
Was muss ich reinschreiben damit es beim Starten einfach Endlos läuft.

Danke schon mal im Voraus.
Robert

Und hier die Momentane Uhrzeit.py
Vielleicht kann man ja diese noch etwas entschlacken :-)

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2017 Richard Hull and contributors

import time
from datetime import datetime

from luma.led_matrix.device import max7219
from luma.core.interface.serial import spi, noop
from luma.core.virtual import viewport, sevensegment

def clock(seg, seconds):

#    Display current time on device.
    interval = 0.5
    for i in range(int(seconds / interval)):
        now = datetime.now()
        seg.text = now.strftime("%H-%M-%S")

        # calculate blinking dot
        if i % 2 == 0:
            seg.text = now.strftime("%H-%M-%S")
        else:
            seg.text = now.strftime("%H %M %S")

        time.sleep(interval)

def main():
    # create seven segment device
    serial = spi(port=0, device=0, gpio=noop())
    device = max7219(serial, cascaded=1)
    seg = sevensegment(device)


    # Digit futzing
    clock(seg, seconds=1000)


if __name__ == '__main__':
    main()

Re: Uhrzeit auf 7 Segment Anzeige, Frage

Verfasst: Montag 17. Juli 2017, 06:39
von Sirius3
@robiv8: wenn Du experimentieren willst, ist es vielleicht keine schlechte Idee, wenn Du programmieren lernst. Dabei wirst Du Nicht automatisch zum Programmierer, aber vielleicht zu einem besseren Experimentierer.

Wenn Du willst, dass etwas endlos läuft, nimm eine Endlosschleife:

Code: Alles auswählen

from itertools import cycle

def clock(seg):
    interval = 0.5
    for format in cycle(["%H-%M-%S", "%H %M %S"]):
        now = datetime.now()
        seg.text = now.strftime(format)
        time.sleep(interval)

Re: Uhrzeit auf 7 Segment Anzeige, Frage

Verfasst: Montag 17. Juli 2017, 15:37
von robiv8
Ich danke schon mal, ich teste das gleich Heute Abend mal.

Re: Uhrzeit auf 7 Segment Anzeige, Frage

Verfasst: Montag 17. Juli 2017, 22:12
von robiv8
Danke vielmals!
Funktioniert einwandfrei. :)

Eine Frage hätte ich noch,
Ich hab das selbe Projekt noch mit einer LED Matrix (Python library interfacing LED matrix displays with the MAX7219 driver (using SPI))
Da will ich die selbe Uhrzeit anzeigen lassen aber die Sekunden sollen von Oben nach Unten einlaufen / Stehenbleiben / auslaufen!
Ist sowas möglich?
Soll ich da ein Neuen Thread aufmachen?

Danke
Robert

Hier der Fertige Code falls jemand Interesse hat:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2017 Richard Hull and contributors

import time
from datetime import datetime
from itertools import cycle

from luma.led_matrix.device import max7219
from luma.core.interface.serial import spi, noop
from luma.core.virtual import viewport, sevensegment

def clock(seg):

    interval = 0.5
    for format in cycle(["%H-%M-%S", "%H %M %S"]):
        now = datetime.now()
        seg.text = now.strftime(format)
        time.sleep(interval)

def main():
    # create seven segment device
    serial = spi(port=0, device=0, gpio=noop())
    device = max7219(serial, cascaded=1)
    seg = sevensegment(device)

    # Digit futzing
    clock(seg)

if __name__ == '__main__':
    main()


Re: Uhrzeit auf 7 Segment Anzeige, Frage

Verfasst: Dienstag 18. Juli 2017, 09:05
von Sirius3
@robiv8: die Frage mit der LED-Matrix ist eine, wozu die Programmieren lernen mußt, und sie Dir dann selbst beantworten. Ein Forum ist nicht dazu da, fertige Lösungen für irgendwelchen Anwendungen zu präsentieren. Lerne Python, versuche Deine Anwendung umzusetzen und wenn Du konkrete Fragen hast, kannst Du gerne einen neuen Thread eröffnen.