~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
此教程为VIP教程,提供完整的接线说明,代码示例,必要的代码解释。若非特别说明均为python代码,IDE为THONNY。
如何获得本论坛VIP权限呢?点此查看具体要求。如何进行I2C查询? 点此查看。PICO如何安装固件?点此查看。PICO如何编程和自动运行代码?点此查看
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所需材料:
1、LM75模块:点此购买
2、合适的树莓派PICO版本和配套外设:点此购买
3、必要的 杜邦线(建议母对母,母对公,公对公,均来一些):点此购买 (多了不值钱,少了贼麻烦)
4、必要的 面包板:点此购买
5、电阻包(若有需要):点此购买
教程开始:
树莓派Pico和I2C接口的LM75温度传感器模块,可以通过 MicroPython 编写代码来读取温度数据。以下是一个简单的例程,展示如何连接和读取LM75温度传感器的数据。
硬件连接:
LM75 模块与PICO接线:
VCC -> 3.3V
GND -> GND
SCL -> GP0 (I2C0 SCL)
SDA -> GP1 (I2C0 SDA)
软件准备
给PICO刷好MicroPython固件,方法见开篇。
必要的库
MicroPython 内置了 machine 和 uctypes 等库,这些库可以支持 I2C 通信和读取 LM75 的数据。
示例代码
以下是一个完整的示例代码,用于读取 LM75 温度传感器的数据并在 REPL 中打印出来。
为防止代码格式错误,采用下载代码方式:
代码解释:
I2C 初始化:
i2c = I2C(0, scl=Pin(0), sda=Pin(1), freq=400000)
这行代码初始化 I2C0 接口,设置 SCL 引脚为 GP0,SDA 引脚为 GP1,通信频率为 400kHz。
LM75 地址和寄存器:
LM75_ADDR = 0x48
LM75_TEMP_REG = 0x00
LM75_CONFIG_REG = 0x01
定义 LM75 的 I2C 地址和温度、配置寄存器的地址。
读取温度函数:
def read_temp(i2c, address):
# 发送读取温度寄存器命令
i2c.writeto(address, bytearray([LM75_TEMP_REG]))
# 读取两个字节的数据
data = i2c.readfrom(address, 2)
# 将数据转换为温度值
temp = (data << 8) | data
if temp > 0x7FFF:
temp -= 65536
temp /= 128.0
if temp > 127:
temp -= 256
return temp
该函数发送读取温度寄存器的命令,然后读取返回的两个字节数据,并将其转换为实际的温度值。
主循环
while True:
temperature = read_temp(i2c, LM75_ADDR)
print("Temperature: {:.2f} C".format(temperature))
utime.sleep(1)
在主循环中,每隔 1 秒读取一次温度并打印出来。
若不知道如何在PICO中编程和测试运行程序,请看本贴开头部分!祝您顺利!
|