创客联盟网

标题: Arduino小白自学教程009——从digitalWrite到digitalRead之按键实验+视频! [打印本页]

作者: CCFIVE    时间: 2013-7-23 23:36
标题: Arduino小白自学教程009——从digitalWrite到digitalRead之按键实验+视频!
digitalWrite从意思上来说是数字脚的写,digitalRead从意思上来说就是数字脚的读。
顾名思义我们可以用这条语句读出数字脚的高低电平,有什么用呢?一般是用作检测按键是否按下或者其他是否触发。
用法:digitalRead(X),x填写0-13中的任意数字,分别对应数字脚0-13。
假如我这样写digitalRead(7),就表示读出7脚的电平状态,返回HIGH或者LOW。同时,使用digitalRead前要初始化引脚,还记得pinMode吗?
在点亮led灯的时候我们初始化时这样的:pinMode(7,OUTPUT);
现在如果把7脚接按键我们初始化时这样的:pinMode(7,INPUT);
现在说下接法:
首先你要按键控制一个LED灯,按下就亮,不按下就不亮。首先我们不管按键电路,我们先接好LED电路,前面我们已经学习如何点亮一个LED灯,LED串联一个220欧的电阻,负极接GND,正极接数字脚(我现在就接D6)LED的电路就完成了。按键的电路,一边接GND,另外一边接数字脚(我现在就接D7),当按下D7接相当于直接连接到GND上,用digitalRead,它就返还一个LOW回来,但是有个注意的地方,7脚还需要连接1个10K的电阻到VCC那里,这样就能保证在按键没按下时,7脚相当于接到VCC那里,digitalRead平时就会返还HIGH,如果不接这个10K电阻,digitalRead在没按下按键的时候随机返还高低电平,这样就不对了。具体连接如图如下:
(, 下载次数: 96)

这里还要说下按键4个引脚是怎么分的,按图放置,同颜色箭头所指的两个引脚相通
(, 下载次数: 91)
当按下按键,蓝色箭头所指的引脚和红色箭头所指的引脚相通。
程序如下:
void setup()
{
    pinMode(6,OUTPUT);
    pinMode(7,INPUT);
}
void loop()
{
    if(digitalRead(7)==LOW)
    {
        digitalWrite(6,HIGH);
    }
    else
    {
        digitalWrite(6,LOW);
    }
}
这次我们用到新的语句
if(判断条件)
{
        满足条件执行的语句
}
else
{
        不满足条件执行的语句
}
其实if else就是我们中文里面,如果……否则。举个例子,例如如果小明来我家,我就跟他去踢球,否则我就在家做作业。用if……else来写就是这样:
if(小明是否来我家?)
{
        跟他去踢球
}
else
{
        在家做作业
}
这样好理解一点吗?多用几次就熟悉了
还有程序里面的判断不能直接写是否(废话。。。),要用两个等于号”==”
例如我们上面的程序,判断按键是否按下,按下7脚返回是LOW,我们就这样写
if(digitalRead(7)==LOW)

if(digitalRead(7)==LOW)//如果7脚检测到低电平,即检测到LOW
    {
        digitalWrite(6,HIGH);//满足判断后,6脚输出高电平,让led亮
    }
    else //否则
    {
        digitalWrite(6,LOW);//6脚输出低电平,让led灭
    }


按照老方法,点击编写,下载,把程序烧写到AI,然后我们就可以看到实验现象,如果我们按住按键,led就会亮,如果不按按键,led就会灭。 (, 下载次数: 88)
(, 下载次数: 91)
好了这节实验完成了,继续加油吧!arduino其实很好玩。
https://player.youku.com/player.php/sid/XNTg5ODA2NzEy/v.swf
作者: 爷灬淡定    时间: 2013-8-11 16:26
最后的Else 的E应该小写
作者: CCFIVE    时间: 2013-8-11 18:48
爷灬淡定 发表于 2013-8-11 16:26
最后的Else 的E应该小写

谢谢指正

作者: 爷灬淡定    时间: 2013-8-12 10:30
怎么让按钮更稳定,有时候按钮如果没有按紧,也会亮




欢迎光临 创客联盟网 (https://immaker.org/) Powered by Discuz! X3.3