用arduino做一个简易倒计时器 20
我想用arduino做一个倒计时器,设想是这样的:按钮按下的时候开始1分钟倒计时,倒计时结束前30秒黄灯亮,倒计时结束时红灯亮。然后再次按下按钮时红灯灭并再次开始倒计时。...
我想用arduino做一个倒计时器,设想是这样的:按钮按下的时候开始1分钟倒计时,倒计时结束前30秒黄灯亮,倒计时结束时红灯亮。然后再次按下按钮时红灯灭并再次开始倒计时。我写的代码是这样的,但是实现不了再次按下按钮重置这一个操作。求大神解惑。
const int button=2;
const int LED_R=8;
const int LED_Y=9;
boolean button_old=LOW;
boolean button_now=LOW;
boolean LED_state=LOW;
void setup() {
pinMode(LED_Y,OUTPUT);
pinMode(LED_R,OUTPUT);
pinMode(button,INPUT);
}
void loop() {
button_now=digitalRead(button);
if(button_old==LOW&&button_now==HIGH)
{
delay(30000);
LED_state=!LED_state;
digitalWrite(LED_Y,LED_state);
delay(30000);
digitalWrite(LED_Y,LOW);
digitalWrite(LED_R,LED_state);
}
} 展开
const int button=2;
const int LED_R=8;
const int LED_Y=9;
boolean button_old=LOW;
boolean button_now=LOW;
boolean LED_state=LOW;
void setup() {
pinMode(LED_Y,OUTPUT);
pinMode(LED_R,OUTPUT);
pinMode(button,INPUT);
}
void loop() {
button_now=digitalRead(button);
if(button_old==LOW&&button_now==HIGH)
{
delay(30000);
LED_state=!LED_state;
digitalWrite(LED_Y,LED_state);
delay(30000);
digitalWrite(LED_Y,LOW);
digitalWrite(LED_R,LED_state);
}
} 展开
1个回答
2016-09-28
展开全部
计时用delay是个很大的麻烦,因为delay时不响应任何按钮之类的检测,相当于假死状态。
把按钮检测改为外部中断,可以勉强用delay,其实计时也可以用中断,搜些中断资料看吧
把按钮检测改为外部中断,可以勉强用delay,其实计时也可以用中断,搜些中断资料看吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询