Hjälp en newbie med slutklämmen på en python-kod.
Jag har byggt en låda som ska öppnas var femte kilo jag går ner i vikt. Men det är slutet på koden som jag inte får till. Jag har en knapp och en nummer-LED på lådan, varje gång jag trycker på knappen minskar värdet på LCDn med 0,1 kilo. Så från 5 kilo till 4,9 efter ett tryck. När siffran är nere på 0 vill jag att servon ska öppnas, sen när jag trycker en gång till så att värdet blir -0.1 vill jag att servon ska stängas igen och värdet ska återgå till 5,0 så att jag kan börja om igen. Jag har försökt med många olika sätt att skriva det sista men får det inte att fungera, nu fortsätter bara värde att bli mer minus för varje tryck. Kan någon komma med ett förslag hur jag ska skriva den sista delen i funktionen?
import RPi.GPIO as GPIO
import time
from Adafruit_LED_Backpack import SevenSegment
display = SevenSegment.SevenSegment()
display.begin()
colon = False
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP) #knapp
GPIO.setup(18,GPIO.OUT) #servo
GPIO.setup(5,GPIO.OUT)
GPIO.setup(6,GPIO.OUT)
p = GPIO.PWM(18,50)
p.start(12)
hekto = 4.9
GPIO.output(6, True)
numbers = [5.0]
input_state = GPIO.input(17)
print('Press Ctrl-C to quit.')
while True:
for i in numbers:
display.clear()
display.print_float(i, decimal_digits=2)
display.set_colon(colon)
display.write_display()
time.sleep(0.2)
input_state = GPIO.input(17)
if input_state == False:
numbers[0] = hekto
hekto -= 0.1
print('knapp')
if numbers[0] == 0.0: #open servo
p.ChangeDutyCycle(12.5)
if numbers[0] == -0.1: #close servo reset number
p.ChangeDutyCycle(3.5)
numbers[0] = 5.0