第1章 概述

1.1 Arduino简介

Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、电动机和其他的装置来反馈、影响环境。下面就让我们学习以下几个较典型的开发板。

1.1.1 Arduino Uno

Arduino Uno是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板,如图1-1所示。Uno的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出)、6路模拟输入、一个16MHz晶体振荡器、一个USB接口、一个电源插座、一个ICSP header和一个复位按钮。目前已经发布Uno第三版,第三版与前两版相比有以下特点:在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。改进了复位电路设计,USB接口芯片由ATmega16U2替代了ATmega8U2。

1.主要特征

(1)处理器:ATmega 328。

(2)工作电压:5V。

(3)输入电压(推荐):7~12V。

(4)输入电压(范围):6~20V。

(5)数字I/O引脚:14路(其中6路作为PWM输出)。(6)模拟输入引脚:6个。

(7)I/O引脚直流电流:40mA。

(8)3.3V引脚直流电流:50mA。

图1-1 Arduino Uno实物图

2.引脚说明

(1)14路数字输入/输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20kΩ~50kΩ内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能。

(2)串口信号RX(0号)、TX(1号):与内部ATmega8U2 USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。

(3)外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

(4)脉冲宽度调制PWM(3、5、6、9、10、11):提供6路8位PWM输出。

(5)SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。

(6)LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。

(7)A0~A5:6路模拟输入,每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0~5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能。

(8)TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。

(9)AREF:模拟输入信号的参考电压。

(10)RESET:信号为低时复位单片机芯片。

上述特征和引脚可用图1-2概述。

图1-2 Arduino原理图

1.1.2 Arduino Mega 2560

Arduino Mega 2560是采用USB接口的核心电路板,具有54路数字输入/输出,适合需要大量I/O接口的设计,如图1-3所示。处理器核心是ATmega 2560,同时具有54路数字输入∕输出口(其中16路可作为PWM输出)、16路模拟输入、4路UART接口、一个16MHz晶体振荡器、一个USB接口、一个电源插座、一个ICSP header和一个复位按钮。Arduino Mega 2560也能兼容为Arduino Uno设计的扩展板。目前,Arduino Mega 2560发布了第三版,第三版的特点如下。

(1)在AREF处增加了两个管脚SDA和SCL。

(2)支持I2C接口。

(3)增加IOREF和一个预留管脚,将来扩展板能兼容5V和3.3V核心板。改进了复位电路设计。

(4)USB接口芯片由ATmega16U2替代了ATmega8U2。

(5)Arduino Mega 2560可以通过3种方式供电,而且能自动选择供电方式。

(6)外部直流电源通过电源插座供电。

(7)电池连接电源连接器的GND和VIN引脚。

(8)USB接口直接供电。

图1-3 Arduino Mega 2560实物图

1.电源引脚说明

(1)VIN:当外部直流电源接入电源插座时,可以通过VIN向外部供电,也可以通过此引脚向Mega 2560直接供电。VIN有电时将忽略从USB或者其他引脚接入的电源。

(2)5V:通过稳压器或USB的5V电压,为Uno上的5V芯片供电。

(3)3.3V:通过稳压器产生的3.3V电压,最大驱动电流50mA。

(4)GND:地脚。

2.输入∕输出

(1)14路数字输入∕输出口:工作电压为5V,每一路能通过的最大电流为40mA。每一路配置了20kΩ~50kΩ内部上拉电阻。

除此之外,有些引脚有特定的功能。

·4路串口信号:串口0~0(RX)和1(TX);串口1~19(RX)和18(TX);串口2~17(RX)和16(TX);串口3~15(RX)和14(TX)。其中串口0与内部ATmega8U2 USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。

·6路外部中断:2(中断0),3(中断1),18(中断5),19(中断),20(中断3),21(中断2)。触发中断引脚,可设成上升沿、下降沿或同时触发。

·14路脉冲宽度调制PWM(0~13):提供14路8位PWM输出。

