当前位置:首页 > 消费电子 > 消费电子
[导读]Arduino 秉承让数字技术轻松地运用到现实应用中这一理念,推出 Arduino 硬件平台,以实现将大多数模拟功能植入 Atmel 多功能 ATmega 8 位 MCU 系列。 在 Arduino 平台上使用

Arduino 秉承让数字技术轻松地运用到现实应用中这一理念,推出 Arduino 硬件平台,以实现将大多数模拟功能植入 Atmel 多功能 ATmega 8 位 MCU 系列。 在 Arduino 平台上使用的所有 ATmega 变体均有一个片载多通道模数转换器 (ADC)。 该 ADC 具有 10 位分辨率,能以 0 到 1023 的整数方式实现高达每秒 15,000 次的采样速率。 大多数 AVR MCU 支持 6 个模拟输入通道,而一些变体则可支持 8 和 16 个输入。 尽管模拟引脚的主要功能是读取模拟输入,但也可配置成数字式通用输入/输出 (GPIO) 引脚。 可根据需要为模拟引脚配备可选择上拉电阻器,且采用与 MCU 数字引脚相同的上拉配置方法。

虽然一些 AVR MCU 采用了数模转换器 (DAC),但在现有的这一代 Arduino 板上的 MCU 系列均能通过快速转换其数字 I/O 引脚来产生脉宽调制 (PWM) 信号,以提供模拟输出。 每个 PWM 输出的 490 Hz(大约)方波的占空比经过编程后,能提供一个大小为 0 至 5 V、周期为 256 毫秒、增量为 2 毫秒的等效 RMS 电压(图 1)。 Arduino 的输出功能尽管在某种程度上受到一定限制,但可执行如驱动 LED 或控制电机等许多任务。

 

 

图 1:利用脉宽调制 (PWM) 技术, Arduino 的数字 GPIO 引脚可用作模拟输出(感谢 Arduino.cc 提供数据)。

通过板边缘的母头引脚连接器,大多数 Arduino 板能轻松连接 MCU 的模拟(和数字)I/O 信号。 模拟通道数及其物理引脚分配会随正在使用的特定 MCU 以及板的外形发生变化,但许多变体还是遵循常见的“官方”设计所采用的引脚布局惯例,如 Uno(图 2)、Mega 和 Nano。

 

 

图 2:Arduino Uno 板(第 3 版)的模拟输入 (A0-A5) 和模拟 PWM 输出(数字式:3、5、6、9、10 和 11)) 可通过板边缘的标准针座引脚进行物理连接(感谢 Arduino.cc 提供数据)。

因为 Arduino IDE 支持的编程语言中含有一组原生模拟 I/O 命令,因此采用模拟 I/O 功能开发代码也易于进行。 通过这些指令可读取模拟输入、生成模拟 (PWM) 输出以及配置 A/D 转换器的基准电压。

读取模拟输入

我们能轻而易举地将 Arduino 的模拟输入与实际应用连接,但需要为 AVR 的 A/D 转换器选择合适的基准电压源。 此时,可以用默认 (DEFAULT)、内部 (INTERNAL) 或者外部 (EXTERNAL) 基准电压来确定输入电压上限。 默认模式下,MCU 采用板载电源稳压器的输出作为基准电压。 根据所使用的特定 Arduino 板,基准电压可以是 5 V 或者 3.3 V。

在内部模式下,采用 AVR 的片载精密基准电压源。 器件不同,基准源电压也不同,但通常为 1.1 V(适用于 ATmega168 或 ATmega328)或者 2.56 V(在 ATmega8 和 Mega 系列中)。 在外部模式下,您可用一个 5K 电阻器将一个外部基准电压连接至 AREF 引脚。 AREF 引脚内置一个 32K 保护电阻器,与 5K 外部电阻器一起作为分压器。 所以,如果通过该外部电阻器施加 2.5 V 电压,就会在 AREF 引脚上产生一个约为 2.2 V 的电压,具体计算为 2.5 * 32 / (32 + 5) = 2.2 V。

利用 Aegunio 编程语言读取模拟电压时,需用 analogReference(type) 命令选择基准电压源,然后引用一个 analogRead(pin) 读数命令,其中,(pin) 表示您希望采样的针座引脚编号。 基准电压一旦选定,基准类型便不再改变,除非进行另外编程。 虽然 AVR MCU 能支持高达每秒 15k 次采样的转换率,但 Arduino 的软硬件环境通常将其限制在每秒 10k 次采样左右。

