from machine import ADC,Pin, time_pulse_us
from utime import sleep, sleep_us
from math import log
echo = Pin(16, Pin.IN)
trigger = Pin(17, Pin.OUT)
seg1 = [Pin(0, Pin.OUT), Pin(1, Pin.OUT), Pin(2, Pin.OUT), Pin(3, Pin.OUT), Pin(4, Pin.OUT),
Pin(5, Pin.OUT), Pin(6, Pin.OUT), Pin(7, Pin.OUT)]
seg2 = [Pin(8, Pin.OUT), Pin(9, Pin.OUT), Pin(10, Pin.OUT), Pin(11, Pin.OUT), Pin(12, Pin.OUT),
Pin(13, Pin.OUT), Pin(14, Pin.OUT), Pin(15, Pin.OUT)]
segpattern = [[0, 0, 0, 0, 0, 0, 1, 1], [1, 0, 0, 1, 1, 1, 1, 1], [0, 0, 1, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 1, 1, 0, 1], [1, 0, 0, 1, 1, 0, 0, 1], [0, 1, 0, 0, 1, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0, 0, 1]]
def display(value):
value = min(value,99)
a=int(value%10)
b=int(value/10)
for i in range(8):
seg1[i].value(not(segpattern[a][i]))
seg2[i].value(not(segpattern[b][i]))
def dist():
trigger.value(1)
sleep_us(10)
trigger.value(0)
timing=time_pulse_us(echo,1,1000000)
if timing<0:
print("error")
else:
distance=timing/58.82
print("Distance",distance,"cm")
display(int(distance))
while 1:
dist()
sleep(0.1)