购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 Arduino开发板

本节详细介绍两个常用的Arduino开发板:Arduino UNO和Arduino Mega 2560。

2.1.1 Arduino UNO

Arduino UNO开发板(简称UNO)是一个基于ATmega328P微控制器(又称单片机)的开发板,它有14个数字输入/输出引脚(其中6个可用于PWM输出)、6个模拟输入、1个UART(硬件串口)、1个16 MHz晶体振荡器、1个USB接口、1个电源插孔、1个ICSP(In-Circuit Serial Programming)插座和1个复位按钮。Arduino UNO开发板采用1根USB线与计算机连接,USB线同时具有供电和通信的功能,Arduino UNO开发板也可以通过1个AC-to-DCx变换器或电池供电。

在意大利,“UNO”的意思是ONE,Arduino UNO开发板和Arduino IDE 1.0是早期的参考版本。Arduino UNO是第一个采用USB接口与计算机连接的Arduino开发板,其实物如图2-1所示。

Arduino UNO开发板是硬件开源的,图2-2是其原理图。读者利用其PCB图可自己制作电路板。

Arduino UNO开发板的ATmega328P微控制器中已烧录了BootLoader(引导程序),该BootLoader允许下载新的代码而无须专门的编程器。ATmega328P微控制器还有一种编程方式是将BootLoader旁路通过ICSP插座使用Arduino ISP(一个可直接对微控制器进行编程的工具)对微控制器进行编程。

Arduino UNO开发板硬件资源按功能分为电源、存储器、输入/输出接口和通信接口等几部分。下面介绍其硬件资源以及其他相关信息。

1.电源

Arduino UNO开发板可通过USB连接或外部电源供电,它可自动选择供电电源。外部电源可以是1个AC-DC的变换器或电池,调节器通过1个2.1mm的中心正极(center-positive)插头与Arduino UNO开发板的电源插座连接,电池通过VIN和GND引脚给Arduino板供电。外部电源电压供电范围是6~20V,若小于7V,转换后供电电源可能不足5V,Arduino UNO开发板有可能无法稳定工作;若超过12V,电压转化器会出现过热的情况,有可能烧坏Arduino UNO开发板。电压推荐范围是7~12V。

图2-1 Arduino UNO开发板实物图

图2-2 Arduino UNO开发板原理图

电源引脚如下。

(1)VIN:当使用外部电源供电时,VIN是Arduino/Genuino开发板的输入电压引脚,或者当通过电源插座供电时,可从这个引脚得到5V电压。

(2)5V:该引脚输出5V电压。若通过5V或3.3V引脚供电可能损坏旁路线性稳压器,故不推荐使用5V或3.3V引脚供电。

(3)3.3 V:该引脚输出3.3 V电压,其最大电流是50 mA。

(4)GND:该引脚是接地引脚。

扩展板可读取IOREF引脚的电压并选择合适的电源,或者提供3.3V或5V的电平转换。

(5)AREF:模拟输入的参考电压。

2.存储器

Arduino UNO有32 KB Flash,其中BootLoader占用了0.5 KB,另有2 KB SRAM和1 KB EEPROM(可利用EEPROM类库对其进行读写操作)。

3.输入和输出

Arduino UNO有14个数字引脚,可用于输入或输出。输入/输出电压是5V。在推荐的操作条件下,工作电流是20mA,且有一个电阻值为20Ω~50kΩ的内部上拉电阻器(默认情况下未连接)。为了避免微控制器永久性损坏,输入/输出引脚的工作电流不能超过40mA。

另外,某些引脚具有特殊功能。

(1)串口:0(RX)和1(TX)。用于接收(RX)和发送(TX)TTL串行数据。这2个引脚与ATmega16U2(或CH340)等USB-TTL串行芯片连接。

(2)外部中断:2和3。这2个引脚可配置为中断触发引脚。触发条件可以设为低电平触发、上升沿触发、下降沿触发和发生变化触发等4种。

(3)PWM:3、5、6、9、10和11。提供6路8位PWM(即PWM输出有2 8 =256个不同的值)。

(4)SPI:10(SS),11(MOSI),12(MISO)和13(SCK)。这些引脚支持SPI通信(SPI类库支持)。

(5)LED灯:13。Arduino开发板上有一个与13脚连接的LED灯。当13脚为HIGH(高电平)时,LED灯亮;当13脚为LOW(低电平)时,LED灯灭。