构建 PWM 模拟输出

在某一个 Arduino PWM 引脚上生成模拟电压的具体做法是,用 pinMode(pin, mode) 命令将该引脚配置成输出引脚,然后引用一个 analogWrite(pin, value) 命令,其中,(pin) 表示您希望用于输出的针座引脚,(value) 表示将要产生的基准电压的一部分(增量为 1/255)。 配置完成后,该引脚将连续产生一个具有规定占空比的 490 Hz 稳定方波,直至收到下一个 analogWrite() 请求(或者针对该引脚发出的一个 digitalRead() 或 digitalWrite() 请求)。

这些 I/O 引脚支持高达 40 mA 驱动电流,因此可直接驱动中型 LED 阵列。 对于功率较高的照明或者直流电机,模拟输出可用于驱动功率晶体管或桥式电路。 对于要求更苛刻的应用,这种输出可通过简单的 R/C 网络滤波,且可用作放大器或者电流源的控制电压。

更多的模拟技巧

一些 AVR MCU(包括 MEGA8 和 MEGA168)内置了比较器,能将一个输入电压与另一个外部输入进行比较,如与某个 PWM 输出产生的电压或者基准器件的内部基准电压比较。 比较器的电压可以被轮询或者用于触发一个中断。 尽管涉及了更多的软件, 但中断驱动式排列能让处理器直接检测欠压和过压条件,无需再对模拟通道进行重复采样。 对于从可调阈值的运动探测器、冲击传感器到生物医学监视的每一种应用,这都是一项非常方便的功能。

对于 MCU 无内置比较器的 Arduino 板,可相对容易地在一些 Arduino 板上的 “Kluge” 区域添加一个外部器件,如 LM741、LM339N 或 TLC3704。 如您的板子上没有用户电路安装空间,则可通过一块价格低廉的原型设计扩展卡添加用户电路(图 3)。

 

 

图 3:利用原型设计扩展卡,您能方便地将自己的模拟或者数字 I/O 添加到几乎任何一块标准的 Arduino 板上。

总结

Arduino 器件凭借自身的低成本、多功能优势,在商业硬件开发人员中培养了一批忠实拥趸。 Arduino 硬件平台旨在将大多数模拟能力植入 Atmel 的 ATmega 8 位 MCU 系列中。 这些 MCU 的所有变体均有一个片载多通道模数转换器 (ADC)。 本文旨在介绍 Arduino 模拟功能的基本软硬件资源组成,为能够用这些功能完成未来设计的工程师们提供一个新起点。 为此,我们讨论了如何读取模拟输入、构建 PWAM 模拟输出和添加外部模拟 I/O。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

基于可控硅来解决这两大问题的方案应运而生,提出了用可控硅替代传统机电开关的设计在开关电源的AC/DC部分的启动功能的方案。

关键字: SCR AC/DC 转换器 可控硅

选择正确的电容器种类、功率电感器、开关频率和半导体对于 DC/DC 开关电源控制器的效率至关重要。做出正确的选择并非易事,但即使做出了正确的选择,控制器也必须具有高效率且符合 EMC 要求才能上市。

关键字: DC/DC 转换器 EMC

魁北克城2024年5月9日 /美通社/ -- LeddarTech Holdings Inc. ("LeddarTech")(纳斯达克:LDTC)和Immervision Inc. 欣然共同宣布了一项合作,旨在简化...

关键字: LED ADAS 人工智能 传感器

为增进大家对LED显示屏的认识,本文将对节能LED显示屏的设计予以介绍。

关键字: LED 指数 显示屏

为增进大家对LED显示屏的认识,本文将对LED显示屏的部件组成、LED显示屏的选型技巧予以介绍。

关键字: LED 指数 显示屏

LED显示屏的身影。为增进大家对LED显示屏的认识,本文将对LED灯珠对LED显示屏的影响予以介绍。

关键字: LED 指数 显示屏

LED显示屏将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: LED 显示屏

今天,小编将在这篇文章中为大家带来led显示屏的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: LED 显示屏 LED显示屏

在这篇文章中,小编将对无功功率的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: 功率 无功功率

Type-C转换器作为连接电子设备的桥梁,已经广泛应用于手机、平板电脑、笔记本电脑等设备的充电和数据传输。然而,对于许多音乐爱好者来说,音质是他们非常关心的问题。因此,关于Type-C转换器是否会对音质产生影响的问题备受...

关键字: 电子设备 Type-C 转换器
关闭
关闭