首页 / 电机与控制 / 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说明
VCC5V按模块丝印确认,常见摇杆模块可接 5V。
GNDGND必须共地。
VRx / XA0X 轴模拟量。
VRy / YA1Y 轴模拟量。
SWD2按键输入,程序中使用 INPUT_PULLUP。
LEDD3需要程序控制;本批次实测为 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 接线和串口监视器画面,我们继续帮您排查。