数字I/O

       控制Arduino的方式可大致分为数字I/O和模拟I/O两种,我们先学习数字I/O。首先,字典中对“数字”的一种解释是“采用数字化技术的”,可能会有读者不理解这种说法。没关系,将Arduino里的数字控制理解为一种开关即可。开关可以被打开或关闭,控制数字I/O信号的引脚,可以称为“数字I/O引脚”。

       在Arduino UNO上,可以看到标有DIGITAL字样的位置写着0~13引脚。这些引脚便是“数字I/O引脚”。通过数字I/O引脚可以控制数字I/O信号。准确地说,查看数字I/O引脚上是连接还是断开电源,这就是数字输出;查看是否有电流流入,则是数字输入。0~13是各数字I/O引脚地名称,通过数值可以控制所需位置上的数字引脚。第一次使用的人最好不要连接0号和1号引脚,因为与它们连接的部分负责和计算机之间的通信,使用不当容易出现异常结果,应当金可能使用2~13号引脚。使用数字I/O引脚时,一定要先设置该数字I/O引脚用于输入还是输出,此时用到的就是pinMode函数。


设置数字I/O引脚

//设置13号引脚为输入。

//INPUT式值为0的常数。

pinMode(13,INPUT);

//设置13号引脚为输入。

//INPUT式值为0的常数。

pinMode(13,OUTPUT);

       pinMode函数需要两个函数:第一个是引脚编号,相当于引脚名称;第二个是设置值,表示输入或输出。各位将自己享用的编号写入第一个参数,第二个参数使用的是常数。常数和变量类似,都是向“碗”中放入值。不同之处在于,常数在第一次声明的同时就赋值,且赋值之后无法修改。因此,常数值一般不变。pinMode函数里的第二个参数使用的常数是INPUT和OUTPUT,如上所述,因为这两个参数也是“碗”的一种,所以里面会带着某个值。INPUT里放着0,OUTPUT里放着1。也可不写INPUT或OUTPUT,直接写0或1。INPUT意为“输入”,OUTPUT表示“输出”。顾名思义,若想将对应引脚设为输入引脚,那么向第二个参数写入INPUT,反之写入OUTPUT。编写代码是要区分大小写。如果将OUTPUT写成Output计算机会解码错误,导致异常。


输出数字信号

//不从13号引脚输出信号。

//LOW:0

digitalWrite(13,LOW);

//从13号引脚输出信号。

//HIGH:1

digitalWrite(13,HIGH);

使用digitalWrite函数输出数字信号。可以看到,该函数结合了“数字”(digital)和“写”(write)

这两个单词,意为“写数字”。各位可以顾名思义其用途。

digitalWrite需要两个参数。第一个是输出数字信号的引脚编号,第二个是设置是否发送数字信号的至。第二个参数使用LOW和HIGH两个常数,对应的至分别为0或1.如果第二个参数设置为LOW,数字I/O引脚的电压就会变为0V,所以没有电流。如果设置为HIGH,电压会变成5V,形成电流 。因此,将Arduino UNO中的特定引脚电压设置在0V或5V时,直接使用LOW或者HIGH。

输出数字信号时,注意观察电流的流动。13号引脚的电压设置为LOW时,无电流;设置为HIGH时,电流开始流动。电流先经过LED,然后经过电阻,最后从Arduino的接地引脚流出。


接收数字信号输入

//保存数字信号输入值的变量。

int a;

//读取13号引脚的数字信号输入值。

a=digitalRead(13);

//用常数HIGH和LOW确定输入值。

if(a==HIGH){

//电压为HIGH 。

}else{

//电压为LOW。

}

前面提到,数字信号输出是指,电流从13号引脚流出,然后流向接地引脚。对于输入,则表示电流从5V电源引脚流出,然后流至13号引脚。因此,在连接5V电流和13号引脚,中间放一个按钮。按钮带有四条“腿”,平时互不相连,按下按钮时才会连接在一起。因此,5V电源引脚和13号引脚之间的按钮平时处于断开状态,按下按钮时才相互连接。换言之,数字信号的输入就是确认是否按下按钮。

Arduino中,读取数字信号输入值的函数时digitalRead。函数名为“数字”和“读”(read)两个单词合并而成,意为“读数字”。digitalRead函数需要一个参数,该参数值为要读取数字信号输入值的引脚编号。调用函数后,读取相应引脚编号的输入值并返回。在代码中,将该返回值放入变量a,然后与HIGH和LOW比较确定,确定电压状态。数字I/O引脚进入的时电压为HIGH的电流时,返回值HIGH,否则返回LOW。

如果未按下按钮,而数值却在HIGH和LOW之间切换,那是因为发生了“浮空现象”。未按按钮时,数字I/O引脚位于任何东西连接,但将数字I/O引脚设置为输入时,输入引脚周围会有极小的电流流动。这样即使不与任何东西连接,电压也会在LOW和HIGH之间,此现象称为“浮空现象”。因此,应当将当前状态的电压固定设置为LOW或HIGH之一。未按按钮时,将电压固定设置为LOW或HIGH的情况称为“下拉”或“上拉”。下拉状态指,平时将输入的电压固定为LOW。

你可能感兴趣的:(数字I/O)