from lcdi2c import*
from machine import ADC, time_pulse_us
from time import sleep,sleep_us
from math import log
from utime import sleep
echo = Pin(19, Pin.IN)
trigger = Pin(20, Pin.OUT)
BETA = 3950
sensor=ADC(Pin(27))
def display(distance,temp):
cmd_wrt(0x80)
string_write("DIS:")
string_write(str(int(distance)))
string_write("cm")
if distance>10:
string_write(", far")
else:
string_write(", near")
cmd_wrt(0xc0)
string_write("TEMP:")
string_write(str(int(temp)))
string_write("^C")
if temp>30:
string_write(", hot")
else:
string_write(", cold")
def get_distance():
trigger.value(1)
sleep_us(10)
trigger.value(0)
timing = time_pulse_us(echo,1,1000000)
if timing<0:
print("error measurement")
else:
distance=timing/58
print("distance",distance,"cm")
return distance
def get_temp():
nilai=sensor.read_u16()
celsius = 1 / (log(1/(65535.00/nilai - 1)) / BETA + 1.0 / 298.15) - 273.15;
print("temperature",celsius,"^C")
return celsius
lcd_start()
while 1:
display(get_distance(),get_temp())
sleep(0.2)