Controle de PS2

Texto

Pinagem:

Pino VCC -> Ligado no 5v do Arduino. É o pino positivo do módulo.

Pino GND -> Ligado no GND do Arduino. É o pino negativo do módulo.

Pino SCL– > Ligado no A5 do Arduino. Pino de dados para a comunicação entre o Arduino e o módulo.

Pino SDA– > Ligado no A4 do Arduino. Pino de dados para a comunicação entre o Arduino e o módulo.

Exemplo de como usar o controle

Nesse exemplo, vamos usar a Biblioteca PS2X

#include <PS2X_lib.h>

PS2X ps2x;
int error = 0;
byte type = 0;

void setup() {
  Serial.begin(9600);
 
  error = ps2x.config_gamepad(7,5,4,6, true, true);
  if(error == 0){
   Serial.println(“Controle encontrado com sucesso!”);
  }else{
    Serial.println(“Controle não encontrado ou com problemas!”);
  }

 type = ps2x.readType();
 switch(type) {
   case 0:
    Serial.println(“Unknown Controller type”);
   break;
   case 1:
    Serial.println(“DualShock Controller Found”);
   break;
   case 2:
     Serial.println(“GuitarHero Controller Found”);
   break;
 }
}

void loop() {
  if(error == 1){
  Serial.println(“Controle não encontrado”);
  delay(3000);
  return;
  }

  ps2x.read_gamepad(false, 0);  //Lê as informações do controle

  Serial.print(“Analógicos:”);
  Serial.print(ps2x.Analog(PSS_LY), DEC);
  Serial.print(“,”);
  Serial.print(ps2x.Analog(PSS_LX), DEC);
  Serial.print(“,”);
  Serial.print(ps2x.Analog(PSS_RY), DEC);
  Serial.print(“,”);
  Serial.print(ps2x.Analog(PSS_RX), DEC);

  Serial.print(”   —   “);

  if(ps2x.Button(PSB_START)){
  Serial.println(“Botão Start pressionado”);
  }
  if(ps2x.Button(PSB_SELECT)){
  Serial.println(“Botão Select pressionado”);
  }

  if(ps2x.Button(PSB_PAD_UP)) {        
    Serial.print(“Seta para Cima: “);
    Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC);
  }
  if(ps2x.Button(PSB_PAD_RIGHT)){
    Serial.print(“Seta para Direita: “);
    Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC);
  }
  if(ps2x.Button(PSB_PAD_LEFT)){
    Serial.print(“Seta para Esquerda: “);
    Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC);
  }
  if(ps2x.Button(PSB_PAD_DOWN)){
    Serial.print(“Seta para Baixo: “);
    Serial.println(ps2x.Analog(PSAB_PAD_DOWN), DEC);
  }

  if (ps2x.NewButtonState()){        
    if(ps2x.Button(PSB_L3)){
      Serial.println(“Botão L3”);
    }
    if(ps2x.Button(PSB_R3)){
      Serial.println(“Botão R3”);
    }
    if(ps2x.Button(PSB_L2)){
      Serial.println(“Botão L2”);
    }
    if(ps2x.Button(PSB_R2)){
      Serial.println(“Botão R2”);
    }
    if(ps2x.Button(PSB_GREEN)){
      Serial.println(“Triangulo”);
    }
  }  

  if(ps2x.Button(PSB_L1)){
    Serial.println(“Botão L1”);
  }
  if(ps2x.Button(PSB_R1)){
    Serial.println(“Botão R1”);
  }

  if(ps2x.ButtonPressed(PSB_RED)){
    Serial.println(“Circulo”);
  }
       
  if(ps2x.ButtonReleased(PSB_PINK)){
    Serial.println(“Quadrado”);  
  }

  if(ps2x.NewButtonState(PSB_BLUE)){
    Serial.println(“X”);
  }

  Serial.println(“”);

}