【ESP32开发 传感器】| 使用双轴XY摇杆传感器

前要

  • 本次试验使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值