質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.80%

ArduinoでPS2コントローラを使いたい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 2,928

score 13

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"と認識されています。


イメージ説明

イメージ説明

 試したこと

回路を作り直しましたが、原因がわかりませんでした。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

http://kanitabetai.hateblo.jp/entry/2016/08/16/231937
こちらを参考にするといいです。
たぶん直刺ししただけで、プルアップ抵抗を付けてないのではないでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/01 08:38

    ありがとうございます!
    解決しました!!

    キャンセル

0

参考サイトでは受信機(VS-C1)を介して接続しているようですが、有線でつなぐとはどう接続してるんでしょうか
ハードウエアが不明では回答しようもありません

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/30 00:38

    有線のPS2コントローラの線を切断し、Arduino Megaに直刺ししました。

    キャンセル

  • 2018/09/30 07:06

    ならその回路図を提示しましょう。
    繰り返しますが、ハードウエアが不明では回答できません

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る