|
項目是在相應環境中檢測土壤濕度,以及檢測空氣溫度。 軟件環境:Keil C51軟件 硬件環境:KST 51開發( 自帶 溫度、顯示器模塊) 使用模塊: 土壤濕度傳感器 PCF8591 AD轉換模塊 DS1302時鐘模塊
土壤濕度傳感器1.傳感器適用于土壤的濕度檢測 2.比較器采用LM393芯片,工作性能穩定 3.工作電壓3.3V-5V 4.模塊中藍色的電位器是用于土壤濕度的閥值調節,順時針調節,控制的濕度會越大,逆時針越小; 5.數字量輸出D0可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測土壤濕度; 6.小板模擬量輸出AO可以和AD模塊相連,通過AD轉換,可以獲得土壤濕度更精確的數值; PCF8591 AD轉樣模塊PCF8591 是具有I2C 總線接口的8 位A/D 及D/A 轉換器。有4 路A/D 轉換輸入,1 路D/A 模擬輸出。這就是說,它既可以作A/D 轉換也可以作D/A 轉換。A/D 轉換為逐次比較型。電源電壓典型值為5V。
AIN0~AIN3:模擬信號輸入端。
A0~A3:引腳地址端。
VSS:電源負極。
SDA、SCL:I2C 總線的數據線、時鐘線。
OSC:外部時鐘輸入端,內部時鐘輸出端。
EXT:內部、外部時鐘選擇線,使用內部時鐘時EXT 接地。
AGND:模擬信號地。
VREF:基準電源端。
AOUT:D/A 轉換輸出端。
VDD:電源端。(2.5~6V)
本模塊左邊和右邊分別外擴2路排針接口,分別說明如下: 左邊 AOUT 芯片DA輸出接口 AINO芯片模擬輸入接口0 我在使用的時候接的時A0,接的是光敏傳感器的AO口; AIN1芯片模擬輸入接口1 AIN2芯片模擬輸入接口2 AIN3芯片模擬輸入接口3 右邊 SCL IIC時鐘接口 接KST 51開發板的SCL 口 SDA IIC數字接口 接KST 51開發板的SDA口 GND 模塊地 外接地 VCC 電源接口 外接3.3v-5v 我用的是3.3
我用的是pcf8591模塊。包含了熱敏和光敏電阻。 模塊共有3個紅色短路帽,分別作用如下: P4 接上P4短路帽,選擇熱敏電阻接入電路
P5 接上P5短路帽,選擇光敏電阻接入電路
P6 接上P6短路帽,選擇0-5V可調電壓接入電路
土壤濕度傳感器主程序:
unsigned int val; unsignedchar str[10]; EA= 1; ConfigTimer0(10); lcd1602Init(); while(1) { if(flag300ms) { flag300ms= 0; GetADCValue(3);//獲取土壤濕度 // str = *INT8UtostrHEX(val); lcd1602Display(0,1,INT8UtostrHEX(val));//顯示到液晶上 } } PCF8591 AD轉樣模塊主程序:
/*讀取當前的ADC轉換值,、chn-ADC通道號0-3*/ unsigned char GetADCValue(unsigned charchn) { unsignedchar val; Start_I2c(); if(!writeI2C(0x91<<1))//尋址PCF8591,如未答應,則停止操作并返回0 { Stop_I2c(); return0; } writeI2C(0x40|chn);//寫入控制字節,選擇轉換通道 Start_I2c(); writeI2C((0x48<<1)|0x01);//尋址PCF8591,指定后續為讀操作 NoAckI2c();//先空讀一個字節,提供采樣轉換時間 *str= ReadADC();//讀取剛剛轉換完的值 Stop_I2c(); returnval;
|