arduino analogread_【Arduino中级系列教程】从串口中认识“数字”与“模拟”

【点击上方「蓝字」关注DF,一起成为技术颜控!】

a7dd3f62cc72ce17de11cd7b41e9bf43.png

上一课:前奏1 是什么让东西“活”起来了

友情提示:搭配Gravity:新版Arduino中级套件食用更佳!

前面我们只是对Arduino是如何工作的有了一定的了解,知道了首先需要搭建一个“身体”,也就是整个硬件设备。然后需要“思想”,也就是代码去控制它的大脑(Arduino)。“身体”如何工作的,信号就是他们的“血液”。信号分为两种——数字信号与模拟信号。这一节,我们可以更直观的看到数字信号与模拟信号的区别。

数字信号

我们选用一个数字信号传感器来作为例子——数字按钮模块。

所需材料:

  • 1× DFduino UNO R3(以及配套USB数据线)
  • 1×  IO传感器扩展板 V7.1
  • 1×  数字大按钮模块
68e8c3a8a87ad21f5d876b3e5a186b23.png

硬件连接

首先,从我们的套件中取出IO 传感器扩展板V7.1,把扩展板直接插到UNO上,注意UNO与扩展板的上下引脚一一对应,不要错位。找到数字大按钮模块,直接连接到数字引脚2,需要注意传感器的线序与扩展板上对应。下图为连接的示意图。

完成连接后,给Arduino接上USB数据线,供电,准备下载程序。

2c5f18f59095934f4311ffa49419cc9e.png

串口监视器效果

选择菜单中的文件(File) -- 示例(Examples) -- 01 Basics – DigitalReadSerial 代码。

int pushButton = 2;             // 连接到数字引脚2
void setup() {                   //初始化函数
Serial.begin(9600);            //设置串口波特率
pinMode(pushButton, INPUT);    //设置按键为输入模式
}
void loop() {                              // 主函数
int buttonState = digitalRead(pushButton);     //读取数字引脚2的状态
Serial.println(buttonState);             //串口打印出引脚2的状态
delay(1);                             //延时1ms
}

单击“下载(UpLoad)”,给Arduino下载代码。成功下载完程序后,打开Arduino IDE的串口监视器。

110691b6f6f7e517ef23e45907c95796.png

设置串口监视器的波特率为9600。

bdf4b8801f4b79f0509de1af8cf2aa25.png

可以直接从串口读取按钮的状态。按钮没按下的时候,串口显示为“0”,一旦被按下,串口显示为“1”。

28687ea955b58c30c47a6ada9dd3548b.png

模拟信号

我们选用一个模拟量的传感器来作为例子——模拟角度传感器。

所需材料

  • 1×  模拟角度传感器
a2c9bf7bd1644d268890d8f825bf7944.png

硬件连接

拔下前面使用的按键,换成模拟角度传感器,直接连接到扩展板的模拟口0。完成连接后,给Arduino接上USB数据线,供电,准备下载程序。

e501781403059d3f30e70408be7adcfb.png

输入代码

打开Arduino IDE,选择菜单中的文件(File) -- 示例(Examples)-- 01 Basics – AnalogReadSerial 代码。代码如下:

void setup() {                     //初始化函数
 Serial.begin(9600);             //设置串口波特率
}
void loop() {                         // 主函数
 int sensorValue = analogRead(A0);     //读取模拟引脚0的状态
 Serial.println(sensorValue);         //串口打印出引脚0的状态
 delay(1);                             //延时1ms
}

同样,单击“下载(UpLoad)”,给Arduino下载代码。成功下载完程序后,打开Arduino IDE的串口监视器。并且设置波特率为9600。

试着旋转电位器,可以看到0~1023之间的值。

fa67fa7bb8ab3f7191e5de129c125214.png

两者比较分析

串口监视器

串口监视器可以实现Arduino与电脑之间进行互动。可以显示Arduino发送到PC端的数据,还可以让电脑发送数据给Arduino。

从串口监视器可以明显的看出,模拟与数字的鲜明的区别。数字口输出的只有0或者1,而模拟可以输出0~1023之间的任何值。

e2819e1236281311a3e32147ce27a0ac.png

代码区别

从代码可以看出,数字引脚和模拟引脚读数的方式是不同的。数字口使用digitalRead()来读取引脚状态值。而模拟口是通过analogRead()来读取引脚状态值的。其实,最简单的从英文的字面意思应该也能明白这句语句的意思了。不明白没有太大关系,我们之后几节会做详细说明。

数字:
int buttonState = digitalRead(pushButton);        //读取数字引脚2的状态
模拟:
int sensorValue = analogRead(A0);        //读取模拟引脚0的状态

动手试一试

可以尝试使用套件中的其他数字传感器和模拟传感器,从串口监视器看看输出效果,是否与前面我们所做的相符。

- END -

小伙伴们在之后的Arduino学习之旅中,不管你遇到奇奇怪怪的问题,都希望你与我们交流,你可以选择登陆我们的DFRobot创客社区!mc.dfrobot.com.cn 发帖提问!

也可以加我们的Arduino官方群:369301430,大家一起交流学习。

硬件军火库

DFRduino UNO R3

点击了解详情?

大家有什么想法,或是对文章的指正,都欢迎在下方留言

学有余力的小伙伴,可以点击,到社区继续学习!


 往期回顾 

▼ Arduino基础系列教程

0b90792a320d8138825759e56ec6bcc6.png

点击阅读?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值