ArduinoでPS2コントローラを使いたい
Arduinoでps2コントローラーを有線で使いたいので(コチラ)のサイトを参考に回路を組みました。
そして、ボタンを確認するために次のようなプログラムを書き込みました。
テストプログラム(サイト(覚えていない)から引用しました)
#include <PS2X_lib.h> PS2X ps2x; // create PS2 Controller Class int error = 0; byte vibrate = 0; //========================================================================================================== //Main //========================================================================================================== void setup(){ Serial.begin(57600); error = ps2x.config_gamepad(13,11,10,12, true, true); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error if(error == 0){ Serial.println("0 Found Controller, configured successful"); } else if(error == 1) Serial.println("1 No controller found, check wiring, see readme.txt to enable debug. "); else if(error == 2) Serial.println("2 Controller found but not accepting commands. see readme.txt to enable debug. "); else if(error == 3) Serial.println("3 Controller refusing to enter Pressures mode, may not support it. "); //Serial.print(ps2x.Analog(1), HEX); Serial.println(" PS-C2 Controller Found OK! "); } void loop(){ //DualShock Controller ps2x.read_gamepad(false, vibrate); //ゲームパッド・ボタンの読み込み if(ps2x.Button(PSB_START)) //スタートボタン Serial.println("Start"); if(ps2x.Button(PSB_SELECT)) //セレクトボタン Serial.println("Select"); if(ps2x.Button(PSB_PAD_UP)) //上ボタン Serial.println("U"); if(ps2x.Button(PSB_PAD_RIGHT)) //右ボタン Serial.println("R"); if(ps2x.Button(PSB_PAD_LEFT)) //左ボタン Serial.println("L"); if(ps2x.Button(PSB_PAD_DOWN)) //下ボタン Serial.println("D"); if(ps2x.Button(PSB_GREEN)) //三角ボタン Serial.println("G"); if(ps2x.Button(PSB_RED)) //丸ボタン Serial.println("O"); if(ps2x.Button(PSB_PINK)) //四角ボタン Serial.println("P"); if(ps2x.Button(PSB_BLUE)) //エックスボタン Serial.println("X"); if(ps2x.Button(PSB_L3)) Serial.println("L3"); if(ps2x.Button(PSB_R3)) Serial.println("R3"); if(ps2x.Button(PSB_L2)) Serial.println("L2"); if(ps2x.Button(PSB_R2)) Serial.println("R2"); if(ps2x.Button(PSB_R1)) Serial.println("R1"); delay(50); }
問題点
シリアルモニターを見たところ、何もボタンを押していない状態でSelectが表示されました。さらに、L1を押してもR1と認識されたり、三角ボタンを押すと"G O"と認識されています。
試したこと
回路を作り直しましたが、原因がわかりませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/30 23:38