本书将详细、系统地介绍Arduino开发板的硬件电路部分。具体而言,就是介绍Arduino UNO开发板的引脚分配图及其定义[170]。Arduino UNO微控制器采用的是Atmel的ATmega328。Arduino UNO开发板的引脚分配图中包含14个数字引脚、6个模拟输入、电源插孔、USB连接和ICSP插头。引脚的复用功能提供了更多的不同选项,例如驱动电机、LED、读取传感器等。Arduino UNO引脚分配图如图5-9所示。
Arduino UNO开发板可以使用三种方式供电。
(1)直流电源插孔。
人们可以使用电源插孔为Arduino开发板供电。电源插孔通常连接到一个适配器。开发板的供电范围可以是5~20 V,但制造商建议将其保持在7~12 V之间。高于12 V时,稳压芯片可能会过热,而低于7 V可能会供电不足。
(2)VIN引脚。
该引脚用于使用外部电源为Arduino UNO开发板供电。电压应控制在上述提到的范围内。
(3)USB电缆。
连接到计算机时,可提供500 mA/5 V电压。
Arduino板的供电示意图如图5-10所示。
图5-9 Arduino板的引脚分配图
图5-10 Arduino板的供电示意图
在电源插孔的正极与VIN引脚之间连接有一个极性保护的二极管,额定电流为1 A。人们使用的电源决定了可用于电路的功率。例如,当人们使用USB为电路供电时,电流最大限制在500 mA。考虑到该电源也用于为MCU、外围设备、板载稳压器和与其连接的组件供电,当通过电源插座或VIN为电路供电时,可用的最大电流取决于Arduino开发板上的5 V和3.3 V稳压器。根据制造商的数据手册,它们提供稳压的5 V和3.3 V,向外部组件供电。在Arduino UNO引脚分配图中,可以看到有5个GND引脚,它们都是互相连通的。GND引脚用于闭合电路回路,并在整个电路中提供一个公共逻辑参考电平。提请注意的是:务必确保所有的GND(Arduino、外设和组件)相互连接并且有共同点。RESET的作用是复位Arduino开发板。IOREF引脚是输入/输出参考,它提供了微控制器工作的参考电压。Arduino UNO有6个模拟引脚,作为ADC(模数转换器)使用。这些引脚用作模拟输入,但也可用作数字输入或数字输出。Arduino UNO的模拟引脚图如图5-11所示,数字引脚图则如图5-12所示。
图5-11 Arduino 板的模拟引脚图
图5-12 Arduino 板的数字引脚图
为了让本书的学习者更好地掌握相关概念和知识,下面对一些专用术语进行解释:
1.什么是模数转换(ADC)?
ADC表示从模拟信号到数字信号的转换器。实质上看,ADC就是一种将模拟信号转换为数字信号的电子电路。模拟信号的这种数字表示方式允许处理器(其是数字设备)来测量模拟信号并在其操作中使用它。
Arduino的引脚A0~A5能够读取模拟电压。在Arduino上,ADC具有10位分辨率,这意味着它可以通过1 024个数字电平表示模拟电压。ADC将电压转换成微处理器可以理解的内容。
ADC常见的应用实例是IP语音(VoIP)。每部智能手机都有一个麦克风,可将声波(语音)转换为模拟电压,再通过设备的ADC转换成数字数据,此后通过互联网传输到接收端。
Arduino UNO的引脚0~13用作数字输入/输出引脚。其中,引脚13连接到板载的LED指示灯;引脚3、5、6、9、10、11具有PWM功能。
需要注意的是:
(1)每个引脚可提供/接收最高40 mA的电流,但推荐的电流是20 mA。
(2)所有引脚提供的绝对最大电流为200 mA。
2.什么是数字电平?
数字电平是一种用0或1来表示电压的方式。Arduino上的数字引脚可根据用户需求设计为输入或输出所用的。数字引脚可以打开或关闭。开启时,它们处于5 V的高电平状态;关闭时,它们处于0 V的低电平状态。
在Arduino上,当数字引脚配置为输出时,它们设置为0 或5 V。当数字引脚配置为输入时,电压由外部设备提供。该电压可以在0~5 V之间变化,并转换成数字表示(0或1)。为了确定这一点,Arduino提供有2个阈值:
(1)低于0.8 V,视为0。
(2)高于2.0 V,视为1。
将组件连接到数字引脚时,确保逻辑电平匹配。如果电压在阈值之间,则返回值将不确定。
3.什么是PWM?
脉宽调制(PWM)是一种调制技术,用于将消息编码为脉冲信号。PWM由频率和占空比两个关键部分组成。其中,频率决定了完成单个周期所需的时间以及信号从高到低的波动速度;占空比决定了信号在总时间段内保持高电平的时间。占空比以百分比表示。(www.xing528.com)
在Arduino中,支持PWM的引脚产生约500Hz的恒定频率,而占空比根据用户设置的参数而变化,如图5-13所示。
PWM信号用于直流电机的速度控制和LED的调光等。
图5-13 PWM波的占空比
4.什么是通信协议?
数字引脚0和1是Arduino UNO的串行(TTL)引脚,它们由板载USB模块使用。
(1)串行通信。
串行通信可用于Arduino板和其他串行设备(如计算机、显示器、传感器等)之间来交换数据。每块Arduino板上至少有一个串口。串行通信发生在数字引脚0(RX)和1(TX)以及USB上。Arduino也支持通过数字引脚与Software Serial Library进行串行通信。这将允许用户连接多个支持串行的设备,并保留主串行端口可用于USB。
(2)软件串行和硬件串行。
大多数微控制器都具有用于与其他串行设备进行通信的硬件。软件串行端口使用引脚更改中断系统进行通信。有一个用于软件串行通信的内置库。处理器使用软件串行来模拟额外的串行端口。软件串行唯一的缺点是它需要更多的处理,并且不支持与硬件串行相同的高速处理功能。
(3)SPI。
SS/SCK/MISO/MOSI引脚是SPI通信的专用引脚。它们可以在Arduino UNO的数字引脚10~13和ICSP插头上找到。
(4)串行外设接口(Serial Peripheral Interface,SPI)。
它是一种串行数据协议,由微控制器用来与总线中的一个或多个外部设备进行通信。SPI也可以用来连接2个微控制器。在SPI总线上,总是有一个设备表示为主设备,其余所有设备都表示为从设备。在大多数情况下,微控制器是主设备。SS(从选择)引脚确定主器件当前正在与哪个器件通信。
启用SPI的器件始终具有以下引脚:
①MISO(主从输出)
它是用于向主设备发送数据的线路。
②MOSI(主机输出从机输入)
它是发送数据到外围设备的主机线。
③SCK(串行时钟)
它是由主设备生成的用于同步数据传输的时钟信号。
(5)I2C。
SCL/SDA引脚是I2C通信的专用引脚。在Arduino UNO上,它们可以在模拟引脚A4和A5上找到。
I2C通信协议通常称为“I2C总线”。I2C通信协议旨在实现单个电路板上组件之间的通信。使用I2C时,有2条通信线,称为SCL和SDA。其中,SCL是用于同步数据传输的时钟线;SDA是用于传输数据的通信线。
I2C总线上的每个器件都有一个唯一的地址,最多可以在同一条总线上连接255个器件。
(6)AREF。
它是模拟输入的参考电压。
(7)中断。
它包含INT0和INT1。Arduino UNO有两个外部中断引脚。
(8)外部中断。
外部中断是外部干扰出现时发生的系统中断。干扰可能来自用户或网络中的其他硬件设备。Arduino中这些中断的常见用途是读取编码器产生的方波或外部事件唤醒处理器的频率。
Arduino有两种形式的中断,即:外部输入引起的中断和引脚状态变化引起的中断。ATmega168/328上有两个外部中断引脚,称为INT0和INT1。INT0和INT1分别映射到引脚2和引脚3上。相反,引脚变化中断可以在任何引脚上激活。
(9)ICSP插头。
ICSP表示在线串行编程。该名称源自在系统编程(ISP)。Arduino相关的制造商(如Atmel)开发了自己的在线串行编程插头。这些引脚使用户能够编程Arduino开发板上的固件。Arduino开发板上有6个ICSP引脚,可通过编程电缆连接到编程器设备上。
Arduino UNO开发板是当今市场上最流行的开发板之一,这就是为什么要在本书中着力介绍这款开发板。本书介绍了其大部分功能,但也有很多高级选项在本书中没有涉及。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。