'''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