0.1电容很重要啊
:lol学习中。。。。
遥控小车都可以跑了, 发现我还不会用这个小开关。 这篇释了不少疑。 不过还是纳闷,“按键开关串联在led的电路中来开关,这种应用情况比较单一。”按照电路图和远离,按下去才能接通,这还能串联用作开关?要开得按着不懂???
hick 发表于 2013-9-10 22:37 static/image/common/back.gif
遥控小车都可以跑了, 发现我还不会用这个小开关。 这篇释了不少疑。 不过还是纳闷,“按键开关串联在led ...
:lol当导线用。。。。默认关,按下去开
有用, 学习了
想了好久都觉得可以不用一下代码,while(digitalRead(Button)==HIGH) //判断按钮状态,如果仍然按下的话,等待松开。防止一直按住导致LED输出端连续反转
{
delay(1);
}因为在没有这段代码的情况下,就算一直按着按钮,但是以下条件不满足if(digitalRead(Button)==LOW)也就无法执行LED端反转的代码
:lol:lol:lol:lol:lol:lol
讲解详细!!!!!!认真学习!!!!!
:):):):):):):)
感谢 非常有用
单个按键控制单个led的程序,实验了下很好用。但是我现在用3个按键控制3个led灯 就出现问题了。控制出现混乱(有时候按好多次才能亮,有时候按好多次都不亮,有时候按一次就亮,很混乱),不知道应该如何解决,麻烦给下提示。
单个按键控制单个led的程序,实验了下很好用。但是我现在用3个按键控制3个led灯 就出现问题了。控制出现混乱(有时候按好多次才能亮,有时候按好多次都不亮,有时候按一次就亮,很混乱),不知道应该如何解决,麻烦给下提示。
谢谢分享学习一下
{
if(digitalRead(Button)==LOW) //由于本例检测上升沿触发,所以先检测输入是否低电平,
{
delay(10); //然后延时一段时间,
if(digitalRead(Button)==HIGH) //然后检测是不是电平变为高了。是的话,就是刚好按钮按下了。
{
digitalWrite(LED,onoff);//写入当前LED状态onoff,
onoff=(!onoff); //然后LED状态反转,以便下一次使用。
delay(10);//延时一段时间,防止按钮突然断开再按下。
while(digitalRead(Button)==HIGH) //判断按钮状态,如果仍然按下的话,等待松开。防止一直按住导致LED输出端连续反转
{
delay(1);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
if(digitalRead(Button)==LOW)//由于本例检测上升沿触发,所以先检测输入是否低电平
这一句有必要写吗?原理图上有下拉电阻,按键不按下,IO3一直是低电平,按下才会是高电平。所以个人认为这句改成:
if(digitalRead(Button)==HIGH)
最后结果改成这样:
if(digitalRead(Button)==HIGH) //检测是够有按键按下?
{
delay(10); //延时一段时间,
if(digitalRead(Button)==HIGH) //确认有按键按下
{
以后语句不变
(实际例子代码严格说也是有bug的:
if(digitalRead(Button)==LOW)//由于本例检测上升沿触发,所以先检测输入是否低电平,
{
delay(10); //然后延时一段时间,
if(digitalRead(Button)==HIGH) //然后检测是不是电平变为高了。是的话,就是刚好按钮按下了。
{
)
这种方法做的消除抖动效果一般,最好是用定时器,采样8次,判断中间两次,间隔1ms,这样的效果非常好