|
本帖最后由 Fighting 于 2013-3-10 01:31 编辑
我想利用一个L35和一个LED灯做一个简单的警报,是实现利用L35输出的模拟值为35度时,LED进入呼吸灯状态,但在代码上遇到了困难,因为输出的是一个模拟值,在if语句不能直接输入dat==35,大神帮帮忙!!!
哈哈,自己搞定了,原来是没有声明,只要把呼吸灯的代码放到while(1){}里面就行了,代码如下
int potPin = 0; //定义模拟接口0 连接LM35 温度传感器
int ledPin = 9; //定义LED接口
void setup()
{
Serial.begin(9600);//设置波特率
pinMode(ledPin, OUTPUT); //LED为输出模式
}
void loop(){
digitalWrite(ledPin,HIGH); //先让等灭
while(1){ //不断循环
int val;//定义变量
int dat;//定义变量
val=analogRead(0);// 读取传感器的模拟值并赋值给val
dat=(125*val)>>8;//温度计算公式
Serial.print("Tep:");//原样输出显示Tep 字符串代表温度
Serial.print(dat);//输出显示dat 的值
Serial.println("C");//原样输出显示C 字符串
delay(500);//延时0.5 秒
*如果判断当dat输出的温度是大于或等于25时,进入呼吸灯警报状态*
if(dat>=25)
{
for(int i=1;i<1000;i++)
{
digitalWrite(ledPin, HIGH);
delayMicroseconds(i);
digitalWrite(ledPin, LOW);
delayMicroseconds(1000-i);
}
for(int i=1;i<1000;i++)
{
digitalWrite(ledPin, HIGH);
delayMicroseconds(1000-i);
digitalWrite(ledPin, LOW);
delayMicroseconds(i);
}
digitalWrite(ledPin,HIGH); //当温度低于25时,让LED等灭
}
}
}
|
-
代码
|