一、上道具:
二、环境:
arduino IDE或VS Code PlatformIO (我是后者)
三、硬件准备:
一个esp32
五根杜邦线
一个双轴按键摇杆模块
一台电脑
一根数据线
补充:
1、注意:双轴按键摇杆模块上有一个R1,此处无电阻,只有焊接100K贴片电阻,SW(KEY)引脚才能使用。
2、若数值为0或者4095这样的极值,请用万用表测量模块电压是否为模拟值。
3、若数值为0或者4095这样的极值,可能是ESP32板子有问题。(比如我。)可换其他板子试试。
四、连线
双轴摇杆按键模块 | arduino |
5V | 5V |
VRX | IO32 |
VRY | IO33 |
SW(KEY) | IO3 |
模拟量输入x_value,y_value 模拟量值得变化范围 0 - 4095
默认摇杆中间位置理论在2800左右,(实际在1200左右)
x轴 左侧到右侧变化范围 0-4095
y轴 上面到下面变化范围 0-4095
key_value 默认值为1 按下值为0,
五、代码功能:
串口不断输出x、y、key的值。
六、代码:
#include <Arduino.h>
const int x = 32;
const int y = 33;
const int key = 35;
void setup(){
Serial.begin(115200);
pinMode(key,INPUT);
// 设置分辨率12位,数值范围0-4096
analogReadResolution(32);
analogReadResolution(33);
}
//模拟量输入
//x_value y_value 模拟量值得变化范围 0 - 4095 默认摇杆中间位置在2800左右
//x轴 左侧到右侧变化范围 0-4095 y轴 上面到下面变化范围 0-4095
//key_value 默认值为1 按下值为0
void loop(){
int x_value = analogRead(x);
int y_value = analogRead(y);
int key_value = digitalRead(key);
Serial.print(x_value);
Serial.print(",");
Serial.print(y_value);
Serial.print(",");
Serial.println(key_value);
delay(100);
}