(6)TWI:A4或SDA引脚和A5或SCL引脚。Wire类库支持TWI通信。

Arduino UNO有6个模拟输入:A0~A5,每个模拟输入均为10位分辨率(即有1024个不同的数值)。默认情况下,模拟电压的测量范围是0~5V,通过AREF引脚和analogReference()函数,可以改变引脚的上限电压。

4.复位

RESET:该引脚为低电平,将复位微控制器。一般通过在扩展板上增加一个复位按钮来实现复位功能。

5.通信

Arduino/Genuino UNO开发板经常需要和计算机、另一个Arduino或其他微控制器通信。ATmega328P通过数字引脚0(RX)和1(TX),提供UART TTL(5V)串行通信。Arduino UNO开发板上的USB-TTL芯片负责完成USB到串行通信的转换,并在计算机中将串口映射成一个虚拟的COM口。16U2的固件使用标准的USB COM驱动程序,不需要任何外部驱动程序。但在Windows操作系统中,需要一个扩展名为inf的文件。Arduino软件包括一个串口监视器,允许接收或发送文本信息。当Arduino UNO开发板通过USB-to-serial驱动与计算机的USB口连接并且进行数据通信时,Arduino UNO开发板上的RX和TX指示灯将闪烁(但不是引脚0和1上的串行通信)。

SoftwareSerial(软件串口)类库允许在Arduino UNO开发板的任何数字引脚上实现串行通信。

ATmega328P也支持I2C(TWI)和SPI通信。Arduino软件包括一个Wire类库,用来简化I2C总线的应用。使用SPI类库实现SPI通信。

6.自动(软件)复位

Arduino/Genuino UNO开发板允许软件复位,在程序下载之前不需要按复位按钮。Arduino/Genuino UNO开发板在设计时,允许通过在与之连接的计算机上运行软件进行复位。ATmega8U2/16U2的硬件流控制线(DTR)通过一个100nF的电容器与ATmega328P的复位引脚相连,当该引脚为低电平时,ATmega328P有足够长的时间来复位。读者可以利用Arduino软件的这个特点,通过简单地单击菜单中的下载按钮来下载代码。这意味着BootLoader(引导程序)可以有较短的超时,同时,DTR可以与下载启动很好地同步。

当UNO连接到使用Mac OS或Linux操作系统的计算机时,每次软件通过USB连接UNO,它都会复位,在接下来的半秒左右时间内,引导装载程序BootLoader在UNO上运行。当它被编程为忽略数据格式错误(即除了上传新代码之外的任何内容)时,将拦截打开连接后发送到板上的前几个字节的数据。如果板上运行的代码在首次启动时接收一次性配置或其他数据,必须保证与之通信的软件已打开连接,并等待一秒后再发送数据。

UNO板上有一条线可以断开,目的是禁止自动复位。线两侧的焊盘可重新焊在一起以允许自动复位,该线被标注为“RESET-EN”。还可以通过在5V电源和复位线中间连接一个110Ω的电阻器,来禁用自动复位。

7.版本信息

第3版的Arduino UNO开发板有以下新的特性。

(1)在AREF引脚附近增加了SDA和SCL引脚,两个新增引脚在RESET引脚附近,IOREF引脚允许扩展板匹配Arduino UNO开发板提供的电压,扩展板可与使用5V供电的AVR以及使用3.3V供电的Arduino Due兼容。另外还有一个未连接的保留引脚。

(2)更稳定的复位电路。

(3)ATmega16U2代替了8U2。

Arduino UNO开发板的性能指标如表2-1所示。

表2-1 Arduino UNO开发板的性能指标

续表

2.1.2 Arduino Mega 2560

Arduino Mega 2560开发板适用于较复杂的工程。Arduino Mega 2560开发板有较多的数字、模拟输入/输出引脚以及较大的存储空间,常用于3D打印机和机器人等工程,图2-3是其实物图。

图2-3 Arduino Mega 2560实物图

Arduino Mega 2560(简称Mega 2560)是一个基于ATmega2560微控制器的开发板。它有54个数字输入/输出引脚(其中15个可作为PWM输出)、16个模拟输入、4个UART(硬件串口)、1个16 MHz晶体振荡器、1个USB接口、1个电源插孔、1个ICSP插座和1个复位按钮。Arduino Mega 2560开发板可以简单地通过一根USB线与计算机连接,也可以通过1个AC-DC变换器或电池供电。Arduino Mega 2560开发板与大部分用于Arduino UNO和早期的Duemilanove或Diecimila的扩展板兼容。

