eagler8 发表于 2019-6-26 08:54:12

双轴XY按键摇杆模块
由两个滑动变阻器和一个按键组成,当拨动摇杆时,滑动变阻器的阻值就发生变化,对应的X/Y电压值也随之变化,而用力按下摇杆就会触发按键按下,对应的SW信号变为低电平。

eagler8 发表于 2019-6-26 09:12:04

摇杆双联电位器实拍:通常是将两个规格相同的电位器装在同摇杆电位器结构一转轴上,调节转轴时,两个电位器的滑动触点异步转动。这个结构被称为同轴异步双联动的电位器。

eagler8 发表于 2019-6-26 09:27:57

还有一位高精度按钮开关

eagler8 发表于 2019-6-26 09:42:03

X和Y轴,一个按键
2.54mm排针接口,接线方便,通用性强
PCB尺寸(mm):24X32

eagler8 发表于 2019-6-26 09:48:23

工作原理
模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。模块集成电源指示灯,可显示工作状态;坐标标识符清晰简明、准确定位。为了更加方便地配合扩展板等标准接口,在设计上把 X,Y轴的电路都单独引出,以控制输入这个操纵杆模块的 x、y的值以及在特定的值下实现某种功能。

eagler8 发表于 2019-6-26 09:57:58

引脚说明
名称        描述
GND        地
5V        电源5V
SW        按键(数字量)
VRX        X轴 (模拟量)
VRY        Y轴 (模拟量)

eagler8 发表于 2019-6-26 10:03:25

模块性能
1.输入电压范围:直流3.3V 至 5V。
2.输出信号:模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。
3.可以通过Arduino控制器编程,传感器扩展板插接,完成具有创意性遥控互动作品。
4.十字摇杆为一个双向的10K电阻器,随着摇杆方向不同,抽头的阻值随着变化。本模块使用5V供电,原始状态下X,Y读出电压为2.5V左右,当随箭头方向按下,读出电压值随着增加,最大到5V;箭头相反方向按下,读出电压值减少,最小为0V。

eagler8 发表于 2019-6-26 10:24:55

一些应用场合





eagler8 发表于 2019-6-26 10:30:30

eagler8 发表于 2019-6-26 10:51:17

接线方式
GND、VCC(+5V)这两个不用说了。
VRx,VRy (X、Y轴)为模拟输入信号,连接到模拟IO口A0~A7。
VRx,VRy 的值:从 0 ~ 1023 分别代表 左~右,上~下。中间值为512。
SW (Z轴)是数字输入信号,连接到数字端口,并启用上拉电阻。
SW 的值:1代表未按下,0代表按下。

实验这里VRx接A0,VRy接A1,SW接D6

eagler8 发表于 2019-6-26 11:05:31

/*
【Arduino】37种传感器模块系列实验(38)
实验三十八:joystick双轴XY按键摇杆模块(PS2游戏航模控制杆)
*/

int value = 0;

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

void loop()
{
value = analogRead(A0);
Serial.print("X:");
Serial.print(value, DEC);

value = analogRead(A1);
Serial.print(" | Y:");
Serial.print(value, DEC);

value = digitalRead(6);
Serial.print(" | Z: ");
Serial.println(value, DEC);
delay(1000);
}

eagler8 发表于 2019-6-26 11:09:25

初始状态

eagler8 发表于 2019-6-26 11:14:49

eagler8 发表于 2019-6-26 11:41:12

/*
【Arduino】37种传感器模块系列实验(38)
实验三十八:joystick双轴XY按键摇杆模块(PS2游戏航模控制杆)之二
*/

int JoyStick_X = A0;
int JoyStick_Y = A1;
int JoyStick_Z = 6;

void setup()
{
pinMode(JoyStick_Z, INPUT);
Serial.begin(9600);
}
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(500);
}

eagler8 发表于 2019-6-26 12:06:05

页: 31 32 33 34 35 36 37 38 39 40 [41] 42 43 44 45 46 47 48 49 50
查看完整版本: 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)