Arduino Uno轻松入门48例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 Arduino入门基础

1.1 Arduino是什么

1.Arduino概述

2005年,欧洲的一个开发团队开发出一款名称为Arduino的开源电子平台,用于开发智能控制类电子项目。该平台包括硬件(用于连接电路的Arduino板)和软件(程序开发环境Arduino IDE)两部分。注:开源是公开硬件资源、开放软件源代码的意思。

Arduino开发板(又称板)由电路板、微控制器(使用的是AVR单片机)、输入/输出端口、USB接口、外接电源插孔、复位键等部分组成。它是一块微型计算机主板,包含支持单片机工作所需要的所有外围电路,接通电源后就可以工作。

Arduino IDE软件可在计算机上安装使用,运用Arduino编程语言编写程序代码,运用Arduino编译器将程序代码转换为二进制代码,运用Arduino连接器将二进制代码上传到Arduino板上的微控制器,Arduino板因此在程序控制下自动运行。注:IDE是英文Integrated Development Environment的缩写,意思是集成开发环境,包括编辑器、编译器、连接器等。

Arduino的主要用途:可运用开关、传感器、控制器件编程来控制LED灯、步进电机或其他输出装置。比如:运用红外遥控器编程控制LED灯,非常简单实用;再如:运用超声波传感器编程控制避障小车,十分有趣好玩。

Arduino的主要特点:跨平台,Arduino IDE软件可在Windows、Macintosh OS、Linux操作系统上安装使用;开源,Arduino硬件的电路原理图、电路图、Arduino IDE软件及核心库文件开源,且Arduino全球流行,共享资源十分丰富,用户可以免费下载、自由使用,通过整合资源,用户能明显加快开发的速度,提高开发的效率;低成本,Arduino板价格低,Arduino IDE软件免费,Arduino硬件资源与软件源代码开源,微控制器价廉物美,由USB接口供电,无须外接电源,程序开发接口可免费下载,支持在线编程,系统结构简单清晰,开发方式易学好用,对于初学者来说,可大大节约学习的成本。

Arduino的突出优点:Arduino的IDE软件开源,可免费下载使用;Arduino板价格低,资源丰富;Arduino基于AVR单片机平台,对AVR库进行了二次编译封装,大大降低了软件开发难度,功能强大,简单易学,非常适合初学者。

2.Arduino Uno开发板

Arduino板有多种型号,其中Arduino Uno开发板是一款适合初学者学习使用的开发板,因此,本书仅以Arduino Uno开发板为例展开学习辅导。Arduino Uno开发板的尺寸为70mm(宽)X54mm(高),外形如图1.1所示。

img

图1.1 Arduino Uno开发板外形

端口及组成部件说明如下。

(1)0~13为14个数字输入/输出(Digital I/O)端口,最大输入/输出电流为40mA,其中,端口0和1可用作串口通信数据发送和接收引脚,端口3、5、6、9、10、11具有PWM(脉冲宽度调制)功能,端口13与板载LED灯连接。注:这里的数字指数字量,数字量指在一定范围内不连续变化的物理量;输入/输出端口指输入或输出的引脚,引脚电压的变化范围为0~5V,数字端口的返回值为数字0或1,当引脚电压低于0.8V时,数字端口的返回值为数字0,数字0表示低电平,当引脚电压高于2.0V时,数字端口的返回值为数字1,数字1表示高电平,当引脚电压高于0.8V且低于2.0V时,数字端口的返回值将无法确定;当端口13输出数字1时,板载LED灯点亮,当端口13输出数字0时,板载LED灯熄灭,具体用法详见2.2节;串口通信详见2.1节;PWM详见2.5节。

(2)A0~A5为6个模拟输入(Analog In)端口,具有10位的分辨率,默认输入信号为0~5V电压。注:这里的模拟指模拟量,模拟量指在一定范围内连续变化的物理量;输入端口指输入引脚;10位的分辨率指采用10位编码将模拟信号量化为210=1024个量级,如输入信号为0V,端口返回值为0,输入信号为5V,端口返回值为1024,输入信号为2.5V,端口返回值为512,具体用法见2.4节;A0~A5也可当成普通数字输入/输出端口使用,具体用法见2.36节。

(3)GND为电路公共逻辑参考电平引脚、电线接地端口,对于电源而言,GND为电源负极。Arduino Uno开发板上共有3个GND。

(4)AREF为模拟输入的基准电压(Reference Voltage for the Analog Inputs),使用analogReference()命令调用。

(5)SCL/SDA是I2C通信专用引脚,SCL引脚是用于同步数据传输的时钟线,与模拟端口A5连接,SDA引脚是用于传输数据的数据线,与模拟端口A4连接。I2C通信可实现单个板上组成部件之间的通信,具体用法见2.37节。

(6)复位(Reset)键,又称重新启动键,在设备通电状态下手动按下复位键可使设备重新启动,程序从起始状态重新开始运行。

(7)USB B口是USB接口的一种,内置2根电源线与2根信号线。Arduino Uno开发板通过USB B型电缆线连接到计算机USB接口上,可获得5V、500mA的供电电源;可借助计算机将程序下载到开发板上;能与计算机串口通信,USB 2.0传输速率可以达到480Mbps。注:480Mbps表示1秒钟传输480兆比特的数据信息,bit(比特)是计算机中最小的存储单位,平时看到的KB、MB中的B指Byte(字节),1Byte=8bit。

(8)外接电源插孔连接7~12V直流电源适配器,外接电源插孔的正极与1N4007二极管的正极连接,1N4007二极管的负极与VIN端口、AMS1117三端稳压器输入端连接。当Arduino Uno开发板的耗电电流小于500mA时,采用USB接口供电即可,无须外接电源;当耗电电流大于500mA时,必须外接电源,否则,开发板不能正常工作。

(9)5V和3.3V端口可向外部电路提供5V和3.3V电源。

(10)RESET端口与复位键的引脚连接。将此端口与GND端口快速连接一下然后断开,可使设备重新启动,从起始状态重新开始。

(11)VIN端口为外接电源输入(Voltage In)端口,外接电源的输入电压为7~12V。

(12)ISCP插头用于ISP(ISP是英文In-System Programming的缩写,是在线编程的意思),开发板有6只引脚,可通过电缆线连接到编程设备上,向芯片写入程序或擦除程序,即具有在线调试、编程功能。

(13)ATMEGA328P芯片是一款高性能、低功耗、可编程、带32KB闪存的8位AVR微控制器,工作电压为1.8~5.5V,速度等级为0~20MHz,闪存可反复擦写10000次,数据可保存20年不丢失。

(14)16MHz晶振表示使用的晶体振荡器的振荡频率为16MHz(16000000Hz),晶振在Arduino Uno开发板上的主要作用是产生基准频率,微控制器通过基准频率控制电路中的频率的准确性。注:频率指单位时间内变化的次数,频率的单位是赫兹,简称“赫”,符号为Hz。16MHz表示1秒钟变化16000000次。