·SPI[53(SS),51(主机输出从机输入,MOSI),50(主机输入从机输出,MISO),52(SCK)]:SPI通信接口。

·LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。

(2)16路模拟输入:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0~5V,可以通过AREF调整输入上限。

除此之外,有些引脚有特定功能,比如TWI接口(20(SDA)和21(SCL))支持通信接口(兼容I2C总线)。

(3)AREF:模拟输入信号的参考电压。

(4)RESET:信号为低时复位单片机芯片。

综上,Arduino Mega 2560的构造原理图如图1-4所示。

图1-4 Arduino Mega 2560原理图

1.1.3 Arduino Nano

Arduino Nano是Arduino USB接口的微型版本,最大的不同是没有电源插座且USB接口是Mini-B型插座,如图1-5所示。Arduino Nano的尺寸极小,而且可以插在面包板上使用,其处理器核心是Atmega 168(Nano2.x)和Atmega 328(Nano3.0),同时具有14路数字输入∕输出口(其中6路可作为PWM输出)、8路模拟输入、一个16MHz晶体振荡器、一个Mini-B USB接口、一个ICSP header和一个复位按钮。

图1-5 Arduino Nano实物图

1.主要特征

·处理器:Atmega 168或Atmega 328。

·工作电压:5V输入电压(推荐);7~12V输入电压(范围)。

·数字I/O引脚:14路(其中6路作为PWM输出)。

·模拟输入引脚:6个。

·I/O引脚直流电流:40 mA。

·Flash Memory 16KB或者32KB(其中2KB用于引导程序)。

·SRAM 1 KB或者2KB。

·EEPROM 0.5 KB或者1KB(ATmega328)。

·FT232RL FTDI USB接口芯片。

·工作时钟:16 MHz。

2.电源

·Arduino Nano供电方式。

·Mini-B USB接口供电。

·pin27+5V接外部直流5V电源。

注意:只有通过USB接口供电时FT232RL才工作。

3.输入∕输出

14路数字输入∕输出口的工作电压为5V,每一路能通过的最大电流为40mA。每一路配置了20kΩ~50kΩ内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能。

·串口信号RX(0号)、TX(1号):提供TTL电压水平的串口接收信号与FT232Rl所相应的引脚相连。

·外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

·脉冲宽度调制PWM(3、5、6、9、10、11):提供6路8位PWM输出。

·SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。

·LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。

·6路模拟输入A0~A5:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0~5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能。

·TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。

·AREF:模拟输入信号的参考电压。

·RESET:信号为低时复位单片机芯片。

综上,Arduino Nano原理图如图1-6所示。

图1-6 Arduino Nano原理图

1.1.4 Arduino Leonardo

Arduino Leonardo是基于ATmega32U4的一个微控制器板。它有20个数字输入/输出引脚(其中7个可用于PWM输出、12个可用于模拟输入)、一个16 MHz的晶体振荡器、一个Micro USB接口、一个DC接口、一个ICSP接口以及一个复位按钮,如图1-7所示。它包含了支持微控制器所需的一切,可以简单地通过连接到计算机的USB接口,或者使用AC-DC适配器,或者用电池来驱动它。

Leonardo不同于之前所有的Arduino控制器,它直接使用了ATmega32U4的USB通信功能,取消了USB转UART芯片。这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/COM端口,还可以作为鼠标或者键盘连接到计算机。

图1-7 Arduino Leonardo实物图

1.主要特征

·微控制器:ATmega32U4。

·工作电压:5V。

·输入电压(推荐):7~12V。

·输入电压(限制):6~20V。

·数字I/O引脚:20。

·PWM通道:7。

·模拟输入引脚:12。

·每个I/O直流输出能力:40mA。

·3.3V端口输出能力:50mA。

·Flash:32 KB(ATmega32U4),其中4KB由引导程序使用。

·SRAM:2.5 KB(ATmega32U4)。

·EEPROM:1 KB(ATmega32U4)。

