仪器社区

Arduino中,温湿度传感器检测温湿度并控制继电器动作,的程序

zyz3028365615 2016-10-28
温湿度传感器检测到湿度后,判断当前湿度低于某个值之后,控制继电器合上,当当前湿度高于某个值后,控制继电器断开intDHpin=8;bytedat[5];byteread_data(){bytedata;for(inti=0;i<8;... 温湿度传感器检测到湿度后,判断当前湿度低于某个值之后,控制继电器合上,当当前湿度高于某个值后,控制继电器断开
int DHpin = 8;
byte dat[5];
byte read_data()
{
byte data;
for(int i=0; i<8; i++)
{
if(digitalRead(DHpin) == LOW)
{
while(digitalRead(DHpin) == LOW); //等待 50us;
delayMicroseconds(30); //判断高电平的持续时间,以判定数据是‘0’还是‘1’;
if(digitalRead(DHpin) == HIGH)
data |= (1<<(7-i)); //高位在前,低位在后;
while(digitalRead(DHpin) == HIGH); //数据‘1’,等待下一位的接收;
} } return data; } void start_test() { digitalWrite(DHpin,LOW); //拉低总线,发开始信号; delay(30); //延时要大于 18ms,以便 DHT11 能检测到开始信号; digitalWrite(DHpin,HIGH); delayMicroseconds(40); //等待 DHT11 响应; pinMode(DHpin,INPUT); while(digitalRead(DHpin) == HIGH); delayMicroseconds(80); //DHT11 发出响应,拉低总线 80us; if(digitalRead(DHpin) == LOW); delayMicroseconds(80); //DHT11 拉高总线 80us 后开始发送数据; for(int i=0;i<4;i++) //接收温湿度数据,校验位不考虑; dat[i] = read_data(); pinMode(DHpin,OUTPUT); digitalWrite(DHpin,HIGH); //发送完一次数据后释放总线,等待主机的下一次开始信号; } void setup() { Serial.begin(9600); pinMode(DHpin,OUTPUT); } void loop() { start_test(); Serial.print("Current humdity = "); Serial.print(dat[0], DEC); //显示湿度的整数位; Serial.print('.'); Serial.print(dat[1],DEC); //显示湿度的小数位; Serial.println('%'); Serial.print("Current temperature = "); Serial.print(dat[2], DEC); //显示温度的整数位; Serial.print('.'); Serial.print(dat[3],DEC); //显示温度的小数位; Serial.println('C'); delay(700); } 这个是检测温湿度的程序
评论
全部评论
流量通速递员
温度传感器(temperature transducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。
16 0 2016-10-29 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论