Eingänge vom I2HE-Modul einlesen
Das Programmbeispiel liest alle 20ms das Byte von der Eingangskarte ein, und schreibt den Wert in ein Label.
Module importieren und Globale Variable definieren
im Hauptprogramm werden einige Module importiert.
Außerdem braucht jede Eingabekarte eine globale Variable die wir einfach mal in1 für die erste Input-karte nennen
import tkinter as tk
import smbusmainWin = tk.Tk()
mainWin.title(‚Digital Input‘)bus = smbus.SMBus(1)
in1 = 0
Falls der Import vom SM-Bus nicht funktioniert muss dieser erst noch auf dem Raspberry-Pi installiert werden. Diese Anleitung hilft dabei recht gut. https://pypi.python.org/pypi/smbus-cffi
Programmcode
import tkinter as tk import smbus mainWin = tk.Tk() mainWin.title('Digital Input') bus = smbus.SMBus(1) in1 = 0 def wert(label): def read(): global in1 var=bus.read_byte_data(0x38,255) #Wert von der Digital-Input-Karte lesen in1 = 255-var #Wert invertieren label.config(text=str(in1)) #Wert in Label schreiben label.after(20, read) #Funktion in 20ms erneut aufrufen read() label = tk.Label(mainWin, width=15) label.grid(row=1,column=1) wert(label) mainWin.mainloop()