程序设计基础中按键控制灯问题求解
我是根据书上的例子做的 为什么不能实现按键按下灯亮 再按下 灯灭的效果呢 直接就不亮 能帮我看下代码么 谢谢int redPin=11;
int buttonPin=7;
boolean redState=false;
void setup()
{
pinMode(redPin,OUTPUT);
pinMode(buttonPin,INPUT_PULLUP);
}
void loop()
{
while(digitalRead(buttonPin)==HIGH){}
if(redState==true)
{digitalWrite(redPin,LOW);
redState=!redState;
}
else
{
digitalWrite(redPin,HIGH);
redState=!redState;
}
delay(500);
} 按钮按下是“High”,还是“low”请检查电路,并与程序相对应。 代码没问题
一定是你电路接错了 !
或是 pin 搞錯了
林定祥 发表于 2015-4-25 18:10 static/image/common/back.gif
按钮按下是“High”,还是“low”请检查电路,并与程序相对应。
好的 我在试试 谢谢了 tsaiwn 发表于 2015-4-25 18:55 static/image/common/back.gif
代码没问题
一定是你电路接错了 !
或是 pin 搞錯了
好的 我试试 谢谢了 林定祥 发表于 2015-4-25 18:10 static/image/common/back.gif
按钮按下是“High”,还是“low”请检查电路,并与程序相对应。
确实可以了 我想问一下 如果我用两个按键控制两盏灯 也想达到这样的效果 该怎么改代码的 我是相当于复制了一段 可是只能按点亮的顺序 才能熄灭 不能实现任意的点亮与熄灭 求解 tsaiwn 发表于 2015-4-25 18:55 static/image/common/back.gif
代码没问题
一定是你电路接错了 !
或是 pin 搞錯了
确实可以了 我想问一下 如果我用两个按键控制两盏灯 也想达到这样的效果 该怎么改代码的 我是相当于复制了一段 可是只能按点亮的顺序 才能熄灭 不能实现任意的点亮与熄灭 求解 蓝色骨骨头 发表于 2015-4-26 09:30 static/image/common/back.gif
确实可以了 我想问一下 如果我用两个按键控制两盏灯 也想达到这样的效果 该怎么改代码的 我是相当于复制了 ...
因为你用 while( ) 等到不是 HIGH (就是按了按钮)才会离开 while
所以, 变成只要不按就会被卡住在该 while( ) :
while(digitalRead(buttonPin)==HIGH){}
那样底下的句子都不会被执行
如果只有两个按钮可以稍微改一下即可:
int aa, bb;
aa = digitalRead(buttonPin);
bb = digitalRead(buttonPin222);
while( (aa == HIGH)&&(bb == HIGH) ){
aa = digitalRead(buttonPin);
bb = digitalRead(buttonPin222);
}
// 只要有按下一个就会下来到这
if(aa == LOW) {
一定是按了 buttonPin
}else{
不用看 bb , 一定是 bb 变 LOW 啦
}
如果有超过 2 个 按钮
那最好不要用 while 一直等按钮 !
tsaiwn 发表于 2015-4-26 18:13 static/image/common/back.gif
因为你用 while( ) 等到不是 HIGH (就是按了按钮)才会离开 while
所以, 变成只要不按就会被卡住在该 whi ...
好的 谢谢大神指点哈
页:
[1]