·时钟速度:16MHz。

2.输入∕输出

通过使用pinMode()、digitalWrite()和digitalRead()函数,Leonardo上的20个I/O引脚中的每一个都可以作为输入⁄输出端口。每个引脚都有一个20kΩ~50kΩ的内部上拉电阻(默认断开),可以通过最大40mA的电流。此外,部分引脚还有专用功能。

·UART:0(RX)和1(TX)使用ATmega32U4硬件串口,用于接收(RX)和发送(TX)的TTL串行数据。需要注意的是,Leonardo的Serial类是指USB(CDC)的通信,而引脚0和1的TTL串口使用Serial1类。

·TWI:2(SDA)和3(SCL)通过使用Wire库来支持TWI通信。外部中断为2和3,这些引脚可以被配置。

·PWM:(3、5、6、9、10、11、13)能使用analogWrite()函数支持8位的PWM输出。SPI:ICSP引脚。能通过使用SPI库支持SPI通信。需要注意的是,SPI引脚没有像Uno连接到任何的数字I/O引脚上,它们只能在ICSP端口上工作。这意味着,如果扩展板没有连接6脚的ICSP引脚,那它将无法工作。

·LED(13):有一个内置的LED在数字引脚13上,当引脚是高电平时,LED点亮,引脚为低电平时,LED不亮。

·模拟输入:A0~A5,A6~A11(数字引脚4,6,8,9,10,12),Leonardo有12个模拟输入,A0~A11,都可以作为数字I/O口。引脚A0~A5的位置与Uno相同;A6~A11分别是数字I/O引脚4,6,8,9,10和12。每个模拟输入都有10位分辨率(即1024个不同的值)。默认情况下,模拟输入量为0~5V,也可以通过AREF引脚改变这个上限。

·AREF:模拟输入信号参考电压通过analogReference()函数。

综上,Arduino leonardo的原理图如图1-8所示。

图1-8 Arduino Leonardo原理图

1.1.5 Arduino扩展板

Arduino扩展板通常具有和Arduino开发板一样的引脚位置,可以堆叠接插到Arduino上,进而实现特定功能的扩展。Arduino有许多扩展板,其中较典型的是Proto Shield原型扩展板、GPRS Shield扩展板、Arduino Ethernet W5100 R3 Shield网络扩展板、WizFi210扩展板、Arduino L298N电机驱动扩展板、Arduino传感器扩展板等。由于扩展板非常多,所以我们下面就从中选取Arduino传感器扩展板进行简单介绍。

在面包板上接插元件固然方便,但需要有一定的电子知识来搭建各种电路。而使用传感器扩展板,只需要用通过连接线,把各种元件接插到扩展板上即可。使用传感器扩展板,可以更快速地搭建出所需的项目传感器扩展板,如图1-9所示。它是最常用的Arduino外围硬件之一。

在扩展板上,数字引脚和模拟输入引脚边有红黑两排排针,以“+”“−”标示,其中,“+”表示VCC,“−”表示GND。在一些厂家的扩展板上,VCC和GND可能也会以“V”“G”标示。

图1-9 传感器扩展板

通常我们习惯用红色代表电源(VCC),黑色代表地(GND),其他颜色代表信号(Signal),如图1-10所示。传感器与扩展板间的连接线也是这样。

如图1-11所示,在使用其他模块时,只需要对应颜色,将模块插到相应的引脚即可使用。

图1-10 引脚图

图1-11 连接实物图

扩展板如图1-12所示,其L298电机驱动芯片可以驱动两路直流电机,常用于制作Arduino智能小车。

网络扩展板如图1-13所示,其基于Wiznet W5100设计,使用它即可让Genuino 101接入网络,进而访问互联网上的数据,或与远程服务器通信。

图1-12 扩展板

图1-13 网络扩展板

原型扩展板如图1-14所示,可以在其上焊接搭建电路,实现需要的特定功能。

图1-14 原型扩展板