Arduino教程中级 前奏3 从串口中认识“数字”与“模拟”

前奏3 从串口中认识“数字”与“模拟”
本系列教程配套硬件套件:新版Arduino中级套件
上一课:前奏2 是什么让东西“活”起来了
前面我们只是对Arduino是如何工作的有了一定的了解,知道了首先需要搭建一个“身体”,也就是整个硬件设备。然后需要“思想”,也就是代码去控制它的大脑(Arduino)。“身体”如何工作的,信号就是他们的“血液”。信号分为两种——数字信号与模拟信号。这一节,我们可以更直观的看到数字信号与模拟信号的区别。
数字信号 我们选用一个数字量的传感器来作为例子——数字按钮模块。
所需材料:
1× DFduino UNO R3(以及配套USB数据线)

image001.jpg (63.51 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

1×IO传感器扩展板 V7.1

image004.jpg (22.58 KB, 下载次数: 6)

下载附件

保存到相册

2015-9-6 16:04 上传

1×数字大按钮模块

image005.jpg (18.93 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

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

image008.jpg (64.05 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

图2-1 数字信号示例 串口监视器效果打开Arduino IDE,选择菜单中的文件(File) -- 示例(Examples) -- 01 Basics – DigitalReadSerial 代码。 代码如下:
int pushButton = 2; // 连接到数字引脚2void 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的串口监视器。

image009.png (2.01 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

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

image012.jpg (2.6 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

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

image013.png (11.04 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

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

所需材料: l1×模拟角度传感器

image016.jpg (6.65 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

*之后的项目将不重复罗列UNO与I/0传感器扩展板,但是!每次都还是需要用到的。
硬件连接
拔下前面使用的按键,换成模拟角度传感器,直接连接到扩展板的模拟口0。完成连接后,给Arduino接上USB数据线,供电,准备下载程序。

image017.jpg (85.81 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

图2-1 数字信号示例输入代码
打开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之间的值。

image020.jpg (12.77 KB, 下载次数: 9)

下载附件

保存到相册

2015-9-6 16:04 上传

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

image021.jpg (8.07 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:04 上传

image022.jpg (9.07 KB, 下载次数: 7)

下载附件

保存到相册

2015-9-6 16:07 上传

从串口监视器可以明显的看出,模拟与数字的鲜明的区别。数字口输出的只有0或者1,而模拟可以输出0~1023之间的任何值。
2、代码区别从代码可以看出,数字引脚和模拟引脚读数的方式是不同的。数字口使用digitalRead()来读取引脚状态值。而模拟口是通过analogRead()来读取引脚状态值的。其实,最简单的从英文的字面意思应该也能明白这句语句的意思了。不明白没有太大关系,我们之后几节会做详细说明。 数字:intbuttonState = digitalRead(pushButton); //读取数字引脚2的状态模拟: int sensorValue = analogRead(A0);//读取模拟引脚0的状态
动手试一试 可以尝试使用套件中的其他数字传感器和模拟传感器,从串口监视器看看输出效果,是否与前面我们所做的相符。
下一课:项目一 点亮一盏灯
※ 在之后的Arduino学习之旅中,不管你遇到奇奇怪怪的问题,都希望你与我们交流,欢迎登陆我们的DFRobot创客社区!www.dfrobot.com.cn

标签: Arduino教程