【花雕学编程】Arduino动手做(243)---双路 JoyStick 扩展板
2024-12-254814
AI 快速预览详细
本文介绍了使用JoyStick双路机械臂摇杆扩展板进行Arduino编程的实验。通过详细的代码和仿真编程步骤,帮助用户轻松掌握双路摇杆的使用方法。无论你是初学者还是有一定基础的开发者,都能从中受益。
|
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3 ![]() ![]() |






1、串行通信初始化:在 setup 函数中,使用 Serial.begin(9600) 初始化串行通信,设置波特率为9600,以便通过串行监视器查看输出信息。
2、初始化完成信息:通过 Serial.println("JoyStick准备就绪") 输出一条信息,指示系统已经准备好读取数据。
3、读取和输出X、Y轴值:在 loop 函数中,使用 analogRead(A0) 和 analogRead(A1) 读取摇杆的X、Y轴模拟值,并通过串行通信输出。
4、读取按键状态:通过 digitalRead(2) 读取数字引脚2的状态,判断按键是否被按下。
5、条件输出:根据按键状态,输出相应的信息。如果按键被按下,输出 "hello";否则输出 "OK"。
6、延迟:使用 delay(1000) 在每次循环结束时延迟1秒,以便有足够时间查看输出信息。
这段代码每隔1秒读取一次摇杆的X、Y轴值和按键状态,并通过串行监视器输出,非常适合用于基础实验和学习。
[code]/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之四:检测X轴与Y轴的数值
*/
void setup() {
Serial.begin(9600); // 初始化串行通信,波特率为9600
Serial.println("JoyStick准备就绪"); // 输出初始化完成信息
}
void loop() {
Serial.println(analogRead(A0)); // 读取并输出X轴的模拟值
Serial.println(analogRead(A1)); // 读取并输出Y轴的模拟值
if (!digitalRead(2)) { // 读取数字引脚2的状态,如果按键被按下
Serial.println("hello"); // 如果按键按下,输出"hello"
}
else {
Serial.println("OK"); // 如果按键未按下,输出"OK"
}
delay(1000); // 延迟1秒
}[/code]
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之四:检测X轴与Y轴的数值
Mind+图形编程
实验串口绘图器返回情况
1、引脚定义:在代码的开头,使用变量定义了X轴、Y轴和按键的引脚,便于后续代码的使用和维护。
2、引脚模式设置:在 setup 函数中,使用 pinMode(JoyStick_Z, INPUT) 将按键引脚设置为输入模式,以便读取按键状态。
3、串行通信初始化:使用 Serial.begin(9600) 初始化串行通信,设置波特率为9600,以便通过串行监视器查看摇杆的X、Y轴值和按键状态。
4、读取和输出值:在 loop 函数中,通过 analogRead 和 digitalRead 函数分别读取X轴、Y轴的模拟值和按键的数字值,并通过串行通信输出。
5、数据格式:通过 Serial.print 和 Serial.println 函数输出X轴、Y轴的值和按键状态,使用逗号分隔符使输出格式更加清晰和规范。
这段代码每隔500毫秒读取一次摇杆的X、Y轴值和按键状态,并输出到串行监视器,适用于基础实验和学习。
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之三:绘制X轴与Y轴的动态曲线
实验开源代码
[code]/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之三:绘制X轴与Y轴的动态曲线
*/
int JoyStick_X = A0; // 定义X轴模拟输入引脚为A0
int JoyStick_Y = A1; // 定义Y轴模拟输入引脚为A1
int JoyStick_Z = 2; // 定义按键输入引脚为2
void setup()
{
pinMode(JoyStick_Z, INPUT); // 将按键引脚设置为输入模式
Serial.begin(9600); // 初始化串行通信,波特率为9600
}
void loop()
{
int x, y, z;
x = analogRead(JoyStick_X); // 读取X轴的模拟值
y = analogRead(JoyStick_Y); // 读取Y轴的模拟值
z = digitalRead(JoyStick_Z); // 读取按键的数字值(按键状态)
Serial.print(x, DEC); // 以十进制格式输出X轴的值
Serial.print(","); // 输出逗号分隔符
Serial.print(y, DEC); // 以十进制格式输出Y轴的值
Serial.print(","); // 输出逗号分隔符
Serial.println(z, DEC); // 以十进制格式输出按键状态值,并换行
delay(500); // 延迟500毫秒
}[/code]
1、引脚模式设置:在 setup 函数中,使用 pinMode(6, INPUT_PULLUP) 将6号引脚设置为上拉输入模式。这是为了读取摇杆的按键状态。
2、串行通信初始化:使用 Serial.begin(9600) 初始化串行通信,以便通过串行监视器查看摇杆的X、Y轴值和按键状态。
3、读取模拟值:在 loop 函数中,使用 analogRead(A0) 和 analogRead(A1) 读取摇杆的X、Y轴的模拟值。
4、读取数字值:使用 digitalRead(6) 读取摇杆按键的数字值(按键状态),用以检测是否按下。
5、串行输出:通过 Serial.print 和 Serial.println 函数将X、Y轴的模拟值和按键状态输出到串行监视器,以便调试和观察。
这段代码每隔1秒读取一次摇杆的X、Y轴值和按键状态,并输出到串行监视器,非常适合用于基础实验和学习。
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之二:动态测试1号摇杆的X、Y与Z的数值(引脚A0、A1与D2)
实验开源代码
[code]/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之二:动态测试1号摇杆的X、Y与Z的数值(引脚A0、A1与D2)
*/
int value = 0; // 初始化一个整数变量,用于存储读取的值
void setup()
{
pinMode(6, INPUT_PULLUP); // 将引脚6设置为上拉输入模式,用于读取按键状态
Serial.begin(9600); // 初始化串行通信,波特率为9600
}
void loop()
{
value = analogRead(A0); // 读取A0引脚的模拟值(摇杆X轴)
Serial.print("X:"); // 输出X轴描述
Serial.print(value, DEC); // 以十进制格式输出X轴的值
value = analogRead(A1); // 读取A1引脚的模拟值(摇杆Y轴)
Serial.print(" | Y:"); // 输出Y轴描述
Serial.print(value, DEC); // 以十进制格式输出Y轴的值
value = digitalRead(6); // 读取6号引脚的数字值(按键状态)
Serial.print(" | Z: "); // 输出按键状态描述
Serial.println(value, DEC); // 以十进制格式输出按键状态值
delay(1000); // 延迟1秒
}[/code]
1、串口通信初始化:在setup函数中,使用Serial.begin(9600)初始化串口通信,以便通过串口监视器查看摇杆和按钮的状态。
2、引脚模式设置:使用pinMode(i, INPUT_PULLUP)函数将引脚设置为上拉输入模式,并通过digitalWrite(i, 1)将引脚初始化为高电平。
3、摇杆位置判断:在loop函数中,通过analogRead(i)函数读取从端口0到20的模拟输入值(摇杆X轴的值),并通过串口监视器输出。
4、按钮状态判断:通过digitalRead(i)函数读取从端口0到20的数字输入值(按钮状态),如果按钮按下(值为0),则通过串口监视器输出相应信息。
5、串口输出格式:在每次读取完摇杆和按钮状态后,通过Serial.print和Serial.println函数将结果输出到串口监视器,以便查看。
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之一:测试摇杆与按钮
实验开源代码
[code]/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之一:测试所有接口上的 摇杆和按钮
*/
void setup(void)
{
Serial.begin(9600); // 设置串口通信9600波特率
for (int i = 0; i <= 13; i++) // 定义按钮位置
{
pinMode(i, INPUT_PULLUP); // 设置引脚为上拉输入模式
digitalWrite(i, 1); // 设置引脚为高电平
}
}
void loop(void)
{
//*******************摇杆位置判断,从端口从0-13,;A1-A5(14-20)
for (int i = 0; i <= 20; i++) // 从端口0到20
{
Serial.print(i);
Serial.print("=");
Serial.print(analogRead(i)); // 读取摇杆X轴的值,串口显示
Serial.print(";");
}
//****************************Button位置判断,从端口0-13,;A1-A5(14-20)
for (int i = 0; i <= 20; i++) // 从端口0到20
{
if (digitalRead(i) == 0) // 读取button状态,判断是否按下
{
Serial.print("button=");
Serial.print(i);
Serial.print(";");
}
}
Serial.println(""); // 结束一行
delay(100); // 100ms刷新一次
}[/code]
该模块与 PS2 控制器上的“模拟”摇杆非常相似。方向运动只是两个电位计,每个轴一个。该操纵杆还有一个选择按钮,当按下操纵杆时,该按钮将被激活。借助此模块,您可以测量 X 轴和 Y 轴上的位置坐标。
特性
用于 Arduino 的板载双操纵杆
2 个操纵杆,
2 个按钮(在操纵杆中),
1 个返回 LED,
4 个伺服输出,
1 个蓝牙贴合(首选 HC-05),
型号名称:HU-M16
- 2.54mm 引脚接口电缆
- 使用寿命长,性能稳定。
- 标准接口和电子构建块。
- 广泛用于 Arduino DIY 项目。