Arduino Nano 开发板引脚解析与外设连接指南
Arduino Nano 是一款基于 ATmega328P 微控制器的小型开发板,广泛应用于嵌入式开发、传感器数据采集和电机控制等场景。本文将详细解析其引脚功能、调用方法及常见外设连接方式,帮助开发者快速上手。
一、Arduino Nano 引脚功能解析
Arduino Nano 共有 30 个引脚,分为以下类别:
1. 数字引脚(D0-D13)
- D0(RX) 和 D1(TX):串口通信引脚,用于与计算机或其他设备通信。
- D2、D3:支持外部中断(
INT0
和INT1
),适用于编码器、按键等需要快速响应的场景。 - D3、D5、D6、D9、D10、D11:支持 PWM 输出(标记为
~
),可用于控制LED亮度、电机速度等。 - D10(SS)、D11(MOSI)、D12(MISO)、D13(SCK):SPI 通信引脚,用于连接 SPI 设备(如显示屏、SD卡模块)。
2. 模拟输入引脚(A0-A7)
- A0-A7:6 个模拟输入引脚(A0-A5)和 2 个复用引脚(A6、A7,位于数字引脚 D4 和 D5)。用于读取模拟信号(如温度、光强传感器)。
3. 电源与通信引脚
- VIN:外部电源输入(7-12V)。
- 5V:5V 输出,为外设供电。
- 3.3V:3.3V 输出,适用于低功耗设备。
- GND:接地引脚。
- RESET:复位引脚。
- AREF:模拟参考电压输入(默认使用板载 5V)。
4. 其他功能引脚
- SDA(A4)、SCL(A5):I2C 通信引脚,用于连接 I2C 设备(如 OLED 屏幕、MPU6050 传感器)。
二、引脚调用方法
1. 数字引脚
- 输入模式:读取开关、数字传感器信号。
pinMode(pin, INPUT); // 设置为输入 int value = digitalRead(pin); // 读取电平(HIGH/LOW)
- 输出模式:控制LED、继电器等。
pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); // 输出高电平
2. 模拟引脚
- 读取模拟信号(如电位器、光敏电阻):
int sensorValue = analogRead(A0); // 返回值范围 0-1023
- PWM 输出(调节LED亮度、电机速度):
analogWrite(pin, dutyCycle); // dutyCycle 范围 0-255
3. 中断引脚(D2、D3)
- 用于编码器、紧急停止等需要实时响应的场景:
attachInterrupt(digitalPinToInterrupt(pin), ISR, mode); // mode: RISING(上升沿)、FALLING(下降沿)等
4. 通信协议
- 串口通信:
Serial.begin(9600); // 初始化串口 Serial.println("Hello"); // 发送数据
- I2C 通信(需
Wire.h
库):Wire.begin(); // 初始化I2C Wire.beginTransmission(address); // 发送数据
- SPI 通信(需
SPI.h
库):SPI.begin(); // 初始化SPI SPI.transfer(data); // 发送数据
三、外设连接方法
1. 传感器连接
-
数字传感器(如超声波模块 HC-SR04):
- Trig 接数字引脚(如 D7),Echo 接数字引脚(如 D8)。
- 代码示例:
digitalWrite(7, HIGH); delayMicroseconds(10); digitalWrite(7, LOW); duration = pulseIn(8, HIGH);
-
模拟传感器(如光敏电阻):
- 一端接模拟引脚(如 A0),另一端接 GND,串联分压电阻。
2. 电机控制
-
直流电机(需驱动模块如 L298N):
- IN1、IN2 接数字引脚(如 D5、D6),控制方向。
- ENA 接 PWM 引脚(如 D9),调节速度。
- 代码示例:
analogWrite(9, 200); // 设置速度 digitalWrite(5, HIGH); digitalWrite(6, LOW); // 正转
-
步进电机(如 28BYJ-48):
- 使用 ULN2003 驱动板,连接 D8-D11。
- 需
Stepper.h
库控制步进数。
3. 编码器连接
- 旋转编码器(如 KY-040):
- CLK 接 D2(中断引脚),DT 接 D3,SW 接 D4(可选)。
- 代码示例(中断计数):
volatile int counter = 0; void setup() { attachInterrupt(0, encoderISR, CHANGE); } void encoderISR() { if (digitalRead(2) == digitalRead(3)) counter++; else counter--; }
4. 显示设备
- OLED 屏幕(I2C 接口):
- SDA 接 A4,SCL 接 A5。
- 使用
Adafruit_SSD1306
库驱动。
四、注意事项
- 电源管理:大功率设备(如电机)需独立供电,避免电流过载。
- 电平匹配:3.3V 设备避免直接接 5V 引脚。
- 抗干扰:长距离通信时使用屏蔽线,电机信号线与电源线分开走线。
- 上拉电阻:数字输入引脚建议启用内部上拉(
INPUT_PULLUP
)。
通过本文,您可以快速掌握 Arduino Nano 的引脚功能与常用外设连接方法。实际开发中,建议结合具体模块的文档调整代码与电路设计。