Schankanlage mit Reaktionstest

  • [font="Calibri"]Schankanlage mit Reaktionstest[/font]


    [font="Calibri"]Hallo zusammen![/font]
    [font="Calibri"]Nach einigen Fehlschlägen und intensiver Internetrecherche habe ich nun mein erstes Projekt zum Großteil funktionsfähig.[/font]
    [font="Calibri"]Bei dem Schlagwort: „Erstes Projekt“, denkt man normalerweise an Jugendliche von 14 -15 Jahren. Dies ist bei mir leider nicht der Fall. Meine Kinder haben schon fast 30 Jahre auf dem Buckel…[/font]
    [font="Calibri"]Dennoch will ich hiermit zeigen, dass es nie zu spät ist mit einem neuen Hobby zu beginnen.[/font]
    [font="Calibri"]Obwohl ich sowohl auf dem Gebiet „Raspberry“, als auch in der Programmierung ein absoluter Neuling bin, habe ich es irgendwie (zum Teil) geschafft. Ich hatte zwar schon ein wenig Erfahrung in Sachen: „MS Excel 4 Makros“ jedoch sonst wirklich nie etwas mit Programmierung am Hut. Ja, „MS Excel 4“ ist wahrscheinlich für die meisten Leser(innen) dieses Forums überhaupt kein Begriff mehr :s[/font]
    [font="Calibri"]OK, muss gestehen, dass ich vor ein paar Jahren mal mit der „Programmiersprache“: „click.exe“ ein wenig herumexperimentiert und unter anderem auch eine Relaiskartensteuerung – angeschlossen am parallelen Port eines Windows PC´s hin bekommen habe. [/font]
    [font="Calibri"]Nun aber genug geplappert. Jetzt geht’s zur Sache.[/font]
    [font="Calibri"]Wie die Überschrift schon sagt, habe ich eine Ausschankanlage gebastelt. Damit man nicht nur dumm an der Bar herum steht, habe ich noch einen Reaktionstest hinzugefügt.[/font]
    [font="Calibri"]Das Ganze ist natürlich zum privaten Zweck gedacht. Darum muss ich auch nicht irgendwelche gesetzliche Vorschriften beachten. Es reicht, dass keiner bei der Benutzung einen Schaden davon trägt.[/font]
    [font="Calibri"]Das Prinzip ist ganz schnell erklärt:[/font]
    [font="Calibri"]Auf einem Drehteller, angetrieben von einem Schrittmotor, stehen bis zu 6 Schnapsgläser (20 ml). Über eine Tastatur kann angewählt werden, wie viele Gläser gefüllt werden sollen.[/font]
    [font="Calibri"]Zurzeit steuere ich den PI über einen (Windows)Laptop, über „Remotedesktop“. Dies ist einfacher, als eine Tastatur und Bildschirm herumzutragen.[/font]
    [font="Calibri"]Nach Eingabe der Anzahl beginnt der Teller zu drehen. Über einen kapazitiven Sensor wird erkannt, wenn ein Glas unter dem Einlaufstutzen steht. Dann startet – zeitgesteuert - eine Pumpe und füllt das darunter stehende Glas. Der Vorgang wird wiederholt, bis die Anzahl der eingegebenen Gläser erreicht ist.[/font]
    [font="Calibri"]Das war der Anfang, mit einer Pumpe. Inzwischen habe ich das Projekt – zumindest theoretisch – auf 4 Pumpen erweitert. Damit können 4 verschiedene Getränkesorten und die Gläseranzahl ausgewählt werden. Zurzeit habe ich nur 1 Pumpe und 3 LED´s angeschlossen.[/font]
    [font="Calibri"]Warum 4? Ich steuere die Pumpen über eine „Doppel H Brücke“. Diese hat ja 4 Ein- und Ausgänge. Da ich weder PWZ, noch Richtungsänderung an den Pumpen brauche, „missbrauche“ ich diese Brücke als eine Art Relaiskarte. Und es funktioniert.[/font]
    [font="Calibri"]Die von mir verwendete Membranpumpe schafft 20 ml in 7 Sek. Dies, wenn die Flasche unterhalb des Einfüllstutzens steht. Wenn die Flasche oberhalb ist, besteht das Risiko, dass die Flüssigkeit nachtropft.[/font]
    [font="Calibri"]Inzwischen habe ich mir aber auch eine Zahnradpumpe besorgt. Diese hat ein größeres Pumpvolumen, jedoch zieht sie auch bis zu 4,5 A! Daher kann ich sie schlecht mit meiner jetzigen Hardware benutzen. Die H Brücke verträgt nur bis max. 2 A und auch das benutze 12 V Netzteil liefert nur 2 A. Habe sie zwar mal kurz getestet, jedoch will ich mir meine Hardware nicht zerschießen. Daher kann ich diesbezüglich auch keine brauchbaren Infos liefern.[/font]
    [font="Calibri"]Inzwischen habe ich mir ein größeres Netzteil – 12 V, 10 A – und eine Relaiskarte bestellt. Dann kann ja nichts mehr schief gehen, oder?[/font]
    [font="Calibri"]Die H Brücke ersetze ich dann durch die Relaiskarte.[/font]
    [font="Calibri"]Bin mal gespannt, was die ausgewählte Zahnradpumpe dann leistet. In einem Internetbeitrag habe ich zwar gelesen, dass diese nicht das Gelbe vom Ei ist; aber „schaun mer mal“. Bei dem Preis kann man nichts kaputt machen…[/font]
    [font="Calibri"]Bin zwar mit der Membranpumpe zufrieden, jedoch muss man auch an ein „Speedup“ denken. Wenn das Glas dann in 3 statt 7 Sek. voll ist, ist das schon ein Fortschritt.[/font]
    [font="Calibri"]Na ja, nicht wirklich darum will ich auf andere Pumpen umsteigen. Im Hinterkopf schwebt der Gedanke, auch Mischgetränke ausschenken zu können. Dann muss ein größeres Volumen gepumpt werden…[/font]
    [font="Calibri"]Ich weiß zwar nicht, ob es so einfach ist kohlensäurehaltige Getränke – wie Cola – zu pumpen, aber „schaun mer mal“. Es gäbe da ja auch noch die Möglichkeit mit 2 Magnetventilen, wo die benötigte Menge dazwischen gestaut wird… Dann müsste aber der Spender (Flasche) oberhalb des Abfüllstutzens liegen. Ich plane aber, dass alle Getränke in einer - mit Eis gefüllten – Box unterhalb des Abfüllstutzens liegen. [/font]
    [font="Calibri"]Natürlich können diese Mischgetränke nicht auf dem Drehteller ausgeschenkt werden. Der verwendete Schrittmotor schafft es gerade mal 6 volle, 20 ml Gläser zu drehen.[/font]
    [font="Calibri"]Da würde eine „stationäre“ Abfüllposition, nach folgendem Prinzip, in Frage kommen:[/font]
    [font="Calibri"]1: Entweder über das gleiche Skript, wo man eben ein Getränk auswählt und das Glas dann unter den entsprechenden Ausschankstutzen stellt, oder[/font]
    [font="Calibri"]2: Ein separates Skript, einen 2. Sensor. Sobald der Sensor ein Glas erkennt, starten die entsprechenden Pumpen.[/font]
    [font="Calibri"]Die verwendete, als auch die Zahnradpumpe sind selbstansaugend. An der Saugleitung ist ein Rückschlagventil angebracht. [/font]
    [font="Calibri"]         [/font]
    [font="Calibri"]Warum „Doppel H Brücke“? Ganz einfach: Weil ich diese zur Verfügung hatte.[/font]
    [font="Calibri"]Zuerst wollte ich die Dosierung mittels einer Einwegspritze realisieren. Hier sollte – angetrieben von einem e-Motor, über eine Spindel - der Kolben vor und zurück bewegt werden. Noch jeweils ein Rückschlagventil vor und nach der Spritze und in der Theorie ist alles OK. Der erste Versuch war auch vielversprechend. Jedoch gibt eine Einwegspritze bald ihren Geist auf. Die Reibung zwischen Kolben und Spritze wird immer größer und nach kurzer Zeit verhakt sich der Kolben total. Diese Spritzen sind halt nur für den Einmalgebrauch gedacht. Eine Mehrwegspritze kam aus Kostengründen nicht in Frage. Da kostet eine Spritze mehr, als die ganze Anlage. Daher bin ich auf Pumpen umgestiegen. Natürlich dosieren die von mir verwendete(n) Pumpe(n) – zeitgesteuert - nicht auf den Milliliter genau. Ich dosiere aber nur Spirituosen und keine Medikamente. Da ist niemand böse, wenn er anstatt 20 ml, 22 ml, oder nur 18 ml im Glas hat.[/font]
    [font="Calibri"]Viele (Um)wege führen nach Rom. So auch mein Python Code. Er funktioniert zwar, jedoch bin ich mir sicher, dass einiges besser gemacht werden könnte.[/font]
    [font="Calibri"]Für die Statistik zähle ich die Anzahl der gefüllten Gläser und addiere diese in 4 verschiedenen Textdateien (je nach Getränkewahl). Gerade hier ist der Code – nach meiner Meinung – recht umständlich. Er funktioniert aber.[/font]
    [font="Calibri"]Wenn ich die Datei gleichzeitig zum lesen und schreiben öffne, ergibt mir die Addition einen unbrauchbaren Wert, da in diesem Fall immer hinten angehängt und somit ein ganz anderer Wert aus der Datei angenommen wird. Ja, ist recht unverständlich erklärt, aber Profis können eventuell was damit anfangen. [/font]
    [font="Calibri"]Für Anregungen bin ich Euch sehr dankbar.[/font]
    [font="Calibri"]Ich füge unten mal den Code für 4 Pumpen ein. [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Was nicht wirklich funktioniert ist der Reaktionstest![/font]
    [font="Calibri"]Er besteht aus 2 Taster und 3 LED´s. Die gedrückten Taster schalten den jeweiligen GPIO Port auf 0. Sin der Sache ist, dass nach dem aufleuchten der mittleren LED erkannt wird, welcher der beiden Taster zuerst gedrückt wurde. Dementsprechend leuchtet die zugehörige LED auf. Die mittlere LED beginnt nach 2 – 5 sec (Zufallsprinzip) zu leuchten. Wenn beide Taster schon gedrückt sind, sobald die ausschlaggebende (mittlere) LED aufleuchtet, blinken alle 3 LED´s auf. Keiner hat gewonnen. Wenn nur ein Taster schon gedrückt ist, bevor die LED aufleuchtet, hat der Andere noch ca. 5 Sek. die Möglichkeit zu drücken und zu gewinnen. Soweit funktioniert es auch.[/font]
    [font="Calibri"]Das Problem tritt auf, wenn beide Taster erst nach aufleuchten der mittleren LED gedrückt werden.[/font]
    [font="Calibri"] In diesem Fall bin ich der Meinung, dass der zuerst abgefragte Taster den Vorrang hat. Theoretisch ist es nun mal so, dass das zuerst abgefragte Ereignis Vorrang hat. Jedoch sollte sich dies praktisch nicht bemerkbar machen. Oder liege ich da mit meinen (sehr) beschränkten Programmierkenntnissen total falsch? An der Hardware kann es nicht liegen, denn es wird immer der Taster bevorzugt, den ich als ersten abfrage.[/font]
    [font="Calibri"]Für Anregungen bin ich sehr dankbar![/font]
    [font="Calibri"][font="Calibri"]Der Code ist weiter unten aufgeführt.[/font][/font]
    [font="Calibri"]Nun noch eine kleine Anmerkung zum Schluss:[/font]
    [font="Calibri"]Für Profis ist es ein alter Hut, dass man immer zuverlässige, wackelfreie Verbindungen herstellt. Ich musste dies erstmals schmerzhaft erlernen. Darum ein Hinweis an alle Neulinge so wie ich: Stellt erstmals sicher, dass Eure Verbindungen wirklich „bombenfest“ sind. Sonst passiert es Euch wie mir. Ich musste extra Skripts schreiben, damit ich den Zustand der GPIO Ports auslesen kann um meine wackeligen Verbindungen zu eliminieren.[/font]
    [font="Calibri"]Zum Schluss habe ich IDE – Kabel verwendet. Ein 40 – poliges IDE – Kabel passt genau auf den GPIO – Anschluss von Pi 2. [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Nun zu der verwendeten Hardware:[/font]
    [font="Calibri"] [/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]Raspberry Pi 2 Model B[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]Schrittmotor mit Treiber[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]Kapazitiver Sensor[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]H Brücke[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]Membranpumpe[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]DC – DC Convertor[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]Zahnradpumpe, noch zu Experimentierzwecken[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]12 V, 2 A Netzteil, hatte ich so rumliegen. Wird durch dieses ersetzt (12V, 10 A)[/font]
    [font="Calibri"]-[/font][font="Times New Roman"]   [/font][font="Calibri"]5 V Netzteil für den Pi[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]LED´s und Microtaster für den Reaktionstest.[/font]
    [font="Calibri"]-[/font][font="Times New Roman"] [/font][font="Calibri"]IDE Kabel für die Anschlüsse.[/font]


    Hier das Skript für die Schankanlage:
    [font="Calibri"]

    Code
    #!/usr/bin/python3.2[/font][/size][/color]# -*- coding: utf-8 -*-from time import sleepimport RPi.GPIO as GPIO#GPIOs unter GPIO-Nummern ansprechenGPIO.setmode(GPIO.BCM)# Verwendete Pins am Rapberry Pi# A bis D = Ausgangspins für Schrittmotor Drehteller starten# S = Eingangspin für Näherungsschalter abfragen# P1 bis P4 = Ausgangspinns für Pumpen startenA=18B=23C=24D=25S=21 P1=16P2=20P3=12P4=22# time = Pause zwischen den Schaltzyklen des Drehteller-Schrittmotorstime = 0.001# Pins A, B, C, D, Schrittmotor und Pumpe 1 bis 4 als Ausgänge definierenGPIO.setup(A,GPIO.OUT)GPIO.setup(B,GPIO.OUT)GPIO.setup(C,GPIO.OUT)GPIO.setup(D,GPIO.OUT)GPIO.setup(P1,GPIO.OUT)GPIO.setup(P2,GPIO.OUT)GPIO.setup(P3,GPIO.OUT)GPIO.setup(P4,GPIO.OUT)GPIO.output(A, False)GPIO.output(B, False)GPIO.output(C, False)GPIO.output(D, False)GPIO.output(P1, False)GPIO.output(P2, False)GPIO.output(P3, False)GPIO.output(P4, False)# Pin S, Näherungssensor als Eingang definieren GPIO.setup(S,GPIO.IN)# Schrittmotor für Drehteller wird in 8 Steps angesteuert# Schritte 1 - 8 für Drehteller-Schrittmotor festlegendef Step1():   GPIO.output(D, True)   sleep (time)   GPIO.output(D, False)def Step2():   GPIO.output(D, True)   GPIO.output(C, True)   sleep (time)   GPIO.output(D, False)   GPIO.output(C, False)def Step3():   GPIO.output(C, True)   sleep (time)   GPIO.output(C, False)def Step4():   GPIO.output(B, True)   GPIO.output(C, True)   sleep (time)   GPIO.output(B, False)   GPIO.output(C, False)def Step5():   GPIO.output(B, True)   sleep (time)   GPIO.output(B, False)def Step6():   GPIO.output(A, True)   GPIO.output(B, True)   sleep (time)   GPIO.output(A, False)   GPIO.output(B, False)def Step7():   GPIO.output(A, True)   sleep (time)   GPIO.output(A, False)def Step8():   GPIO.output(D, True)   GPIO.output(A, True)   sleep (time)   GPIO.output(D, False)   GPIO.output(A, False)try:# Start der Schleife, wie viele Gläser befüllt werden sollen   while 1:       print ("*************************************************")       while True:           try:               print ("Getraenkewahl treffen")               gw = input("Bitte eine Zahl zwischen 1 und 4 eingeben: ")               gw = int(gw)               while gw < 1 or gw > 4:                   print ("")                   print ("Getraenkewahl treffen")                   gw = input ("Bitte eine Zahl zwischen 1 und 4 eingeben: ")                   gw = int (gw)                         break           except:               print("")       while True:           try:               #print ("Anzahl der Glaeser")               print ("")               anzahl = input("Bitte Anzahl der Glaeser eingeben: ")               anzahl = int(anzahl)                     break           except:               print("")                       gl = 1       for x in range (anzahl):               r = 0               while GPIO.input(S) == 1:                   #print ("suchen")                                      for i in range (3):                           Step8()                       Step7()                       Step6()                       Step5()                       Step4()                       Step3()                       Step2()                       Step1()                   #sleep (0.01)                   r = r + 1                   #print (r)                   if r >= 180:                       print ("")                       print ("Kein Glas gefunden")                       anzahl = 0                       break               if r >= 180:                   break               if GPIO.input(S) == 0:                                # wenn nötig, etwas vordrehen nachdem Glas gefunden wurde                   for i in range (0):                           Step8()                       Step7()                       Step6()                       Step5()                       Step4()                       Step3()                       Step2()                       Step1()                   sleep (0)# Wenn Glas erkannt wurde Pumpe starten                   print ("")                   print ("Fuelle Glas ", gl, "von ", anzahl,)                   print ("")                   if gw == 1:                       GPIO.output(P1, True)                       sleep (1)                       GPIO.output(P1, False)                   if gw == 2:                       GPIO.output(P2, True)                       print ("starte Pumpe 2")                       sleep (1)                       GPIO.output(P2, False)                   if gw == 3:                       GPIO.output(P3, True)                       print ("starte Pumpe 3")                       sleep (1)                       GPIO.output(P3, False)                   if gw == 4:                       GPIO.output(P4, True)                       #print ("starte Pumpe 2")                       sleep (1)                       GPIO.output(P4, False)                                          # Pumpe nach 7 Sekunden stoppen und Drehteller nach vorne bewegen                   for i in range (65):                           Step8()                       Step7()                       Step6()                       Step5()                       Step4()                       Step3()                       Step2()                       Step1()                   #sleep (3)                   gl = gl + 1       if gw == 1:           y = "g1.txt"       if gw == 2:           y = "g2.txt"       if gw == 3:           y = "g3.txt"       if gw == 4:           y = "g4.txt"          datei = open(y, "r")       for line in datei:           print ("")           #print(line.rstrip())       datei.close()       datei = open(y, "w")       line = int(line)       summe = anzahl + line       summe = str (summe)       datei.write(summe)       #print (summe)       datei.close()except KeyboardInterrupt:   print("Programm vom User gestoppt")   GPIO.cleanup()           [color=#000000][size=14][font="Calibri"]

    [/font][/size][/color]


    [font="Calibri"] Hier das Skript für den Reaktionstest:[/font]
    [font="Calibri"]

    Code
    #!/usr/bin/python3.2[/size][/font][/color]# -*- coding: utf-8 -*-from time import sleepimport RPi.GPIO as GPIOfrom random import randintGPIO.setmode(GPIO.BCM)# Verwendete Pins am Rapberry PiSR=6SL=5LM=13LL=19LR=26time = 0.5# Pins als Ein-/Ausgänge definierenGPIO.setup(SL,GPIO.IN)GPIO.setup(SR,GPIO.IN)GPIO.setup(LM,GPIO.OUT)GPIO.setup(LR,GPIO.OUT)GPIO.setup(LL,GPIO.OUT)GPIO.output(LM, False)GPIO.output(LL, False)GPIO.output(LR, False)#GPIO.setup(SR,GPIO.IN)#GPIO.setup(SL,GPIO.IN)try:   while 1:       while GPIO.input(SL) == 1 or GPIO.input(SR) == 1:       # LEDs durch Zufall blinken lassen           zufall = randint (1, 3)           if zufall == 1:               GPIO.output(LL, True)               sleep (0.2)               GPIO.output(LM, False)               GPIO.output(LL, False)               GPIO.output(LR, False)           if zufall == 2:                GPIO.output(LR, True)               sleep (0.2)               GPIO.output(LM, False)               GPIO.output(LL, False)               GPIO.output(LR, False)           if zufall == 3:                GPIO.output(LM, True)               sleep (0.2)               GPIO.output(LM, False)               GPIO.output(LL, False)               GPIO.output(LR, False)       # Wenn beide Taster gedrueckt sind       else:           #print ("beide gedrueckt")           GPIO.output(LM, False)           GPIO.output(LL, False)           GPIO.output(LR, False)           verz = randint (2, 5)           #print ("Verzoegerung", verz)           sleep (verz)       # Mittlere LED einschalten           #print ("Mitte einschalten")           GPIO.output(LM, True)                # Wenn Beide zu frueh gedrueckt haben       if GPIO.input(SL) == 0 and GPIO.input(SR) == 0:           #print ("beide zu frueh")           for x in range (5):               GPIO.output(LM, True)               GPIO.output(LL, True)               GPIO.output(LR, True)               sleep (0.5)               GPIO.output(LM, False)               GPIO.output(LL, False)               GPIO.output(LR, False)               sleep (0.5)               else:       # beide gut gedückt           if GPIO.input(SL) == 1 and GPIO.input(SR) == 1:               #print ("Beide gut")               for y in range (50000):                   #print (y)                   if GPIO.input(SL) == 0:                       #print ("liks gedrueckt")                       for z in range (5):                           GPIO.output(LM, False)                           #print ("links ein")                           GPIO.output(LL, True)                           sleep (0.5)                           #print ("links aus")                           GPIO.output(LL, False)                           sleep (0.5)                       #print ("beende")                       break                                    if GPIO.input(SR) == 0:                       #print ("rechts gedrueckt")                       for z in range (5):                           GPIO.output(LM, False)                           #print ("rechts ein")                           GPIO.output(LR, True)                           sleep (0.5)                           #print ("rechts aus")                           GPIO.output(LR, False)                           sleep (0.5)                       #print ("beende")                       break                   sleep (0.0001)           if GPIO.input(SL) == 0:               #print ("links zu frueh")               for y in range (50):                   #print (y)                   if GPIO.input(SR) == 0:                       #print ("rechts gedrueckt")                       for z in range (5):                           GPIO.output(LM, False)                           #print ("rechts ein")                           GPIO.output(LR, True)                           sleep (0.5)                           #print ("rechts aus")                           GPIO.output(LR, False)                           sleep (0.5)                       #print ("beende")                       break                   sleep(0.1)           if GPIO.input(SR) == 0:               #print ("rechts zu frueh")               for y in range (50):                   #print (y)                   if GPIO.input(SL) == 0:                       #print ("links gedrueckt")                       for z in range (5):                           GPIO.output(LM, False)                           #print ("links ein")                           GPIO.output(LL, True)                           sleep (0.5)                           #print ("links aus")                           GPIO.output(LL, False)                           sleep (0.5)                       #print ("beende")                       break                   sleep(0.1)                              except KeyboardInterrupt:   print("Programm vom User gestoppt")   GPIO.cleanup()           [color=#000000][font="Calibri"][size=14]

    [/size][/font][/color]
    [font="Calibri"] [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]    [/font]
    [font="Calibri"] [/font]

    Edited once, last by Bubi ().

  • Hallo "Bubi",


    Ich bin maßlos begeistert von deiner Idee/Anlage :thumbs1: Ich komme vom "Land" und kenne solche Spielchen nur zu gut (obweil ich nicht weiß ob du auch vom "Land" kommst, aber ich könnt mir's sehr gut vorstellen :D )


    Zu deiner Thematik Pumpen/Ausschanktechnik kann ich dir leider nicht helfen da ich mich mit sowas noch nicht beschäftigt habe, zuweil immer Handausschank (bis jetzt ... :rolleyes: )


    Aber nun zum Thema:
    Bzgl. deinem Reaktionstest denk ich mir das du mit einem Interrupt besser und vor allem "fairer" fährst und damit auch dein Problem behoben ist. Interrupt hört sich kompliziert und schwer an, isses aber eigentlich nicht. Wennd die Google-Maschine anschmeißt bzgl. Raspberry und Interrupt wirst auf jeden Fall fündig. Und wenn ich sehe was du bis jetzt geschafft hast dann ist das keine Hürde für dich !


    Ich hoffe ich sehe deine "Maschine" mal irgendwo im Schwabenland :thumbs1: :thumbs1: :thumbs1:
    Automatisch zusammengefügt:[hr]
    :D :D :D Weltklasse, i komm net drüber weg :D :D :D

    Edited once, last by flyer99 ().

  • Hallo flyer99,


    besten Dank für Deine Antwort.
    Komme zwar nicht aus dem "Land - Ländle", aber auch nicht weit davon weg. Ich wohne bei Crailsheim...
    Wie schon erwähnt, bin ich blutiger Anfänger in Sachen Programmierung, aber werde mal versuchen es mit Interrupts zu realisieren.


    Gruß
    Bubi


  • Melde dich wenn's nicht so hinhaut wie von dir gewünscht ....


    Hallo flyer99,


    nochmals besten Dank für die Unterstützung.
    Habe den Code für den Reaktionstest nach Deiner Empfehlung abgeändert.
    Obwohl Interrupts für mich Böhmische Dörfer waren, habe ich es irgendwie geschafft.
    Wie es aussieht, sollte es jetzt hinhauen.


    Gruß
    Bubi


    Hier der Code: