from machine import Pin, ADC, PWM
from utime import sleep, sleep_ms
import PicoRobotics
board = PicoRobotics.KitronikPicoRobotics()
LED_V = Pin(16, Pin.OUT)
led4_green = Pin(19, Pin.OUT)
LED_P = Pin(17, Pin.OUT)
led5_orange = Pin(20, Pin.OUT)
LED_R= Pin(21, Pin.OUT)
led3_red = Pin(18, Pin.OUT)
POT = ADC(28)
BT = Pin(22, Pin.IN, Pin.PULL_UP)
servo_pin = Pin(27)
servo_pwm = PWM(servo_pin)
servo_pwm.freq(50)
print('Appuyez sur le bouton pour démarrer le system')
# Attendre que le bouton soit relâché pour commencer
while True:
if BT.value() == 0:
sleep_ms(700)
break
print('Appuyez sur le bouton pour lever le pont!')
# Boucle principale
while True:
if BT.value() == 1:
LED_R1.value(0)
LED_R.value(0)
LED_V.value(1)
servo_pwm.duty_u16(1500)
if BT.value() == 0:
LED_V.value(0)
servo_pwm.duty_u16(4900)
duree_totale = (POT.read_u16()/6000) # Définir la durée totale de levage et descente
debut = utime.time()
pv=(100/POT.read_u16()/600)
while utime.time() - debut < duree_totale:
print("levage du pont...")
LED_P.value(1)
LED_R1.value(1)
sleep_ms(400)
LED_R1.value(0)
LED_R.value(1)
sleep_ms(400)
LED_R.value(0)
LED_P.value(0)
board.motorOn(1, 'f' , pv )
board.motorOn(1, 'f' , 0 )
print('levage fini.')
print('Appuyer sur le bouton pour descendre le pont!')
while True:
LED_R.value(1)
if BT.value() == 0:
duree_totale = (POT.read_u16()/6000) # Définir la durée totale de levage et descente
debut = utime.time()
pv=(100/(POT.read_u16()/600))
while utime.time() - debut < duree_totale:
print("descente du pont...")
board.motorOn(1, 'r' , pv )
LED_P.value(1)
LED_R.value(0)
LED_R1.value(1)
sleep_ms(400)
LED_R1.value(0)
LED_R.value(1)
sleep_ms(400)
LED_R.value(0)
LED_P.value(0)
board.motorOn(1, 'f' , 0 )
LED_V.value(1)
sleep(1)
print('descente fini.')
break