咨询电话:010-52882318

攻略:用树莓派读取温度传感器MCP9808的数据

时间: 2024-02-17 14:46:55 |   作者: 可控硅触发器系列

产品详情

  MCP9808是一款温度传感器,选用I2C通讯规范来传输接连轮询温度。它支撑报警功用和待机形式,以便在需求时节约电力。在本阐明文档中,咱们将履行几个python指令来获取传感器的温度。

  Microchip 将0x18用作此板上的主地址,凭借芯片上的3个引脚来更改I2C地址抵触时的地址。当调用传感器中的任何寄存器时,该板应写入或取得双字节呼应(MSB优先,LSB终究)。我运用的是 Adafruit 的分线-ND ],其间现已包括一些正偏电阻。

  0x01:0000000X 00011111:这儿的X是装备中的备用位,默以为0,此为接连轮询形式。温度寄存器会一向更新,但存在功耗问题。将此位设为1将中止轮询并节约功耗。

  0x05:AAASMMMM LLLLLLLL:该寄存器包括12位浮点温度,其间“A”为报警信息,“S”为符号位,“M”和“L”别离代表MSB和LSB。终究输出将显现为MMMMLLLL.LLLL。

  请留意,在本阐明中,我没有设置符号位和报警位,但假如你期望丈量零下温度,则有必要进行设置。

  该指令将创立一个待衔接的总线目标,该目标将反过来搜集咱们恳求的I2C数据。接下来,向芯片问询它的温度数据:

  该bus.read_byte_data(Address, Register)将从传感器检索数据,个人会运用关闭的format()函数将信息读取为二进制数,这样是为了使提取这两个字节变得简略。Python一般喜爱运用int或float,但这会形成阻碍,因为会由多个字节回来值。咱们将依照[0:8][8:16]次序将其编制索引,而MSB坐落数组的后半部分。

  除以16可将成果转为MMMMLLLL.LLLL,并取得十进制精度。留意,回来的成果应以摄氏为单位。在上图所示的情况下,咱们从二进制起浮数00010111.0101计算出的温度是23.3125摄氏度。

  因为只需更改MCP9809装备寄存器中的MSB,所以咱们写入一个字节,不过咱们将字符缩短了,因而不会更改寄存器中的LSB。

  要使MCP9808康复到彻底作业功用状况,有必要使传感器取得动力循环或运用寄存器的零改写形式。

  Microchip的规格书 在此传感器的运用中依然很有用,假如你要运用MCP9808,请必须定时查询。留意,本文未触及此传感器的一些重要功用,例如中止、负温度的符号位和待机作业。

  财联社2月16日电,声明显现,美国能源部宣告为弥补战略石油储藏签署合同,购买295万桶美国产原油。

  年薪3789万,场均6+8+6!NBA最大薪资混子诞生,他又要骗大合同

  作用迸裂!OpenAI首个视频生成模型发布,1分钟流通高清,网友:整个职业RIP

  谷歌Gemini 1.5深夜爆破上线,史诗级多模态硬刚GPT-5!最强MoE首破100万极限上下文纪录

  Bose 推出 Ultra Open Earbuds 耳机:耳夹式规划,价格 299 美元

  Intel 酷睿i9-14900KS下月推出:6.2GHz主频 功耗创纪录

相关推荐