打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Arduino之模拟I/O的使用

在Arduino控制器中,编号前带有“A”的引脚是模拟输入引脚。Arduino可以读取这些引脚上输入的模拟值,即读取引脚上输入的电压大小。

模拟信号

生活中,接触到的大多数信号都是模拟信号,如声音、温度的变化等。如图2-31所示,模拟信号是用连续变化的物理量表示的信息,信号随时间作连续变化。在Arduino UNO上,可以接受0~5V的模拟信号。

模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚。它可以将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。

Arduino 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1023的整数形式表示。

模拟输入功能需要使用analogRead() 函数。

int value = analogRead(pin)

参数pin是指定要读取模拟值的引脚,被指定的引脚必须是模拟输入引脚。如analogRead(A0)即是读取A0引脚上的模拟值。

与模拟输入功能对应的是模拟输出功能,我们使用analogWrite() 函数实现这个功能。但该函数并不是输出真正意义上的模拟值,而是以一种特殊的方式来达到输出近似模拟值的效果,这种方式叫做脉冲宽度调制(PWM,Pulse Width Modulation)。

在Arduino UNO中,提供PWM功能的引脚为3、5、6、9、10、11。

当使用analogWrite() 函数时,指定引脚会通过高低电平的不断转换输出一个周期固定的方波,通过改变高低电平在每个周期中所占的比例(占空比),而得到近似输出不同的电压的效果(如图2-33所示)。

需要注意的是,这里仅仅是得到了近似模拟值输出的效果,如果要输出真正的模拟值,还需要加上外围滤波电路。

analogWrite(pin,value)

参数pin是指定要输出PWM波的引脚,参数value指定是PWM的脉冲宽度,范围为0~255。

在analogWrite() 和analogRead() 函数内部,已经完成了引脚的初始化,因此不用在Setup() 函数中进行初始化操作。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Arduino教程】教你如何制作呼吸灯!
Arduino的崇高感和Lilytiny的优美感
Arduino教程 Lesson 6:炫彩RGB LED
微控制器引脚功能 - ITP物理计算
Arduino极简教程
Arduino教程-让LED神灯亮度渐变
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服