“XBOX摇杆模块”的版本间的差异

来自YFRobotwiki
跳转至: 导航搜索
第6行: 第6行:
 
=== 产品简介 ===
 
=== 产品简介 ===
 
<br>
 
<br>
XBOX摇杆模块
+
XBOX摇杆模块 采用XBOX手柄上的优质金属按钮摇杆电位器设计制作,其具有X、Y轴两路模拟输出,K 一路数字输出,可以实现控制舵机转动。
  
  
第14行: 第14行:
 
*供电电压:DC5V
 
*供电电压:DC5V
 
*安装孔径:3MM
 
*安装孔径:3MM
*模块尺寸 :28*21*11MM (长*宽*高)
+
*模块尺寸 :36*31*33MM (长*宽*高)
*模块重量 :2.3g
+
*模块重量 :13.8g
 
+
 
+
 
+
=== 主要应用 ===
+
<br><br>
+
  
  
第42行: 第37行:
 
'''电路连接示意图'''
 
'''电路连接示意图'''
 
<br>
 
<br>
:'''摇杆模块'''的 G、V、X、Y、K分别连接 '''Arduino UNO'''的GND、VCC(+5V) 、D10、D9、D8 引脚。
+
:'''摇杆模块'''的 G、V、X、Y、K分别连接 '''Arduino UNO'''的GND、VCC(+5V) 、A0、A1、A2 引脚。
 
   
 
   
 
<!--[[Image: 摇杆模块.jpg|400px|center|摇杆模块接线图]]-->
 
<!--[[Image: 摇杆模块.jpg|400px|center|摇杆模块接线图]]-->
第51行: 第46行:
 
<br>
 
<br>
 
<pre >
 
<pre >
/*
+
//rocker test
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
+
* An IR detector/demodulator must be connected to the input RECV_PIN.
+
* Version 0.1 July, 2009
+
* Copyright 2009 Ken Shirriff
+
* http://arcfn.com
+
*/
+
  
#include <IRremote.h>
+
int xPin = 0;
 
+
int yPin = 0;
int RECV_PIN = 11;
+
int kPin = 0;
 
+
int xPin_Old = 0;
IRrecv irrecv(RECV_PIN);
+
int yPin_Old = 0;
 
+
int kPin_Old = 0;
decode_results results;
+
  
 
void setup()
 
void setup()
 
{
 
{
 
   Serial.begin(9600);
 
   Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
 
 
}
 
}
  
void loop() {
+
void loop()
   if (irrecv.decode(&results)) {
+
{
     Serial.print("irCode: ");
+
  xPin = analogRead(A0);
     Serial.println(results.value, HEX);
+
  yPin = analogRead(A1);
     delay(200);
+
  kPin = digitalRead(A2);
     irrecv.resume(); // Receive the next value
+
 
 +
   if (abs(xPin - xPin_Old) > 2 || abs(yPin - yPin_Old) > 2 || kPin != kPin_Old) {
 +
     Serial.print("X=");
 +
     Serial.print(xPin, DEC);
 +
    Serial.print("\t");
 +
    Serial.print("Y=");
 +
    Serial.print(yPin, DEC);
 +
     Serial.print("\t");
 +
     Serial.print("K=");
 +
    Serial.println(kPin, DEC);
 +
    xPin_Old = xPin;
 +
    yPin_Old = yPin;
 +
    kPin_Old = kPin;
 
   }
 
   }
 
}
 
}
 
</pre>
 
</pre>
 程序下载地址:[http://pan.baidu.com/s/1qJCKY IRrecvDemo]
+
 程序下载地址:[http://pan.baidu.com/s/1qW23jEc Rocker]
 
+
程序运行结果:接收按键值,并串口打印。偶尔出现 "FFFFFFFF" 码值,属于正常现象,可适当延长延时时间。
+
  
  最终整理按键值表格
+
  程序运行结果:当摇杆动作有变化时,输出相应数据,如下图
  
 +
[[Image: 摇杆串口输出数据.png|center]]
  
  
  
 +
<!--
 
===参考资料===
 
===参考资料===
 
<br>
 
<br>
 
* [http: 摇杆模块]
 
* [http: 摇杆模块]
 
* [http: 摇杆模块]
 
* [http: 摇杆模块]
 +
-->
  
  

2015年9月14日 (一) 10:05的版本

生成缩略图出错:文件可能丢失:
摇杆模块


产品简介


XBOX摇杆模块采用XBOX手柄上的优质金属按钮摇杆电位器设计制作,其具有X、Y轴两路模拟输出,K 一路数字输出,可以实现控制舵机转动。


规格参数


  • 供电电压:DC5V
  • 安装孔径:3MM
  • 模块尺寸:36*31*33MM(长*宽*高)
  • 模块重量:13.8g


引脚说明


  • 1. G -- Gnd(地)
  • 2. V -- Vcc(电源+5V)
  • 3. X -- X轴 信号
  • 1. G -- Gnd(地)
  • 2. V -- Vcc(电源+5V)
  • 3. Y -- Y轴 信号
  • 1. G -- Gnd(地)
  • 2. V -- Vcc(电源+5V)
  • 3. K -- K轴 信号


应用示例


电路连接示意图

摇杆模块的 G、V、X、Y、K分别连接 Arduino UNO的GND、VCC(+5V)、A0、A1、A2引脚。



示例代码

//rocker test

int xPin = 0;
int yPin = 0;
int kPin = 0;
int xPin_Old = 0;
int yPin_Old = 0;
int kPin_Old = 0;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  xPin = analogRead(A0);
  yPin = analogRead(A1);
  kPin = digitalRead(A2);

  if (abs(xPin - xPin_Old) > 2 || abs(yPin - yPin_Old) > 2 || kPin != kPin_Old) {
    Serial.print("X=");
    Serial.print(xPin, DEC);
    Serial.print("\t");
    Serial.print("Y=");
    Serial.print(yPin, DEC);
    Serial.print("\t");
    Serial.print("K=");
    Serial.println(kPin, DEC);
    xPin_Old = xPin;
    yPin_Old = yPin;
    kPin_Old = kPin;
  }
}

程序下载地址:Rocker

程序运行结果:当摇杆动作有变化时,输出相应数据,如下图:

摇杆串口输出数据.png






返回首页

更多建议和问题欢迎反馈至 YFRobot论坛

购买方式:YFRobot 电子工作室