vorab ich bin ein absoluter Anfänger (NOOB) in Sachen Python und dem Pi, wollte aber ein kleines Projekt für mich starten, indem ich eine Flüssigkeit mit Hilfe einer Pumpe, in 100ml Flaschen abfüllen kann. Dafür habe ich mir dank Forensuche, Suchmaschinen und Videoportale etwas kleines basteln können (nicht schön, aber es funktioniert bedingt).
Die Pumpe wird mittels eines Befehls gestartet und läuft 100 sek. und stoppt dank "TIME" danach. Nur wenn der Schlauch nicht richtig liegt, kommen mal mehr und auch mal weniger als 100ml raus.
Nun dachte ich mir, dass ich das Stoppen nicht mehr über die Time Funktion mache sondern über einen Durchflussmesser, welcher nach 100ml dem Relais den Befehl gibt, die Pumpe auszuschalten.
Auf der Suche nach dem richtigen Code hab ich mehrere Stunden verbracht und nichts passendes gefunden, welches ich mir "zurechtbasteln" könnte. Viele Scripte mit Mengenangaben, aber welche mich nicht Interessen, da ich es nicht sehen muss wie viel durchgelaufen ist. Mir würde es reichen wenn das Relais nach der angegebenen Menge einfach die Pumpe ausschaltet.
Ich bin auch noch in einem anderen Forum angemeldet, doch richtig Helfen kann oder will mir da keiner. Mich hat da jemand auf den Weg gebracht über die Zählung von Interrrupts zum Ziel zu kommen, dafür bin ich auch sehr Dankbar, doch leider klappt das bei mir nicht.
Anbei mal der Code den ich gebastelt habe.
Über eure Hilfe wäre ich sehr dankbar.
Code: Alles auswählen
from tkinter import*
from tkinter import ttk
import tkinter.font
import RPi.GPIO as GPIO
import time
from tkinter import PhotoImage
from time import sleep
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
root = Tk()
myFont = tkinter.font.Font(family = 'Helvetica', size = 16, weight = 'bold')
root.title("Füllen")
root.geometry('310x405')
root.configure(background="black")
impulse = 0
def Pump():
GPIO.setmode(GPIO.BCM)
GPIO.setup(17,GPIO.OUT)
GPIO.output(17,GPIO.LOW)
if impulse == 50:
GPIO.output(17,GPIO.HIGH)
GPIO.cleanup()
def Interrupt(channel):
global impulse
impulse = impulse + 1
button1 = Button(font = myFont, text="Start der Pumpe", bd=0, command=Pump)
button1.place(x = 50, y = 70, width=203, height=330)
exitb = tkinter.Button(root, font = myFont, text="EXIT Programm", bd=0, command=quit)
exitb.place(x = 5, y = 5, width=300, height=60)
GPIO.add_event_detect(27, GPIO.RISING, callback = Interrupt, bouncetime =10)
root.mainloop()