'''from machine import Pin, SoftI2C
#定义I2C的对象
i2c = SoftI2C(sda=Pin(12),scl = Pin(13))
#导入通信通信驱动对象
from ssd1306 import SSD1306_I2C
#定义oled对象
oled = SSD1306_I2C(128,64, i2c,addr = 0x3c)
#定义oled要显示的文本
oled.text("Hello,world",10,30)
#在oled上显示文本
oled.show()'''
'''
from machine import Pin,SoftI2C
from ssd1306 import SSD1306_I2C
#初始化OLED
i2c = SoftI2C(sda=Pin(12), scl=Pin(13))
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
oled.fill(0) # 清屏,背景黑色
oled.text('MengJiDou', 0, 0)
oled.text('Distance test:', 0, 15)
Distance = 20 # 设定距离变量
# OLED显示距离
oled.text(str(Distance) + ' CM', 0, 35)
oled.show()
#串口打印
print(str(Distance)+' CM')'''
from HCSR04 import HCSR04 #子文件夹下的调用方式
from machine import Pin,SoftI2C,Timer
from ssd1306 import SSD1306_I2C
#初始化OLED
i2c = SoftI2C(sda=Pin(12), scl=Pin(13))
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
#初始化接口 trig=2,echo=15
trig = Pin(2,Pin.OUT)
echo = Pin(15,Pin.IN)
HC = HCSR04(trig,echo)
#定时器中断的回调函数
def fun(tim):
oled.fill(0) # 清屏,背景黑色
oled.text('MengJiDou', 0, 0)
oled.text('Distance test:', 0, 15)
Distance = HC.getDistance() #测量距离
print(Distance) # 串口打印距离值
# OLED显示距离
oled.text(str(Distance) + ' CM', 0, 35)
oled.show()
#串口打印
print(str(Distance)+' CM')
#开启RTOS定时器
tim = Timer(1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=fun) #周期1s