此nba竞猜 Joystick教程将向您展示如何连接2轴
操纵杆使用任何两个nba竞猜模拟输入。操纵杆有两个电位器,一个用于垂直运动和
一个用于水平运动。
所有事情发生的就是你把5V放在电位计的一端和0V
电位器的其他端部,刮水器采用这些之间的值
电压。然后,您所做的就是使用nba竞猜使用nba竞猜读取模拟值 arduino. ADC..
您可以购买如下所示的nba竞猜操纵杆模块 - 这些都有
电源引脚和两个模拟输出,但也有推动
按下操纵杆时激活的按钮引脚。
对于这个arduino操纵杆,电位计值为4.4kohm,其他是10k欧姆。
这个
图为nba竞猜 Joystick的物理结构 - 两个
电位计到顶部和右边的控制杆在中间。
以下草图不需要图书馆和
读取并显示模拟输入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);
}
水平的 | 垂直的 |
---|---|
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 |
值表明操纵杆返回中心值是
同样的是,它们是一致的,但对于每个电位计来说,值对于每个电位计可能是非常不同的。
此库允许您校准nba竞猜操纵杆,并使您可以轻松地检测,向下,左右移动。
参数低高和倒数决定了代码对来自nba竞猜操纵杆的值的敏感程度。
//github.com/YuriiSalimov/AxisJoystick/blob/master/examples/SerialJoystick/SerialJoystick.ino
从: 这里
图书馆中的命令是:
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的输出映射到不同的值范围,请使用地图函数如下:
OutputValue = Map(传感器值,0,1023,0,255);
这将线性地映射值最小和最大输出:
0映射到0
和
1023变成255。
零到1023变为零至255。
使用ADS1115精度16位ADC进行教程进行低功耗。
arduino. 模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。
了解DigitalWrite()的工作原理......现在使用17倍宏宏!
如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。
使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。
HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。
新的! Comments
让你说到你刚刚阅读的东西!留下下面的框中的评论。