首页 / 电机与控制 / PS2 双摇杆模块 LED 指示说明
FAQ / LED 指示
PS2 双摇杆模块 LED 指示说明
说明“下面灯亮、上面模块 LED 不亮”的常见原因:这批实测模块 LED 接在 Arduino D3,需要程序控制,不是插上电就自动亮的电源灯。
D3
LED 由程序控制;不是自动电源灯。
Conclusion
先看结论
下面灯亮
通常是 Arduino UNO 自己的电源指示灯,插 USB 就会亮。
模块 LED 不亮
PS2 摇杆模块上的 LED 实测接在 D3,需要程序输出高电平才会亮。
摇杆读不到
先检查 VCC、GND、VRx、VRy、SW 接线和程序引脚是否一致。
Wiring
Arduino UNO 常用接线
| PS2/摇杆模块 | Arduino UNO | 说明 |
|---|---|---|
| VCC | 5V | 按模块丝印确认,常见摇杆模块可接 5V。 |
| GND | GND | 必须共地。 |
| VRx / X | A0 | X 轴模拟量。 |
| VRy / Y | A1 | Y 轴模拟量。 |
| SW | D2 | 按键输入,程序中使用 INPUT_PULLUP。 |
| LED | D3 | 需要程序控制;本批次实测为 D3,以实测接线为准。 |
Code
LED 与摇杆测试代码
这段代码只用于判断 LED 和摇杆输入是否正常。打开 Arduino IDE 串口监视器,波特率选 115200,可以看到 X/Y/按键数值。
const int PIN_X = A0;
const int PIN_Y = A1;
const int PIN_SW = 2;
const int PIN_LED = 3;
void setup() {
Serial.begin(115200);
pinMode(PIN_SW, INPUT_PULLUP);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int x = analogRead(PIN_X);
int y = analogRead(PIN_Y);
int sw = digitalRead(PIN_SW);
// LED 每 500ms 闪一次,证明 D3 可以被程序控制。
digitalWrite(PIN_LED, (millis() / 500) % 2);
Serial.print("X=");
Serial.print(x);
Serial.print(" Y=");
Serial.print(y);
Serial.print(" SW=");
Serial.println(sw == LOW ? "pressed" : "released");
delay(100);
}
FAQ
常见问题
为什么下面灯亮,上面灯不亮?
下面灯通常是 Arduino UNO 板自己的电源指示灯;上面模块的 LED 实测接在 D3,需要程序控制,所以不会插上电就自动亮。
LED 不亮能不能判断模块坏?
不能。要先烧录测试程序,看 D3 能不能闪烁,再看摇杆 X/Y 模拟值有没有变化。
摇杆、按键也无法读取怎么办?
先确认 VCC/GND 没接反,VRx/VRy 是否接到程序里对应的 A0/A1,按键 SW 是否使用 INPUT_PULLUP。杜邦线松动也很常见。
Customer Reply
淘宝客户简短话术
您好,下面亮的一般是 Arduino 板自己的电源灯;摇杆模块上的 LED 不是电源灯,这批实测接在 D3,需要程序控制才会亮。请先按页面接线烧录测试程序,如果 D3 能闪、串口能看到 X/Y 数值变化,模块就是正常工作的。若仍无反应,请拍一下 VCC/GND/VRx/VRy/SW 接线和串口监视器画面,我们继续帮您排查。