7. Arduino Nano开发模块
模块描述
Arduino Nano是基于ATmega328P的小型开发板,完全兼容Arduino生态系统,拥有丰富的库函数和社区支持。板载USB转串口芯片(CH340G),可直接通过USB下载程序和供电。具有14个数字I/O口(6个PWM)、8个模拟输入、16MHz主频。特别适合快速原型验证、传感器数据采集、简单控制等电赛应用,开发简单快速。
工作原理
[USB 5V] → [肖特基二极管] → [5V稳压输出]
↓
[AMS1117-3.3V] → [3.3V输出]
↓
[ATmega328P]
↑
[16MHz晶振] → [系统时钟]
↓
┌─────────┴──────────┐
↓ ↓
[数字I/O×14] [模拟输入×8]
(D0-D13+LED) (A0-A7)
↓ ↓
[PWM输出×6] [10位ADC]
技术指标
- 处理器: ATmega328P (AVR) - 工作电压: 5V - 输入电压: 7-12V (VIN引脚) - 主频: 16MHz - Flash: 32KB (bootloader占用2KB) - SRAM: 2KB - EEPROM: 1KB - 数字I/O: 14个 (其中6个PWM) - 模拟输入: 8个 (10位ADC) - I/O电流: 单个20mA, 总40mA - 串口: 1个硬件UART - SPI/I2C: 支持 - 尺寸: 18mm × 45mm
接口管脚定义
| 管脚 | 名称 | 功能 | 说明 |
| —— | —— | —— | —— |
| 1-2 | D1/TX, D0/RX | 串口 | 与USB共用 |
| 3 | RESET | 复位 | 低电平复位 |
| 4 | GND | 地 | 电源地 |
| 5-6 | D2, D3 | 数字I/O | 支持中断和PWM |
| 7-10 | D4-D7 | 数字I/O | 普通I/O |
| 11-12 | D8, D9 | 数字I/O | D9支持PWM |
| 13-14 | D10, D11 | 数字I/O+PWM | D10为SS, D11为MOSI |
| 15-16 | D12, D13 | 数字I/O | D12为MISO, D13为SCK+LED |
| 17 | 3V3 | 3.3V输出 | 最大50mA |
| 18 | AREF | ADC参考 | 外部参考电压 |
| 19-26 | A0-A7 | 模拟输入 | 也可作数字I/O |
| 27-28 | A6, A7 | 模拟输入 | 仅模拟输入 |
| 29 | 5V | 5V输出 | USB供电或VIN输入 |
| 30 | VIN | 外部输入 | 7-12V DC |
板上设置和信号指示
- 电源LED: 红色,指示5V供电 - TX/RX LED: 黄/绿色,串口通信指示 - L LED: 连接D13,用户可编程LED - USB接口: Mini USB或Micro USB - 复位按键: 手动复位按钮 - ICSP接口: 6针ISP下载接口 - 电源选择: USB或VIN自动切换
电气指标
- 工作电压: 5V - 推荐输入电压: 7-12V (VIN) - 极限输入电压: 6-20V - I/O电压: 5V TTL电平 - 单I/O电流: 最大40mA (推荐20mA) - 3.3V输出: 最大50mA - 5V输出: 取决于USB或VIN输入 - ADC分辨率: 10位 (0-1023) - ADC参考: 默认5V (可外接AREF) - PWM频率: 约490Hz (D5/D6为980Hz)
使用说明
1. 驱动安装: CH340G驱动(Windows需手动安装) 2. IDE设置: Arduino IDE选择“Arduino Nano”板型 3. 端口选择: 选择对应的COM口 4. 上传程序: 点击上传按钮,自动复位并下载 5. 库管理: 使用库管理器安装第三方库 6. 串口监视: 使用串口监视器调试(波特率匹配) 7. 引脚使用: 避免D0/D1用于其他功能(与串口冲突) 8. 电源选择: USB调试,VIN外部供电(>7V)
全国大学生电子设计竞赛相关赛题
- 2021年: 快速原型验证辅助工具 - 2019年H题: 模拟电磁曲射炮(简单控制) - 2017年: 传感器数据采集预处理 - 2015年: 辅助控制和数据转发 - 适用场景: 快速验证方案、传感器采集、简单逻辑控制
应用技术要点总结
1. 快速开发: 使用Arduino库函数加速开发 2. PWM应用: analogWrite()函数输出PWM(0-255) 3. ADC采集: analogRead()读取10位ADC值 4. 中断使用: attachInterrupt()配置外部中断(D2/D3) 5. 定时器: millis()/micros()获取时间,实现非阻塞延时 6. 串口通信: Serial库实现串口收发 7. I2C通信: Wire库连接I2C传感器 8. 库的使用: 善用第三方库(如PID、Servo、LiquidCrystal等)