37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
2fach Joystickshield HU-M16 Arduino 摇杆是一款用于运动控制的扩展板,它连接到 Arduino 板,并允许通过 Arduino 板上的模拟引脚独立控制两个模拟摇杆。带有两个操纵杆的 Arduino UNO R3 扩展板。该模块与 Arduino IDE 可编程平台兼容。这使得使用来自操纵杆的数据来控制各种项目成为可能,例如机器人、遥控车辆和其他交互式设备。您可以通过以正确的方式对 Arduino 进行编程来根据您的需要自定义模拟棒的操作。
该扩展板带有 2 个 PS2 型 KY-023 操纵杆,可实现精确的运动控制。Arduino Shield Dual Joystick 具有用于伺服控制的数字支持连接器,以及用于通过 RF 与 NRF24L01 模块或蓝牙与 HC-06 模块进行无线连接的接口。
可插接蓝牙模块
扩展板不能直接使用,需要配合Arduino uno开发板。
JoyStick 双路机械臂摇杆扩展板电原理图
Arduino 双操纵杆扩展板是一款多功能且易于使用的工具,可让您独立控制两个轴上的运动。它是您的机器人项目、游戏和其他需要精确可靠运动控制的应用的绝佳选择。该板与 PS2 和 KY-023 摇杆型号兼容,是 Arduino 项目中运动控制的完整解决方案。
该模块与 PS2 控制器上的“模拟”摇杆非常相似。方向运动只是两个电位计,每个轴一个。该操纵杆还有一个选择按钮,当按下操纵杆时,该按钮将被激活。借助此模块,您可以测量 X 轴和 Y 轴上的位置坐标。
特性
用于 Arduino 的板载双操纵杆
2 个操纵杆,
2 个按钮(在操纵杆中),
1 个返回 LED,
4 个伺服输出,
1 个蓝牙贴合(首选 HC-05),
型号名称:HU-M16
- 2.54mm 引脚接口电缆
- 使用寿命长,性能稳定。
- 标准接口和电子构建块。
- 广泛用于 Arduino DIY 项目。
DIY机械臂的应用方案
Shields HU-M16 双路机械臂摇杆扩展板的对应引脚
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百四十三:JoyStick 双路机械臂摇杆扩展板 PS2 JoyStick Two-Way Shield for Uno r3
项目实验之一:测试摇杆与按钮
实验开源代码
/*
【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刷新一次
}
代码解读
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函数将结果输出到串口监视器,以便查看。
实验串口返回情况
实验场景图
评论