Arduino Leonardo

整理来源

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

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

以下内容均翻译自arduino.cc,水平有限,如有错误请大家指正。

概述 Arduino Leonardo是基于ATmega32u4一个微控制器板。它有20个数字输入/输出引脚(其中7个可用于PWM输出、12个可用于模拟输入),一个16 MHz的晶体振荡器,一个Micro USB接口,一个DC接口,一个ICSP接口,一个复位按钮。它包含了支持微控制器所需的一切,你可以简单地通过把它连接到计算机的USB接口,或者使用AC-DC适配器,再或者用电池来驱动它。 Leonardo不同于之前所有的arduino控制器,他直接使用了ATmega32u4的USB通信功能,取消了USB转UART芯片。这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/ COM端口,还可以作为鼠标或者键盘连接到计算机。它还有很多不同的地方,我们会在入门页面中介绍。

参数

微控制器                   ATmega32u4
工作电压                    5V
输入电压(推荐)             7-12V
输入电压(限制)             6-20V
数字I/O引脚                 20
PWM通道                    7
模拟输入通道                12
每个I/O直流输出能力          40毫安
3.3V端口输出能力            50毫安
Flash                     32 KB(ATmega32u4)其中4 KB由引导程序使用
SRAM                      2.5 KB(ATmega32u4)
EEPROM                    1 KB(ATmega32u4)
时钟速度                    16MHz

数字输入/输出引脚

通过使用pinMode(), digitalWrite(), and digitalRead() 函数,Leonardo上的20个I/O引脚中的每一个都可以作为输入输出端口。每个引脚都有一个20-50千欧的内部上啦电阻(默认断开),可以输出或者输入最大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()函数使用。

Reset:

通过置低该线路来复位arduino,通常用在带复位按键的扩展板上。

通信

要让 Leonardo 与电脑、其他 Arduino 或者其他的微控制器通信,有多种设备。

  • 在0、1上ATmega32u4 提供了 UART TTL(5V)的通信方式。
  • 32u4 还允许通过 USB 在电脑上虚拟 COM 端口来进行虚拟串行(CDC)通信。这个芯片使用标准的 USB 串行驱动(在Windows上需要一个.inf文件),可以作为一个全速 USB2.0 设备。

Arduino 软件包含了一个串口监视器,可以与 Arduino 板子相互发送或者接收简单的数据。当使用USB传输数据时,板子上 RX、TX LED 会闪烁(这个特性不是适用于0、1端口)。

SoftwareSerial 库能让任意的数字I/O口进行串行通信。

ATmega32u4 还支持 TWI(I2C)和SPI通信。arduino软件有一个用于简化TWI(I2C)通信的 wire 库。SPI 通信可以使用SPI库。

Leonardo 可以作为鼠标、键盘出现,也可以通过编程来控制这类键盘鼠标输入设备。