温湿度传感器检测到湿度后,判断当前湿度低于某个值之后,控制继电器合上,当当前湿度高于某个值后,控制继电器断开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);
}
这个是检测温湿度的程序
我想用3-8译码器的低电平输出通过uln2003后,高电平控制继电器线圈的正极,继电器为G6S-2,+5V
电源继电器 和 控制继电器 他们之间有啥区别 电源继电器和控制继电器的区别: 电源继电器(又称三
我有8051单片机P2口,控制9015(PNP),由9015驱动一个12的继电器,怎么老是我能够只能控制继
本人课程设计需要由单片机控制电路,单片机通过DHT11温湿度传感器读取温度数据,然后与设定的温度进行比较之
各位老师,我弄不明白液位控制器连接到液面上的高,中,低三根线是利用什么原理传送讯号给控制器的,请教各位。谢
随着综合国力的不不断发展,传感器与传感器技术的发展水平也是衡量一个国家综合实力的重要
我想问下这个东西4个引脚该怎么接,Z好能给电路图什么的。不知道要不要加什么电阻限流啊,还有电容什么的。。。
光栅为成对安装,一端发射,一端接收,当中间有物体遮挡住任意一束或几束光线时,信号输出端即接通24V,可以用该
我想用PCI1710板卡输出开关量(4.45V)驱动继电器(HRS1H-S-DC5V),但是不能驱动,改成
#include #include #define uint unsigned int sbit a=P1^4;// sbi