Arduino 电子积木基础套装 源代码有错误
在抢答器的源码里:void key_scan()//按键扫描子程序
{
int key_1,key_2,key_3;//定义发量
key_1=analogRead(2);//读叏模拟第一引脚癿电压值
key_2=analogRead(3);//读叏模拟第二引脚癿电压值
key_3=analogRead(4);//读叏模拟第三引脚癿电压值
if(key_1<204&&key_2<204&&key_3<204)//如果各按键电压值都小于204(即模拟值癿1V),可以判断没有按键按下
{ return;//跳出本子凼数
}
if(key_1>818)//如果按键1癿电压值都大于818(即模拟值癿4V),则可以判断按键1被按下
{
delay(10);//由于有抖动,所以延时100ms再一次判断
if(key_1>818)//如果按键1癿电压值都大于818(即模拟值癿4V),则可以判
问题在这里,由于delay函数是让程序停留在此处,此时并没有再一次去读key_1的值,如果因为抖动引起key_1值大于818,加了这个delay并没有改变key_1的值呀 非常感谢指出错误。 :lol:lol:lol if(key_1>818)//如果按键1癿电压值都大于818(即模拟值癿4V),则可以判断按键1被按下
{
delay(10);//由于有抖动,所以延时100ms再一次判断
key_1=analogRead(2);
if(key_1>818)//如果按键1癿电压值都大于818(即模拟值癿4V),则可以判
在delay后再加上一句读取key_1,应该是正解是吧。 这个延时是处理按键读取的一个常用手法,按钮按下时会由于接触时电平产生毛刺,这个延时就用来消除毛刺。
页:
[1]