Untitled

                Never    
C
       
#include <PS2X_lib.h>
 
#define PS2_DAT 13 // data
#define PS2_CMD 11 //command
#define PS2_SEL 10 // attention
#define PS2_CLK 12 //clock
PS2X ps2x; // tạo PS2 điều khiển lớp
int error = 0;
byte type = 0;
byte vibrate = 0;
void setup()
{
    Serial.begin(57600); 
    error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, true,true);
    if (error == 0) {
        Serial.print("Đã tìm thấy bộ điều khiển ");
    }
    else if (error == 1)
        Serial.println("Không kết nối đc, thử lại...");
 
    else if (error == 2)
        Serial.println("Bộ điều khiển tìm thấy nhưng không chấp nhận lệnh");
 
    else if (error == 3)
        Serial.println("Bộ điều khiển từ chối để vào chế độ Pressures ,hoặc ko hỗ trợ");
 
    type = ps2x.readType();
    switch (type) {
    case 0:
        Serial.print("Tay điều khiển không phù hợp ");
        break;
    case 1:
        Serial.print("Đã tìm thấy DualShock ");
        break;
    }
}
 
void loop()
{
    if(error == 0){
      return;
    }else{
      ps2x.read_gamepad(false, vibrate);
      vibrate = ps2x.Analog(PSAB_BLUE); 
    }
    float y=ps2x.Analog(PSS_LY);
    float x=ps2x.Analog(PSS_LX);

    if(y ==0 && x == 128){
      //Kéo thẳng
    }
    if(y >0 && y<128 && x>128 && x<255 ){
      //Nghiêng phải , lên trên
    }
    if(y == 128 && x == 255){
      //Kéo phải
    }
    if(y > 128 && y <255 && x<255 && x>128){
      //Nghiêng phải, xuống dưới
    }
    if(y ==255&&x==128){
      //Kéo xuống
    }
    if(y<255&&y>128 && x<128&&x>0){
      //Nghiêng trái, xuống dưới
    }
    if(y == 128 && x == 0){
      //Kéo trái
    }
    if(y<128&&y>0 && x>0&&x<128){
      //Nghiêng trấi, lên trên
    }
    
}

Raw Text