專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> Arduino >> 瀏覽文章

Arduino和PS2游戲搖桿簡單測試

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月03日   【字體:


前段時間俺從淘寶那里掏到了一個PS2搖桿模塊(就是游戲手柄里的搖桿),挺有意思的,以后可以控制一些小東東,嘿嘿。

PS2搖桿 游戲搖桿模塊 2.54mm標(biāo)準(zhǔn)插針接口引出。

 

 


十字搖桿為一個雙向的10K電阻器,隨著搖桿方向不同,抽頭的阻值隨著變化。本模塊只是使用5V供電,原始狀態(tài)下X,Y讀出電壓為2.5V左右,當(dāng)隨箭頭方向按下,讀出電壓值隨著增加,最大到5V;箭頭相反方向按下,讀出電壓值減少,最小為0V。



測試前我在arduino板上面的pin12口接了一個led燈,當(dāng)按下?lián)u桿的時候,led燈就亮起來達(dá)到按下的效果。

int JoyStick_X = 0; //定義PS2搖桿的X軸,ANALOG IN的Pin0

int JoyStick_Y = 1 //定義PS2搖桿的Y軸,ANALOG IN的Pin1

int JoyStick_Z = 3; //定義PS2搖桿的Z軸,是按下時觸發(fā)LED燈亮起的條件,接在DIGITAL區(qū)域的Pin3

int ledPin = 12; //定義LED等的接口,接在DIGITAL區(qū)域的Pin12

int val; //定義數(shù)字變量val

void setup()
{
  pinMode(JoyStick_Z, INPUT); //定義PS2的Z軸為輸入,按下時觸發(fā)LED燈亮起的條件


  pinMode(ledPin,OUTPUT); //定義ledPin接口為輸出


  Serial.begin(115200);
}
void loop()
{
      int x,y,z;
      x=analogRead(JoyStick_X);
      y=analogRead(JoyStick_Y);
      z=digitalRead(JoyStick_Z);
      Serial.print(x ,DEC);
      Serial.print(",");
      Serial.print(y ,DEC);
      Serial.print(",");
      Serial.println(z ,DEC);
      delay(100);
      val=digitalRead(JoyStick_Z);
      if(val==LOW)
      {
        digitalWrite(ledPin,HIGH);
      }
      else
      {
        digitalWrite(ledPin,LOW);
      }
}

 

//按下?lián)u桿的時候LED燈就亮起,void loop一下的代碼都是測試x、y、z軸的值,當(dāng)然,按下Z軸的時候值等于0

關(guān)閉窗口

相關(guān)文章