这是一个ps2转接板,目的是把ps2转成杜邦插口,期间没有任何其它电路。
库文件:
#define PS2_DAT 12
#define PS2_CMD 11
#define PS2_CS 10
#define PS2_CLK 13
#include "PS2X_lib.h"
volatile int flag_rocker;
volatile int flag_motor1;
PS2X ps2x;
void setup(){
flag_rocker = 0;
flag_motor1 = 0;
Serial.begin(9600);
ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_CS, PS2_DAT, true, true);
}
void loop(){
if (flag_motor1 == 0) {
ps2x.read_gamepad(false,ps2x.Analog(PSAB_CROSS));
} else {
ps2x.read_gamepad(true,0);
}
if (ps2x.ButtonPressed(PSB_START)) {
Serial.println("Start pressed");
}
if (ps2x.ButtonPressed(PSB_SELECT)) {
Serial.println("Select pressed");
}
if (ps2x.ButtonPressed(PSB_PAD_UP)) {
Serial.print("Up held this hard:");
Serial.println(ps2x.Analog(PSAB_PAD_UP));
}
if (ps2x.ButtonPressed(PSB_PAD_RIGHT)) {
Serial.print("Right held this hard:");
Serial.println(ps2x.Analog(PSAB_PAD_RIGHT));
}
if (ps2x.ButtonPressed(PSB_PAD_LEFT)) {
Serial.print("Left held this hard:");
Serial.println(ps2x.Analog(PSAB_PAD_LEFT));
}
if (ps2x.ButtonPressed(PSB_PAD_DOWN)) {
Serial.print("Down held this hard:");
Serial.println(ps2x.Analog(PSAB_PAD_DOWN));
flag_motor1 = 1;
} else if (ps2x.ButtonReleased(PSB_PAD_DOWN) == 1) {
flag_motor1 = 0;
}
if (ps2x.ButtonPressed(PSB_CROSS)) {
Serial.println("Cross");
}
if (ps2x.ButtonPressed(PSB_CIRCLE)) {
Serial.println("Circle");
}
if (ps2x.ButtonPressed(PSB_SQUARE)) {
Serial.println("Square");
}
if (ps2x.ButtonPressed(PSB_TRIANGLE)) {
Serial.println("Triangle");
}
if (ps2x.ButtonPressed(PSB_L1)) {
Serial.println("L1");
flag_rocker = 1;
} else if (ps2x.ButtonReleased(PSB_L1) == 1) {
flag_rocker = 0;
}
if (ps2x.ButtonPressed(PSB_R1)) {
Serial.println("R1");
flag_rocker = 1;
} else if (ps2x.ButtonReleased(PSB_R1) == 1) {
flag_rocker = 0;
}
if (ps2x.ButtonPressed(PSB_L2)) {
Serial.println("L2");
}
if (ps2x.ButtonPressed(PSB_R2)) {
Serial.println("R2");
}
if (ps2x.ButtonPressed(PSB_L3)) {
Serial.println("L3");
}
if (ps2x.ButtonPressed(PSB_R3)) {
Serial.println("R3");
}
if (flag_rocker == 1) {
Serial.print("Stick Values:");
Serial.print(ps2x.Analog(PSS_LX));
Serial.print(",");
Serial.print(ps2x.Analog(PSS_LY));
Serial.print(",");
Serial.print(ps2x.Analog(PSS_RX));
Serial.print(",");
Serial.println(ps2x.Analog(PSS_RY));
}
delay(30);
}
米思齐测试例程:
更新记录:
2021.10.15创建