用温湿度传感器控制继电器,为什么点了串口助手才能运行,直接外界9V电源却用不了
用温湿度传感器控制继电器,为什么点了串口助手才能运行,拔掉usb线,直接外界9V电源却用不了,以下是程序,目的是在湿度达到40%的时候继电器吸合,45%后,继电器断开,求各位大神指教问题出在哪了,温湿度传感器型号DHT11。本人Arduino新手,大家多多包涵。#define DHT11_PIN 0
int relay=7;
byte read_dht11_dat()
{
byte i = 0;
byte result=0;
for(i=0; i< 8; i++){
while(!(PINC & _BV(DHT11_PIN)));// wait for 50us
delayMicroseconds(30);
if(PINC & _BV(DHT11_PIN))
result |=(1<<(7-i));
while((PINC & _BV(DHT11_PIN)));
}
return result;
}
void setup()
{
DDRC |= _BV(DHT11_PIN);
PORTC |= _BV(DHT11_PIN);
pinMode(relay,OUTPUT);
}
void loop()
{
byte dht11_dat;
byte dht11_in;
byte i;
PORTC &= ~_BV(DHT11_PIN);
delay(18);
PORTC |= _BV(DHT11_PIN);
delayMicroseconds(40);
DDRC &= ~_BV(DHT11_PIN);
delayMicroseconds(40);
dht11_in = PINC & _BV(DHT11_PIN);
delayMicroseconds(80);
dht11_in = PINC & _BV(DHT11_PIN);
delayMicroseconds(80);
for (i=0; i<5; i++)
dht11_dat = read_dht11_dat();
DDRC |= _BV(DHT11_PIN);
PORTC |= _BV(DHT11_PIN);
if(dht11_dat<=40)
{
digitalWrite(relay,HIGH);
}
else if(dht11_dat>=45)
{
digitalWrite(relay,LOW);
}
delay(2000);
}
9v电源的电流是多大?用的变压器还是9v层叠电池?是不是电流不足以驱动继电器工作?可以用蓝牙接串口看看数据输出! 绿林网页 发表于 2013-1-22 08:07 static/image/common/back.gif
9v电源的电流是多大?用的变压器还是9v层叠电池?是不是电流不足以驱动继电器工作?可以用蓝牙接串口看看数 ...
你好 我用的是 双路的方块碳性电池 是不是共地问题? wangican 发表于 2013-1-22 11:01 static/image/common/back.gif
你好 我用的是 双路的方块碳性电池
把接线图发上来吧 http://www.geek-workshop.com/thread-3159-1-1.html
看似有著共同問題,解決了嗎 外置供电时,要求外置电源的电流最好有1A以上。
我试过4个外电源,2个800ma,2个1A的,用800ma的2个都不行,几1A的2个都可以用. 我的必须用打印机线,才能正常,电源多大到时无所谓。
页:
[1]