Ich bin neu was die Sachen Programmierungen angeht. Ich weis mein Problem gibt es mehrere Lösungsansätze und ich würde auch nicht schreiben wenn ich nicht langsam am Ende wäre.
Kurzer Ausflug über mein Projekt: Ich möchte die alte Münzzählmaschine meines Dads wieder in Gang bringen. Dies funktioniert über eine Lichtschranke für die jeweilige Münze, sortiert wird rein mechanisch (im Endeffekt auch egal) ich bin schon soweit gekommen das ich meinen Zähler aufaddieren lasse und ihn auch in dem richtigen Format mit "print" anzeigen lasse, allerdings möchte ich das auch noch gerne über ein Display das das ganze Grafisch anzeigt wie viel von jeder Münze gezählt wurde inklusive den Wert in Euro.
Ich habe mal zum Test zwei Spalten erstellt und versucht meine "Counter" anzeigen zu lassen aber ich bekomme es einfach nicht gebacken.
Das der Raspberry für diese "einfache" Aufgabe auch völlig überdimensioniert ist weis ich auch aber ich habe einfach Spaß am basteln aber beim "Programm" schreiben bin ich einfach nicht so gut.
Ich möchte hier keine Bilderbuchlösung ich habe mir schon alles etwas zusammegfrickelt und bräuchte vielleicht nur einen Denkanstoß da ich mich mit meinem Problem schon über 2 Wochen beschäftige.
Meine Lichtschranken habe ich als Button verwendet weil ich so am einfachsten zurecht komme. Die "pressed" und "hold" Thematik kommt daher das bei "pressed" addiert wird und bei "hold" soll die Maschine aufhören zu sortieren da es sonst zu einem Stau auf der Münzrutsche kommt, daher auch die kurze hold.time von 0.2.
Die Led's dienen aktuell nur dazu um die Zustände (pressed und hold) sichtbar zu machen.
Beste Grüße
Alex
Code: Alles auswählen
import time
from gpiozero import Button, LED
from signal import pause
from tkinter import Frame, Label, Tk, Text
root = Tk()
root.wm_title("Münzzähler")
root.config(background = "black")
root.geometry('1024x600')
root.resizable(width=0, height=0)
counter = 0
counter2 = counter
was_held = False
white = LED(15)
red = LED(21)
btn = Button(14, hold_time=0.2)
def count():
global counter
global counter2
counter += 1
counter2 = counter * 0.5
print ('0.50 Euro: {a:8.2f}'.format(a=counter2), counter)
def held():
global was_held
was_held = True
red.on()
def released():
(white.off(), red.off())
global was_held
if not was_held:
pressed()
white.off()
was_held = False
def pressed():
white.on()
count()
Frame1 = Frame(root)
Frame1.grid(row=1, column=1, padx=12, pady=5)
Label1 = Label(Frame1, text=' Anzahl ')
Label1.grid(row=1, column=0, padx=12, pady=5, sticky='e')
Label2 = Label(Frame1, textvariable=counter)
Label2.grid(row=2, column=0, padx=15, pady=5, sticky='e')
Frame2 = Frame(root)
Frame2.grid(row=1, column=2, padx=12, pady=5)
Label1 = Label(Frame2, text=' Währung ')
Label1.grid(row=1, column=0, padx=15, pady=5, sticky='e')
Label2 = Label(Frame2, textvariable=counter2)
Label2.grid(row=2, column=0, padx=15, pady=5, sticky='w')
btn.when_held = held
btn.when_released = released
root.mainloop()
pause()