【求助】如何关闭自定义函数的循环
本帖最后由 Cupid 于 2012-9-28 09:44 编辑当发送1的时候LED开,当发送2的时候LED闪灯,当发送其它文字的时候关灯。
但是现在不关灯,只要发送了2,就一直闪灯,不关灯。求解决方案。
/*
Serial Control LED
Date:20120925
*/
int pinLED = 13;
char val;
void setup()
{
pinMode(pinLED,OUTPUT);
Serial.begin(9600);
}
void loop()
{
while(Serial.available() > 0)
{
val = Serial.read();
Serial.println(val);
if(val == '1')
{
digitalWrite(pinLED, HIGH);
Serial.println("LED is ON");
}
else if(val == '2')
{
Blink(true);
Serial.println("LED is BLINK");
}
else
{
Blink(false);
digitalWrite(pinLED, LOW);
Serial.println("LED is OFF");
}
}
}
void Blink(bool blStatus)
{
while(blStatus)
{
digitalWrite(pinLED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(pinLED, LOW); // turn the LED off by making the voltage LOW
delay(500);
}
}
int pinLED = 13;
char val;
void setup()
{
pinMode(pinLED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0)
{
val = Serial.read();
Serial.println(val);
if (val == '1')
{
Serial.println("LED is ON");
}
else if (val == '2')
{
Serial.println("LED is BLINK");
}
else
{
Serial.println("LED is OFF");
}
}
if (val == '1')
{
digitalWrite(pinLED, HIGH);
}
else if (val == '2')
{
digitalWrite(pinLED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(pinLED, LOW); // turn the LED off by making the voltage LOW
delay(500);
}
else
{
digitalWrite(pinLED, LOW);
}
}还没测试,不过这样应该可以了 sxd1988 发表于 2012-9-28 10:00 static/image/common/back.gif
还没测试,不过这样应该可以了
原来要这样,明白了。谢了,呵呵 刚玩了一下,嘿嘿
页:
[1]