小猪学arduino—使用DS3231芯片测量温度

上一篇,我们尝试了 DS3231高精度时钟模块的使用 ,今天我们试一下这个芯片集成的数字温度传感器(传感器每64秒采集一次,精度为±3℃)。

看了下uRTCLib库没有温度相关的函数,但实际芯片上是有温度测量模块的,跟时钟一样通过串口通信,为了省事就直接在uRTCLib库上进行改造,以使它支持温度的获取。通过arduino官方开发工具库添加的库默认位置在

/Users/yanjingang/Documents/Arduino/libraries/目录下。

一、uRTCLib添加温度获取功能

vim uRTCLib/src/uRTCLib.h  #添加温度变量和函数声明

class uRTCLib {
	private:
		uint8_t _temperature = 0;
	public:
		uint8_t temperature();
}

vim uRTCLib/src/uRTCLib.cpp  #实际温度获取

void uRTCLib::refresh() { //给串口发送指令,获取温度信息 byte temp; Wire.beginTransmission(URTCLIB_ADDRESS); Wire.write(uint8_t(0x11)); Wire.endTransmission(); Wire.requestFrom(URTCLIB_ADDRESS, 2); temp = Wire.read(); // Here's the MSB _temperature

阅读全文