如何使用arduino 更改传感器寄存器的内容,这里以更改MLX90614的地址为例

本文档详细介绍了如何使用Arduino平台配合MLX90614红外温度传感器进行地址修改,并涉及CRC8校验的实现过程。作者分享了修改寄存器地址的步骤,包括初始化、写入操作及校验步骤,适用于对传感器编程感兴趣的读者。
摘要由CSDN通过智能技术生成

这里参考了这篇文章(ARDUINO使用MLX90614红外温度传感器研究笔记_雨田大大的博客-CSDN博客_mlx90614红外传感器),构建了一个修改地址的程序关于crc校验的部分(CRC(循环冗余校验)在线计算_ip33.com,)自己可以在线运算

简单说一下过程,先写入一个地址(这里用的是默认 地址00)再写入寄存器地址(0x2E)低八位(0x3A)高八位(0x00)通过CRC8校验得到14,依次写入便可修改

 

 这里附上源码

#include<Wire.h>
void setup() {
  // put your setup code here, to run once:
Wire.begin();
Serial.begin(9600);
}
uint16_t result1;
void loop() {
  // put your main code here, to run repeatedly:
//这里第一次写入00
Wire.beginTransmission(0x00);
Wire.write(0x2E);
Wire.write(0x00);
Wire.write(0x00);
Wire.write(0x6F);//这个是00 2e 00 00 CRC-8校验过来了
Wire.endTransmission();
delay(1000);
//这个是第二次修改地址
Wire.beginTransmission(0x00);
Wire.write(0x2E);
Wire.write(0x3A);
Wire.write(0x00);
Wire.write(0x14);//这个是00 2e 3a 00校验 
Wire.endTransmission();
delay(1000);
//这个会访问地址的寄存器,在控制台打印出来
Wire.beginTransmission(0x00);
Wire.write(0x2E);
Wire.endTransmission(false);
Wire.requestFrom(0x00,3);
result1 =Wire.read();
result1 |=Wire.read()<<8;
Serial.println(result1,HEX);


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值