|
|
本帖最后由 hxkdtc123 于 2016-5-12 10:40 编辑
温度低于31度的时候,加热管不工作(也就是说继电器不跳),温度高于31的时候继电器也没反应,这代码有问题吗?
附上代码
int LM35 = 0 ;//温度传感器
int farepan = 8 ;//加热管引脚(其实是连接继电器的,用继电器控制加热管开合)
int val;//温度传感器电压值
int wendu;//转换成温度值
void setup()
{
Serial.begin(9600);
pinMode(farepan,OUTPUT);//发热管(继电器引脚)为输出模式
}
void loop()
{
val = analogRead(LM35);//读取温度传感器的电压值
wendu = (125*val)>>8 ; //转换成实际温度值
delay(500);
if(wendu < 31){int jiare();}//如果读取的温度小于31度则进入加热子函数
Serial.print("Tep : ") ; //原样输出显示Tep字符串代表温度
Serial.print(wendu) ; //输出显示dat的值
Serial.println("C"); //原样输出显示C字符串
delay(1000);
}
int jiare()//加热子函数
{
digitalWrite(farepan,LOW);//继电器是低电平有效的,所以给LOW就相当于接通加热管
delay(10000);//加热10秒钟
val = analogRead(LM35);
wendu = (125*val)>>8 ;//再次检测温度值
delay(500);
if(wendu < 31)
{
int jiare();//如果温度还是低于31度则返回加热子函数重新加热10秒
}
else
{
digitalWrite(farepan,HIGI);//如果已经加热到31度以上,关闭加热管,退出子函数,返回主函数
}
} |
|