关于modbus温湿度传感器,IIC热成像仪相关知识点总结
Modbus協議(工業級溫濕度傳感器)
Modbus協議兩種傳輸方式:
ASCII 模式:
RTU? ?模式:
溫濕度傳感器的數據格式
IIC協議(熱成像儀AMG8833)
IIC協議的四種基本信號的時序圖及程序
void IIC_Start(void) {SDA_OUT(); IIC_SDA=1; delay_us(5); IIC_SCL=1;delay_us(5);IIC_SDA=0;//START:when CLK is high,DATA change form high to low delay_us(5);IIC_SCL=0; } void IIC_Stop(void) {SDA_OUT();//sda??ê?3?IIC_SCL=0;delay_us(5);IIC_SDA=0;//STOP:when CLK is high DATA change form low to highdelay_us(5);IIC_SCL=1; delay_us(5);IIC_SDA=1;delay_us(5); }u8 IIC_Wait_Ack(void) {u8 ucErrTime=0;SDA_IN(); IIC_SDA=1;delay_us(1); IIC_SCL=1;delay_us(1); while(READ_SDA){ucErrTime++;if(ucErrTime>250){IIC_Stop();return 1;}}IIC_SCL=0; delay_us(5); return 0; } void IIC_Ack(void) {IIC_SCL=0;SDA_OUT();IIC_SDA=0;delay_us(2);IIC_SCL=1;delay_us(2);IIC_SCL=0; } void IIC_NAck(void) {IIC_SCL=0;SDA_OUT();IIC_SDA=1;delay_us(2);IIC_SCL=1;delay_us(2);IIC_SCL=0; }
IIC協議的數據傳輸格式
1.主機向從機發送數據2.主機從從機讀數據
IIC的尋址字節格式
高七位為地址位,bit0為讀寫控制位。 需要注意的是:一般器件的告訴的地址需要左移一位,才能最為IIC的尋址地址。
例如:amg8833的地址為0X69,如果你想去寫數據到這個器件,那么你需要將0X69左移一位。 0X69<<1;? ?? ???如果你想去讀這個器件的數據,那么你需要將0X69左移一位,并且 或 上一個0X01; (0X69<<1)|0X01;
AMG8833熱成像儀介紹
AMG8833內部配置了一個熱敏電阻。用于檢驗環境溫度。更大的作用是用于測量你的通過IIC時序拿到的數據對不對。其數據格式如下:
0X0E為他的地址低8位。0X0F為它地址的高8位。
高8位的地址中只有bit0 bit1 bit2 是數據位。bit3是符號控制位。
11位數據位組成的數據需要乘0.0625度,才是我們熱敏電阻測到的溫度值。
程序如下:?
u16? thermistoor;
u8? ??thermistoor_L;
u8? ??thermistoor_H;
thermistoor=thermistoor_H<<8;
thermistoor=thermistoor|thermistoor_L;
thermistoor=thermistoor&0x7FF;
temperature=thermistoor*0.0625;
AMG8833內部還有用紅外測量的溫度值。一共64個像素值。分高低地址分別存在地址0X80——0XFF。數據格式
如下:
0X80為他的地址低8位。0X81為它地址的高8位。
高8位的地址中只有bit0 bit1 bit2 是數據位。bit3是符號控制位。
11位數據位組成的數據需要乘0.25度,才是我們紅外測到的溫度值。
程序如下:?
u16? thermistoor;
u8? ??pixel_L;
u8? ??pixel_H;
pixel=pixel_H<<8;
pixel=pixel|pixel_L;
pixel=pixel&0x7FF;
temperature=pixel*0.25;
還有一些關于AMG8833熱成像儀配置相關的寄存器如下
下面上張熱成像儀得到的數據
左上角那個數據是熱敏電阻采集得到的數據。下面8*8矩陣的數據按如下格式存放
如有不足之處或者是更好的處理建議,請與作者聯系。QQ:945116700 郵箱 :duo_lin0119@163.com
謝謝各位的閱讀。
總結
以上是生活随笔為你收集整理的关于modbus温湿度传感器,IIC热成像仪相关知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。