um mein Programm übersichtlich zu halten, möchte ich gerne mit Modulen arbeiten.
Das Hauptprogramm ist noch sehr überschaubar:
Code: Alles auswählen
import modul_a
def main():
modul_a.hintergrund_erstellen()
modul_a.interface_erstellen()
modul_a.interface_erstellen_2()
if __name__ == "__main__":
main()
Code: Alles auswählen
import gpiozero
from gpiozero import MCP3008
import tkinter as tk
root = tk.Tk()
gui_höhe = 10 #Anzahl Zeilen
gui_breite =6 #Anzahl Spalten
zell_höhe=3
zell_breite = 10
zell_text="°"
def hintergrund_erstellen():
kacheln = []
for loop in range(gui_höhe):
for loop2 in range(gui_breite):
label = tk.Label(root,text=zell_text, bg="grey", width=zell_breite, height=zell_höhe)
label.grid(row=loop, column=loop2)
kacheln.append(label)
def interface_erstellen():
poti_=[0,1,2,3,4,5,6,7,8,9]
for loop in range(1,9):
poti_[loop]=MCP3008(loop-1)
print("poti_" + str(loop) + " = ""%3.0f"%(poti_[loop].value *100))
def interface_erstellen_2():
poti_=[0,1,2,3,4,5,6,7]
for loop in range(0,7):
poti_[loop+1]=MCP3008(loop)
print("poti_" + str(loop+1) + " = ""%3.0f"%(poti_[loop].value *100))
"hintergrund_erstellen" funktioniert wie gewünscht. bei "kacheln" brauche ich keine Angaben zur Listengröße oder Inhalt machen. Warum muß ich das bei "poti_" in den "interface_erstellen" machen? (ohne geht es nicht)
"interface_erstellen" bringt das Resultat, was ich erreichen wollte. Ich habe 8 Potentiometer, die von 1 bis 8 nummeriert sind, daher möchte ich in der Software nicht ab 0 zählen.
Meine Frage hierzu: Warum geht "interface_erstellen_2" nicht? Hier kommt die Fehlermeldung:
print("poti_" + str(loop+1) + " = ""%3.0f"%(poti_[loop].value *100))
AttributeError: 'int' object has no attribute 'value'
Für mich sieht der Bereich 0-7 richtiger aus als bei "interface_erstellen".
Und die alles entscheidende Frage: Wie bekomme ich die Werte in das Hauptprogramm? Schließlich soll da mit den Werten gerechnet werden.
Vielen Dank für eure Beiträge,
RaPi_Fan