马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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在没按下按键的时候随机返还高低电平,这样就不对了。具体连接如图如下:
这里还要说下按键4个引脚是怎么分的,按图放置,同颜色箭头所指的两个引脚相通 当按下按键,蓝色箭头所指的引脚和红色箭头所指的引脚相通。 程序如下: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就会灭。
好了这节实验完成了,继续加油吧!Arduino其实很好玩。
|