数字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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容