Dreieretningsvender

Her har vi et oppsett for en dreieretningsvender der vi må innom stoppknappen for å kunne skifte mellom høyre og venstredrift.

 

Eksempel på programkode:


# Dreieretningsvender
# Arne G

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

forrigling = False
 

while True:
   
    if knapp1.value and not forrigling:
         
        print("CW Running")
        led1.on()
        led2.off()
        forrigling = True
         
    if knapp2.value and not forrigling:
 
        print("CCW Runing")
        led1.off()
        led2.on()
        forrigling = True

    if knapp3.value:

        print("Motor Off")
        led1.off()
        led2.off()
        forrigling = False

#

Alternativ programkode som bruker litt mindre prosessorkraft. Ved å importere time funksjon og legge inn en pause i sløyfa på 0.2 sekund, så bør også det første programmet kjøre med en rimelig prosessorbelastning. ( «import time» pluss «time.sleep(0.2)» )


# Dreieretningsvender
# 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():
    if led2.value == False:
        print("Start CW")
        led1.on()

def start_m2():    
    if led1.value == False:
        print("Start CCW")
        led2.on()

def stopp_m1m2():
    print("Engine Stopped")
    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

#