Arduino Mega 2560开发板的性能指标如表2-2所示。

表2-2 Arduino Mega 2560开发板的性能指标

Arduino Mega 2560开发板原理图如图2-4所示。

1.编程

Arduino Software(IDE)可对Arduino Mega 2560开发板进行编程。Arduino Mega 2560开发板上ATmega2560的BootLoader允许下载新的代码到开发板,而无须一个外部硬件编程器。编程采用的是STK500协议,也可以使用旁路BootLoader利用Arduino ISP,通过ICSP插座进行编程。

提示:Arduino Mega 2560开发板有一个能复位的聚乙烯保险丝,可防止计算机的USB端口短路和过流。虽然大部分计算机有自己的内部保护机制,但保险丝可提供外层的保护。如果USB端口的电流超过500mA,保险丝将自动断开连接,直到短路过载被消除。

另外,一些引脚具有特殊功能。

(1)串口用于接收(RX)和发送(TX)TTL串行数据。Serial:0(RX)和1(TX);Serial 1:19(RX)和18(TX);Serial 2:17(RX)和16(TX);Serial 3:15(RX)和14(TX)。引脚0和1同时与ATmega16U2(或CH340)USB-to-TTL串口芯片对应引脚相连。

(2)外部中断:2(中断0)、3(中断1)、18(中断5)、19(中断4)、20(中断3)和21(中断2)。这些引脚可设置为低电平、上升沿、下降沿或电平发生变化等4种触发模式。

(3)PWM:2~13和44~46。通过analogWrite()函数提供8位PWM输出。

图2-4 Arduino Mega 2560原理图

(4)SPI:50(MISO)、51(MOSI)、52(SCK)和53(SS)。通过SPI类库支持SPI通信,SPI引脚也被连到ICSP插座,与Arduino/Genuino UNO和旧版本Duemilanove和Diecimila Arduino开发板兼容。

(5)LED灯:13。板上有一个与13引脚连接的LED灯。当引脚为高电平时,LED灯亮;引脚为低电平时,LED灯灭。

(6)TWI:20(SDA)和21(SCL)。通过Wire类库支持TWI通信。这些引脚和旧版本Duemilanove或Diecimila Arduino板的位置有所不同。

(7)模拟输入:Mega 2560有16个模拟输入,即A0~A15。每个模拟输入可以用10位二进制数表示,即输入有1024个不同的数值。(分辨率是模数转换器的一个性能指标,是用转换位数表示的。)默认情况下,模拟电压的测量范围是0~5V,通过AREF引脚和analogReference()函数,可以改变引脚的上限电压。

(8)AREF:模拟输入的参考电压。

(9)RESET:该引脚拉低复位微控制器。一般通过在扩展板上增加一个复位按钮来实现复位功能。

2.通信

Arduino Mega 2560开发板的通信特性与Arduino UNO开发板类似。

3.物理参数和扩展板的兼容性

Arduino Mega 2560 PCB的尺寸是10.16cm×5.33cm,USB连接插座和电源插头大于Duemilanove/Diecimila板的尺寸。板上有3个螺丝孔,方便将开发板固定在某个平面上。注意:数字引脚7和数字引脚8之间的距离约为4.06mm,不像其他引脚间的距离,是2.54mm的偶数倍。

Arduino Mega 2560和Duemilanove /Diecimila开发板一样,其数字引脚0~13、REF和GND引脚、模拟输入0~5、电源插座和ICSP插头都在同样的位置。主串口和外部中断0和1(引脚2和引脚3)位置也没变。SPI可通过ICSP插头获得。注意Arduino Mega 2560开发板上的I2C和Duemilanove /Diecimila开发板的I2C位置不同。

4.自动(软件)复位

Arduino Mega 2560开发板的自动(软件)复位特性与Arduino UNO开发板相同。

5.版本信息

Arduino Mega 2560开发板没有使用FTDI USB-to-serial驱动芯片。它使用ATmega16U2(Arduino板的版本1和版本2采用ATmega8U2)作为USB-to-serial转换器。 BjQW9WII/QC736AGe4Yc7Uwza8AA/ytyz5yjdL+XZFHfu31vfCxhHDQxOVSV7D5+

点击中间区域
呼出菜单
上一章
目录
下一章
×