各位大神。求助
我想实现一个按键控制LED 灯的开,闪烁,关。我想设定一个变量,每按一次按键,变量+1,这样就能对应控制LED灯了。哪位大神能帮我实现下,谢谢了 麻烦针对变量的设定,帮我讲解下可以么 。一个小白。 建议你找本书从头看看一般来说,如果你有具体问题这里可能找到答案
但是如果你什么都不懂,是不会有人给你从头讲的 int e;
void setup ()
{
pinMode(4,INPUT); //将4号数字口设置为输入状态
pinMode(12,OUTPUT); //12号数字口设置为输出
digitalWrite(12,1);
int n;
}
void loop()
{
int n =digitalRead(4);//创建一个变量n,将4号数字口的状态采集出来赋值给他。
delay(10);
if (n==1) //判断n是否为高电平,按键按下。
{
{ e=0;
e=e+1; //每次累加值为1
if (e>=2)
{
e=0;
}
}
if (e==1)
{ while(1)
{
delay(500);
digitalWrite(12,1);
delay(500);
digitalWrite(12,0);
}
}
if (e==2)
{ while(1)
{
delay(2000);
digitalWrite(12,1);
delay(2000);
digitalWrite(12,0);
}
}
}
}
以上的程序 我写入后,按下按键,LED只能执行delay(500);的闪烁。我想让按键按一下,LED执行delay(500);的闪烁。再按下执行delay(2000);的闪烁。这样一直循环。各位大神给我指导下,哪里有问题,谢谢了。
zoologist 发表于 2015-4-21 12:25 static/image/common/back.gif
建议你找本书从头看看
一般来说,如果你有具体问题这里可能找到答案
恩我基础不好,我把我写的程序放上面了,您能帮看下 ,有什么问题么 e=0; <-------这里每次赋值为0了啊
e=e+1; //每次累加值为1 zoologist 发表于 2015-4-21 13:44 static/image/common/back.gif
e=0; <-------这里每次赋值为0了啊
e=e+1; //每次累加值为1
我想每按一次按键就累加一个,这样对么?
e=0;这个不需要么? zoologist 发表于 2015-4-21 13:44 static/image/common/back.gif
e=0; <-------这里每次赋值为0了啊
e=e+1; //每次累加值为1
我想每按一次按键就累加一个,这样对么?
e=0;这个不需要么? 你把e=0放在了if(n==1)的{}里面..就等于说每次按下按键 都会先使e=0 然后e++ 也就是说你的e只可能是1 永远加不到2 qww276414529 发表于 2015-4-21 14:18 static/image/common/back.gif
我想每按一次按键就累加一个,这样对么?
e=0;这个不需要么?
或者你想想,e=0; e=e+1; 執行後會有什麼結果, 跟你直接寫 e = 1; 有什麼分別.
你真的只是想把 e 設定為 1 嗎? 每次先等于0然后再加1.那么永远都是0+1,0+1,0+1。
你没学过高中数学的程序吗。。 把等于0去掉才能往上加 女神去哪了 发表于 2015-4-21 14:54 static/image/common/back.gif
你把e=0放在了if(n==1)的{}里面..就等于说每次按下按键 都会先使e=0 然后e++ 也就是说你的e只可能是1 永远加 ...
:D谢谢了 以后还请多指教 Super169 发表于 2015-4-21 15:48 static/image/common/back.gif
或者你想想,e=0; e=e+1; 執行後會有什麼結果, 跟你直接寫 e = 1; 有什麼分別.
你真的只是想把 e 設定為 ...
谢谢了,本人小白,以后还请大家多指教 Ultrady 发表于 2015-4-21 19:52 static/image/common/back.gif
把等于0去掉才能往上加
:D学习了以后还请多指教
页:
[1]
2