成为订阅者(免费)

加入29,000名其他订阅者以获得用户销售折扣和 其他免费资源。
:
:
大学教师'担心 - 您的邮件地址完全是 安全的。我保证使用它 只要 to send you MicroZine.

arduino. Joystick教程

此nba竞猜 Joystick教程将向您展示如何连接2轴 操纵杆使用任何两个nba竞猜模拟输入。操纵杆有两个电位器,一个用于垂直运动和 一个用于水平运动。


所有事情发生的就是你把5V放在电位计的一端和0V 电位器的其他端部,刮水器采用这些之间的值 电压。然后,您所做的就是使用nba竞猜使用nba竞猜读取模拟值 arduino. ADC..

您可以购买如下所示的nba竞猜操纵杆模块 - 这些都有 电源引脚和两个模拟输出,但也有推动 按下操纵杆时激活的按钮引脚。

对于这个arduino操纵杆,电位计值为4.4kohm,其他是10k欧姆。

 arduino. 操纵杆用一个控制旋钮盖住

这个 图为nba竞猜 Joystick的物理结构 - 两个 电位计到顶部和右边的控制杆在中间。

无帽(内部)的nba竞猜操纵杆
连接是电源,地面,VRX和VRY(可变电阻),SW是按钮开关。

注意:当然VRX是否水平并且vry是垂直依赖性的 模块的方向。那赢了'真的很重要,所以改变它 software as needed.

按钮输入引脚连接到地面 推动时,你需要一个连接的上拉 - 很容易 使用nba竞猜中的内部上拉完成(参见下面的草图 how to do that).

与nba竞猜 Uno的连接


arduino pin.
操纵杆针
5V
+5V
GND.
GND.
A0
VRX.
A1
vry.
5
sw

软件

arduino. 操纵杆素描

以下草图不需要图书馆和 读取并显示模拟输入A0和A1的值。它也是 显示按钮推送输出。

const  在 t  vry. Pin = A1;
const  在 t  sw Pin  = 5;

 在 t  VRX.  = 0;        // value read from the horizontal pot
 在 t  vry.  = 0;        // value read from the vertical pot
 在 t  sw  = 0;         // value read from the switch

void setup() {
  Serial.begin(9600);
  pinMode( sw Pin,INPUT_PULLUP);
}

void loop() {

   VRX.  = analogRead( VRX. Pin);
   vry.  = analogRead( vry. Pin);
   sw  = digitalRead( sw Pin);

  // print the results to the Serial Monitor:
  Serial.print("VRrx = ");
  Serial.print( VRX. );
  Serial.print("\tVRry = ");
  Serial.print( vry. );
  Serial.print("\tSW = ");
  Serial.println( sw );

  delay(200);
}

在中间用操纵杆素描输出


请注意,该值如何不是ADC Vange的中心(511) 这两者都是不同的价值,即使它们代表 middle point.

Vrrx = 524 vrry = 506 sw = 1
Vrrx = 523 vrry = 506 sw = 1
VRRX = 524 Vrry = 506 SW = 0
VRRX = 523 Vrry = 506 SW = 0
VRRX = 523 Vrry = 506 SW = 0
VRRX = 522 Vrry = 505 SW = 1
Vrrx = 523 vrry = 505 sw = 1
Vrrx = 523 vrry = 505 sw = 1
Vrrx = 524 vrry = 506 sw = 1

用操纵杆素描输出移动到限制

水平的 垂直的
Vrrx = 523 vrry = 506 sw = 1
Vrrx = 512 vrry = 506 sw = 1
VRRX = 420 vrry = 506 sw = 1
Vrrx = 218 vrry = 506 sw = 1
Vrrx = 60 vrry = 506 sw = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
VRRX = 0 VRRY = 506 SW = 1
Vrrx = 253 vrry = 506 sw = 1
Vrrx = 523 vrry = 506 sw = 1
Vrrx = 524 vrry = 506 sw = 1
Vrrx = 523 vrry = 506 sw = 1
Vrrx = 524 vrry = 506 sw = 1
Vrrx = 524 vrry = 506 sw = 1
VRRX = 675 Vrry = 506 SW = 1
VRRX = 911 VRRY = 506 SW = 1
VRRX = 1023 Vrry = 506 SW = 1
VRRX = 1023 Vrry = 507 SW = 1
VRRX = 1022 Vrry = 506 SW = 1
VRRX = 1023 Vrry = 507 SW = 1
VRRX = 1023 Vrry = 506 SW = 1
VRRX = 1023 Vrry = 506 SW = 1
VRRX = 1022 Vrry = 506 SW = 1
Vrrx = 523 vrry = 506 sw = 1
VRRX = 524 Vrry = 505 SW = 1
Vrrx = 523 vrry = 506 sw = 1
VRRX = 524 Vrry = 505 SW = 1
Vrrx = 523 vrry = 506 sw = 1
VRRX = 524 Vrry = 373 SW = 1
VRRX = 523 Vrry = 176 SW = 1
VRRX = 523 Vrry = 0 SW = 1
VRRX = 523 Vrry = 0 SW = 1
VRRX = 524 Vrry = 0 SW = 1
VRRX = 524 Vrry = 0 SW = 1
VRRX = 524 Vrry = 0 SW = 1
VRRX = 523 Vrry = 0 SW = 1
VRRX = 524 Vrry = 0 SW = 1
VRRX = 524 Vrry = 181 SW = 1
VRRX = 524 Vrry = 320 SW = 1
Vrrx = 523 vrry = 506 sw = 1
Vrrx = 524 vrry = 506 sw = 1
Vrrx = 523 vrry = 505 sw = 1
Vrrx = 523 vrry = 505 sw = 1
Vrrx = 523 vrry = 506 sw = 1
VRRX = 523 Vrry = 522 SW = 1
VRRX = 523 Vrry = 887 SW = 1
VRRX = 523 Vrry = 1023 SW = 1
VRRX = 523 Vrry = 1022 SW = 1
VRRX = 524 Vrry = 1022 SW = 1
VRRX = 524 Vrry = 1023 SW = 1
VRRX = 524 Vrry = 1023 SW = 1
VRRX = 524 Vrry = 1023 SW = 1
Vrrx = 524 vrry = 506 sw = 1


