from time import sleep_us, sleep
from machine import Pin, time_pulse_us, I2C
from pico_i2c_lcd import I2cLcd
pin_trig = Pin(16, Pin.OUT)
pin_echo = Pin(17, Pin.IN)
cicalino = Pin(6,Pin.OUT)
I2C_Led = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
indirizzo = I2C_Led.scan()[0]
lcd_0 = I2cLcd(I2C_Led, indirizzo, 2, 16)
vLed = [Pin(5, Pin.OUT), Pin(4, Pin.OUT), Pin(21, Pin.OUT),
Pin(20, Pin.OUT), Pin(19, Pin.OUT), Pin(18, Pin.OUT)]
sleep(0.1)
while True:
pin_trig.value(1)
sleep_us(10)
pin_trig.value(0)
tempous = time_pulse_us(pin_echo , 1)
distanza = (0.0343 * tempous) / 2
print("distanza:" + str(distanza) + " cm")
lcd_0.clear()
lcd_0.putstr("Distanza:\n" + str(round(distanza)) + " cm" )
if(distanza<=200):
vLed[0].value(1)
else:
vLed[0].value(0)
if(distanza<=150):
vLed[1].value(1)
else:
vLed[1].value(0)
if(distanza<=100):
vLed[2].value(1)
else:
vLed[2].value(0)
if(distanza<=50):
vLed[3].value(1)
else:
vLed[3].value(0)
if(distanza<=30):
vLed[4].value(1)
else:
vLed[4].value(0)
if(distanza<=15):
vLed[5].value(1)
else:
vLed[5].value(0)
if (distanza <= 10):
for _ in range(5):
for led in vLed:
led.value(1)
sleep(0.2)
for led in vLed:
led.value(0)
sleep(0.2)
if(distanza<=50):
cicalino.value(1)
else:
cicalino.value(0)
sleep(0.1)