# Ultrasonic Range Sensor + LCD Display # Trigger = Pin 17 # Echo = Pin 19 # Samples every 100ms from machine import Pin, PWM, time_pulse_us import time import LCD TRIG = 17 ECHO = 19 Navy = LCD.RGB(0, 0, 50) White= LCD.RGB(250,250,250) Grey = LCD.RGB(150,150,150) def setup(): global pins global p_Trig, p_Echo global Navy global Foreground p_Trig = Pin(TRIG, Pin.OUT) p_ECHO = Pin(ECHO, Pin.IN) p_Trig = PWM(Pin(TRIG)) p_Trig.freq(50) p_Trig.duty_u16(32000) time_pulse_us(ECHO, 1, 5000000) p_Echo = Pin(ECHO, Pin.IN, Pin.PULL_UP) LCD.Init() LCD.Clear(Navy) def distance(): x = time_pulse_us(ECHO, 11) * 0.01 return x def loop(): LCD.Line(1,145,479,145,Grey) for i in range(1,25): LCD.Line(i*20,143,i*20,147,Grey) for i in range(5,25,5): LCD.Number(i,2,0,i*20-15,150,Grey, Navy) while True: dis = distance() print (dis, 'cm') X = int(dis*10) if(X>470): X = 470 LCD.Box(1,130,2*X, 140,White) time.sleep(0.1) LCD.Box(1,130,2*X,140,Navy) # Main Routine setup() LCD.Text2('Ultrasonic Range Sensor',10,30,White,Navy) LCD.Text('Trigger = GP17',10,70,Grey,Navy) LCD.Text('Echo = GP19',10,90,Grey,Navy) while(1): loop()