专注电子技术学习与研究
当前位置:单片机教程网 >> Arduino >> 浏览文章

Arduino和PS2游戏摇杆简单测试

作者:huqin   来源:本站原创   点击数:  更新时间:2014年04月03日   【字体:


前段时间俺从淘宝那里掏到了一个PS2摇杆模块(就是游戏手柄里的摇杆),挺有意思的,以后可以控制一些小东东,嘿嘿。

PS2摇杆 游戏摇杆模块 2.54mm标准插针接口引出。

 

 


十字摇杆为一个双向的10K电阻器,随着摇杆方向不同,抽头的阻值随着变化。本模块只是使用5V供电,原始状态下X,Y读出电压为2.5V左右,当随箭头方向按下,读出电压值随着增加,最大到5V;箭头相反方向按下,读出电压值减少,最小为0V。



测试前我在arduino板上面的pin12口接了一个led灯,当按下摇杆的时候,led灯就亮起来达到按下的效果。

int JoyStick_X = 0; //定义PS2摇杆的X轴,ANALOG IN的Pin0

int JoyStick_Y = 1 //定义PS2摇杆的Y轴,ANALOG IN的Pin1

int JoyStick_Z = 3; //定义PS2摇杆的Z轴,是按下时触发LED灯亮起的条件,接在DIGITAL区域的Pin3

int ledPin = 12; //定义LED等的接口,接在DIGITAL区域的Pin12

int val; //定义数字变量val

void setup()
{
  pinMode(JoyStick_Z, INPUT); //定义PS2的Z轴为输入,按下时触发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);
      }
}

 

//按下摇杆的时候LED灯就亮起,void loop一下的代码都是测试x、y、z轴的值,当然,按下Z轴的时候值等于0

关闭窗口

相关文章