Her har vi en sekvensstyring basert på timere.
Den første utgaven av programmet er ganske enkel, men det har den svakheten at man må stå og holde stoppbryteren inne fram til at siste sekvens har kjørt ut. Dette har sammenheng med at programmet bruker en type timere som får programmet til å stanse opp mens timeren kjører.
# Sekvensstyring # Problemer med å stoppe sekvensen # Arne G from gpiozero import Button, LED from signal import pause import time run = False led1 = LED(21) led2 = LED(26) led3 = LED(19) knapp1 = Button(2) knapp2 = Button(16) knapp3 = Button(20) while True: if knapp1.value: print("Run") run = True if knapp2.value: print("Stop") run = False if run == True: print("Sekvens 1") led1.on() led2.off() led3.off() time.sleep(5) print("Sekvens 2") led1.off() led2.on() led3.off() time.sleep(5) print("Sekvens 3") led1.off() led2.off() led3.on() time.sleep(5) print("Sekvens 4") led1.on() led2.on() led3.on() time.sleep(5) else: print("Stanset") led1.off() led2.off() led3.off() time.sleep(5) pause() #
Her er en forbedret utgave av programmet. Det brukes en annen type timere slik at det holder med et kort trykk på stopp knappen, og så stanser programmet.
# Sekvensstyring med # en annen type timere # Arne G from gpiozero import Button, LED from signal import pause import time run = False sekvens = 1 tid1 = 1.1 led1 = LED(21) led2 = LED(26) led3 = LED(19) knapp1 = Button(2) knapp2 = Button(16) knapp3 = Button(20) while True: if knapp1.value: print("Run") run = True if knapp2.value: print("Stop") run = False if run == True: if sekvens == 1 and time.time() >= tid1 + 5: print("Sekvens 1") led1.on() led2.off() led3.off() sekvens = 2 tid1 = time.time() if sekvens == 2 and time.time() >= tid1 + 5: print("Sekvens 2") led1.off() led2.on() led3.off() sekvens = 3 tid1 = time.time() if sekvens == 3 and time.time() >= tid1 + 5: print("Sekvens 3") led1.off() led2.off() led3.on() sekvens = 1 tid1 = time.time() time.sleep(0.2) pause() #
Her er en litt forbedret utgave av programmet som setter alle utgangene til null ved stans og som gjør styringen klar til en ny start.
from gpiozero import Button, LED from signal import pause import time run = False sekvens = 1 tid1 = 1.1 led1 = LED(21) led2 = LED(26) led3 = LED(19) knapp1 = Button(2) knapp2 = Button(16) knapp3 = Button(20) while True: if knapp1.value: print("Run") run = True if knapp2.value: print("Stop") run = False if run == True: if sekvens == 1 and time.time() >= tid1 + 5: print("Sekvens 1") led1.on() led2.off() led3.off() sekvens = 2 tid1 = time.time() if sekvens == 2 and time.time() >= tid1 + 5: print("Sekvens 2") led1.off() led2.on() led3.off() sekvens = 3 tid1 = time.time() if sekvens == 3 and time.time() >= tid1 + 5: print("Sekvens 3") led1.off() led2.off() led3.on() sekvens = 1 tid1 = time.time() if run == False: led1.off() led2.off() led3.off() sekvens = 1 time.sleep(0.2) pause() #