登录/注册
帮助中心
首页 技术文章 文章详细
文章分类选择
电脑办公 平面设计 室内设计 室外设计 机械设计 工业自动化 影视动画 程序开发 网页设计 会计课程 兴趣成长
相关推荐
您可能对下面课程感兴趣
Arduino视频教程基础篇

75小节已有131511人学过

数字I/O的使用数字信号
发布时间:2022-03-10 09:29 [ 我要自学网原创 ] 发布人: 小刘2175
Arduino UNO上每一个带有数字编号的引脚,都是数字引脚,包括写有“A”编号的模拟输入引脚。使用这些引脚,可以完成输入输出数字信号的功能。


数字信号
数字信号是以0、1表示的电平不连续变化的信号,也就是以二进制的形式表示的信号。 在Arduino中数字信号通过高低电平来表示,高电平则为数字信号1,低电平则为数字信号0 。



Arduino上每一个带有数字编号的引脚,都是数字引脚,包括写有“A”编号的模拟输入引脚。使用这些引脚,可以完成输入输出数字信号的功能。
在使用输入或输出功能前,你需要先通过pinMode() 函数配置引脚的模式为输入模式或输出模式。
  1. pinMode(pin, mode);
复制代码


参数pin为指定配置的引脚编号;参数mode为指定的配置模式。
可使用的三种模式:
INPUT        输入模式
OUTPUT        输出模式
INPUT_PULLUP        输入上拉模式

如之前我们在Blink程序中使用到了pinMode(13, OUTPUT),即是把13号引脚配置为输出模式。
配置成输出模式后,你还需要使用digitalWrite() 让其输出高电平或者是低电平。其调用形式为:
  1. digitalWrite(pin, value);
复制代码


参数pin为指定输出的引脚编号;参数value为你要指定输出的电平,使用HIGH指定输出高电平,或是使用LOW指定输出低电平。

Arduino中输出的低电平为0V,输出的高电平为当前Arduino的工作电压。例如Arduino UNO的工作电压为5V,其高电平输出也是5V;Arduino Due工作电压为3.3V,所以高电平输出也就是3.3V。

数字引脚除了用于输出信号外,还可以用digitalRead() 函数读取外部输入的数字信号,其调用形式为:
  1. int value = digitalRead(pin);
复制代码

参数pin为指定读取状态的引脚编号;返回值value为获取到的信号状态,1为高电平,0为低电平。

Arduino UNO会将大于3V的输入电压视为高电平识别,小于1.5V的电压视为低电平识别。所以,即使输入电压不太准确,Arduino UNO也可以正常识别。需要注意的是,超过5V的输入电压可能会损坏Arduino UNO。(不同型号的Arduino有所不同)

在Arduino核心库中,OUTPUT被定义等于1,INPUT被定义等于0,HIGH被定义等于1,LOW被定义等于0。因此这里也可以用数字替代这些定义。如:
  1. pinMode(13,1);
  2. digitalWrite(13,1)
复制代码

此处仅作说明,并不推荐这样写代码,因为这样会降低程序的可读性。

我们再回到最初的Blink程序,在Arduino IDE菜单>文件>示例>01.Basics>Blink 找到它。程序如下:


  1.   Blink
  2. 等待一秒钟,点亮LED,再等待一秒钟,熄灭LED,如此循环
  3. */

  4. // 在大多数Arduino控制板上 13号引脚都连接了一个标有“L”的LED灯
  5. // 给13号引脚连接的设备设置一个别名“led”
  6. int led = 13;

  7. // 在板子启动或者复位重启后, setup部分的程序只会运行一次
  8. void setup(){
  9.   // 将“led”引脚设置为输出状态
  10.   pinMode(led, OUTPUT);     
  11. }

  12. // setup部分程序运行完后,loop部分的程序会不断重复运行
  13. void loop()
  14. {
  15.   digitalWrite(led, HIGH);   // 点亮LED
  16.   delay(1000);           // 等待一秒钟
  17.   digitalWrite(led, LOW);   // 通过将引脚电平拉低,关闭LED
  18.   delay(1000);           // 等待一秒钟
  19. }
复制代码


在Blink中,我们通过新建变量的方法
  1. int led = 13;
复制代码

为13脚连接的设备设置了一个变量名“led”,在此后的程序中,使用“led”则可代表对应编号的引脚(或者是该引脚上连接的设备)。这种写法可以提高程序的可读性,并且方便修改,如设备需要更换连接引脚,直接修改该变量对应的数值即可。
也可以使用如下语句:
  1. #define LED 13
复制代码

以宏定义的方式,来为设备设置一个名称。

delay() 为毫秒延时函数,delay(1000) 即延时1秒(1000毫秒),在本程序中用来控制,开关LED的间隔时间。你可以自行修改其中的参数,观察实际运行效果。

Blink是最简单的Arduino程序,在此基础上,我们还可以制作控制多个LED,逐个点亮,逐个熄灭的流水灯效果。
Arduino视频教程基础篇
我要自学网商城 ¥40 元
进入购买
文章评论
0 条评论 按热度排序 按时间排序 /350
添加表情
默认
遵守中华人民共和国的各项道德法规,
承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。
参与本评论即表明您已经阅读并接受
上述条款。
V
特惠充值
联系客服
APP下载
官方微信
返回顶部
相关推荐
您可能对下面课程感兴趣
Arduino视频教程基础篇

75小节已有131511人学过

分类选择:
电脑办公 平面设计 室内设计 室外设计 机械设计 工业自动化 影视动画 程序开发 网页设计 会计课程 兴趣成长

PHP网站源码丹竹头网站建设公司滁州网站设计模板报价防城港seo南昌网站排名优化公司东莞网站优化按天收费哪家好玉树外贸网站制作伊犁seo网站推广哪家好思茅阿里店铺运营价格台州百度爱采购襄樊网站优化按天计费价格阜阳网络营销价格无锡百度关键词包年推广价格揭阳网站推广多少钱眉山网站定制推荐马鞍山百姓网标王推广公司淄博网站设计公司白城企业网站改版报价坂田设计网站哪家好南山网站优化甘南建站推荐莱芜优化哪家好茂名优化苏州阿里店铺运营推荐佛山网站改版推荐民治网站推广方案价格桂林关键词排名价格内江关键词排名包年推广推荐许昌建站推荐韶关企业网站建设推荐中卫网站推广推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化