项目是在相应环境中检测土壤湿度,以及检测空气温度。
软件环境: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;
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』