前要
- 本次试验使用Arduino ESP32-S 开发板
- 双轴XY摇杆简单封装模块
模块与开发板接线
本项目使用的传感器模块是双轴摇杆模块(Dual-Axis Joystick Module)。
这种模块通常包含两个电位器,分别用于检测X轴和Y轴的移动,以及一个按压按钮。
1.双轴电位器
- X轴和Y轴移动检测:通过两个电位器分别检测摇杆在X轴和Y轴方向上的偏移。每个电位器输出一个模拟信号,表示摇杆在该轴上的位置。
- 模拟输出:X轴和Y轴电位器的输出为模拟电压,通常连接到ESP32的模拟输入引脚(ADC)。
2.按压按钮
- 按压检测:摇杆可以像按钮一样按下,通常检测按压状态的信号为数字信号(高/低电平)。
- 数字输出:按钮的输出为数字信号,通常连接到ESP32的数字输入引脚。
双轴XY摇杆 模块引脚 | Arduino ESP32 引脚 |
VCC | 5V、VCC |
GND | GND |
VRx | GPIO34 |
VRy | GPIO35 |
SW | GPIO32 |
实际代码/实际运行
串口打印使用了中文,要注意串口编码与串口波特率
不正确设置串口,可能会出现乱码现象
// 定义摇杆各个引脚
const int X_PIN = 34; // X轴数据连接到GPIO34
const int Y_PIN = 35; // Y轴数据连接到GPIO35
const int SW_PIN = 32; // 按钮连接到GPIO32
void setup() {
// 初始化串口通信
Serial.begin(115200);
// 设置引脚模式
pinMode(X_PIN, INPUT);
pinMode(Y_PIN, INPUT);
pinMode(SW_PIN, INPUT_PULLUP); // 按钮使用内部上拉电阻
}
void loop() {
// 读取摇杆的X轴和Y轴数据
int xValue = analogRead(X_PIN);
int yValue = analogRead(Y_PIN);
// 读取按钮状态
int swState = digitalRead(SW_PIN);
// 输出摇杆数据到串口, 格式化输出
Serial.print("X轴: ");
Serial.print(xValue);
Serial.print(" | Y轴: ");
Serial.print(yValue);
Serial.print(" | 按钮: ");
Serial.println(swState == LOW ? "按下" : "未按下");
// 延迟一段时间,避免输出过快
delay(500);
}
开发环境:Arduino IDE
代码辅助:ChatGPT
作者:羡林i