模块工作于IIC的从机模式,可以与外部的MCU相联,内部含上拉电阻。
模块器件从机地址是:0x31
从机地址格式:
BIT6 |
BIT5 |
BIT4 |
BIT3 |
BIT2 |
BIT1 |
BIT0 |
|
0 |
1 |
1 |
0 |
0 |
0 |
1 |
R/W Bit |
R/W Bit: Read = 1/Write = 0
模块的写操作地址是:0x62,读操作地址是:0x63。
主机发送时序:
1) 发送开始信号
2) 发送地址写(从机地址+ R/W Bit(0) = 0x62)和检查应答
3) 发送读命令(ASCII‘R’: 0x52))和检查应答
4) 发送停止信号
5) 发送开始信号
6) 发送地址读(从机地址 + R/W Bit(1) = 0x63)和检查应答
7) 从模块读7个字节并发送应答
|
CO2浓度 |
保留 |
保留 |
保留 |
保留 |
|
0x08 |
浓度高字节 |
浓度低字节 |
0x00 |
0x00 |
0x00 |
0x00 |
8) 发送停止信号
4.2 UART通讯 (标准配置)
波特率:38400bps,8位数据,1位停止位,无校验位
数据为ASCII输出,每帧数据字节数不固定,32开头,\r\n结尾
传感器主动上传浓度值,数据ASCII码形式输出,格式如下:
32 |
32 |
x |
x |
x |
x |
x |
32 |
p |
p |
m |
\r |
\n |
其中32为空格的ASCII码,输出以换行符结尾
例如: 输出12345 ppm格式如下:
|
|
1 |
2 |
3 |
4 |
5 |
|
p |
p |
m |
0x20, 0x20, 0x31, 0x32, 0x33, 0x34, 0x35, 0x20, 0x70, 0x70, 0x6d,
4.4 PWM输出 (可定制)
管脚14为PWM波形输出,定义如下
CO2 浓度输出范围 : 0ppm to 50000ppm CO2
周期 : 1001 ms ±5%
周期起始段高电平输出 :0.5ms (名义上)
中部周期 :1000.0ms ±2%
周期结束段低电平输出 :0.5ms (名义上)
如何通过 PWM获得当前 CO2 浓度值的计算公式:
Cppm =50000×(TH-0.5ms)/(TH+TL-1ms), 其中:
Cppm为通过计算得到的 CO2 浓度值,单位为 ppm;
TH为一个输出周期中输出为高电平的时间;
TL为一个输出周期中输出为低电平的时间;