值表明操纵杆返回中心值是 同样的是,它们是一致的,但对于每个电位计来说,值对于每个电位计可能是非常不同的。

arduino. 操纵杆图书馆

此库允许您校准nba竞猜操纵杆,并使您可以轻松地检测,向下,左右移动。

参数低高和倒数决定了代码对来自nba竞猜操纵杆的值的敏感程度。

//github.com/YuriiSalimov/AxisJoystick/blob/master/examples/SerialJoystick/SerialJoystick.ino

从: 这里

  1.     Unzip the download.
  2.     将文件夹名称AXISJOYSTICK版本更改为AxisJoyStick。
  3.     将修改后的文件夹粘贴在库上 文件夹(在SketchBooks或nba竞猜内的库文件夹上 software).
  4. 重新启动IDE。

图书馆中的命令是:

singleread()
multipleread()
ispress()
Isup()
isdown()
是正确的()
离开了()
readvrx()
Readvry()
readsw()
校准(低,高,下的);

而不是用销钉摆弄你可以使用x和y使用:

xyreplacer(原始)原始是orignial对象的地方。注意包括xyreple.h - 见示例 这里 .

图书馆剪影校准操纵杆



/*
  Joystick axes calibration
  Reads a press of the calibrated joystick and displays information
  in the default Serial.
  //github.com/YuriiSalimov/AxisJoystick
  Created by Yurii Salimov, January, 2019.
  Released into the public domain.
*/
 #define VRX_PIN A1
#define VRY_PIN A2
#define LOW_RANGE 0
#define HIGH_RANGE 1023
#define RANGE_DIVITION 100

Joystick* joystic;

// the setup function runs once when you press reset or power the board
void setup() {
  Serial.begin(9600);
  joystic = new AxisJoystick( sw _PIN, VRX_PIN, VRY_PIN);
  joystic->calibrate(LOW_RANGE, HIGH_RANGE, RANGE_DIVITION);
}

// the loop function runs over and over again forever
void loop() {
  Serial.print("| SingleRead: " + String(joystic->singleRead()));
  Serial.print(" | MultipleRead: " + String(joystic->multipleRead()));
  Serial.print(" | Press: " + String(joystic->isPress()));
  Serial.print(" | Up: " + String(joystic->isUp()));
  Serial.print(" | Down: " + String(joystic->isDown()));
  Serial.print(" | Right: " + String(joystic->isRight()));
  Serial.print(" | Left: " + String(joystic->isLeft()));
  Serial.print(" | VRx: " + String(joystic->readVRx()));
  Serial.print(" | VRy: " + String(joystic->readVRy()));
  Serial.println(" | SW: " + String(joystic->readSW()) + " |");
}


将ADC值映射到不同的范围

注意如果要将ADC的输出映射到不同的值范围,请使用地图函数如下:

OutputValue = Map(传感器值,0,1023,0,255);

这将线性地映射值最小和最大输出:

0映射到0

1023变成255。

零到1023变为零至255。


新的! Comments

让你说到你刚刚阅读的东西!留下下面的框中的评论。




隐私政策 | 接触 | 关于我

网站地图 | 使用条款


 ezoic. 报告此广告

访问我们的Facebook页面:

   点击这里



最近的文章

  1. 如何使用ADS1115

    使用ADS1115精度16位ADC进行教程进行低功耗。

    阅读更多

  2. arduino. 模拟输出...易模拟输出生成

    arduino. 模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。

    阅读更多

  3. 数号和等效的快速宏。加快代码!

    了解DigitalWrite()的工作原理......现在使用17倍宏宏!

    阅读更多

  4. TCS230颜色传感芯片:如何运作以及如何使用它。

    如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。

    阅读更多

  5. 如何使用ADXL345进行运动感测等。

    使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。

    阅读更多

  6. HMC5883L 3轴数字MAGENTOMTER如何运作

    HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。

    阅读更多



读者 Comments

"I wanted to thank
你这么好
对于所有信息
你已经提供了
你的网站's

高超 极好的."

- 逃亡Potthath.

"This site really is
最好的和我最喜欢的。
我发现这里有很多很有用
项目和提示。"

- 米兰

Bursach.<at>gmail.com<

"Awesome site,
非常,非常容易和好
导航!"


-
镭 _tr.<at>
wolf359.cjb.net.


学习微控制器

"Interested in
微控制器?"

注册
免费7天指南:

自由 GUIDE : CLICK HERE


"I am a newbie to PIC
我想说
 how great your
网站一直在为我。"


- 戴夫

de_scott.<at>bellsouth.net

"Your site is a great
和完美的工作。
恭喜。"


- SURESH.

IntegratedInfosys.<at>
Yahoo.com.

"I couldn't find the correct
要定义的词语
你的网页。

非常有用,揭开,
诚实明确。

非常感谢
你的时间和作品。
问候。"


- Anon.

回到顶部