Start og stopp av to motorer i rekkefølge

Her er litt uttesting på start og stopp av to motorer vha Rasberry Pi. I følge dokumentasjon så dreier det seg jo bare om start og stopp av LED dioder, men dette signalet kan jo kobles videre til releer eller til kraftigere elektronikk, slik at det blir til en motorstyring. Jeg har lagt inn en forigling som gjør at motorene må startes i riktig rekkefølge, først M1 og så M2.

Eksempel på programkode:


# Motorstart i godkjent rekkefølge først M1 så M2
# Arne G

from gpiozero import Button, LED
  
led1 = LED(21)
led2 = LED(26)
knapp1 = Button(2)
knapp2 = Button(16)
knapp3 = Button(20)

forrigling = True
 
while True:
   
    if knapp1.value:
         
        print("M1 Running")
        led1.on()
        led2.off()
        forrigling = False        
 
    if knapp2.value and not forrigling:
 
        print("M1-M2 Runing")
        led1.on()
        led2.on()

    if knapp3.value:

        print("M1-M2 Off")
        led1.off()
        led2.off()
        forrigling = True
#

Alternativ pogramkode med litt mindre prosessorbelastning:


# Start two motors, common stop
# M1 has to start before M2
# Arne G

from gpiozero import Button, LED
from signal import pause

led1 = LED(21)
led2 = LED(26)
knapp1 = Button(2)
knapp2 = Button(16)
knapp3 = Button(20)

def start_m1():
    print("Start M1")
    led1.on()

def start_m2():    
    if led1.value == True:
        print("Start M2")
        led2.on()

def stopp_m1m2():
    print("Stop M1-M2")
    led1.off()
    led2.off()

knapp1.when_pressed = start_m1
knapp2.when_pressed = start_m2
knapp3.when_pressed = stopp_m1m2

pause() # Prevent closing down from shell