Arduino/Android - BLUETOOTH 多伺服电机控制
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
关于这个项目

你好世界!我昨天做了一个 1 伺服控制应用程序,我说我会做一个多控制,所以这里是多控制应用程序!我还制作了一个更好的 Arduino 代码。按照原理图、代码、零件清单和应用程序的下一步操作。
打开应用程序: 谷歌游戏
如果需要源代码,请联系我!
第 1 步:零件清单
按照原理图连接所有东西,上传代码,下载应用程序,配对设备后连接蓝牙,它应该可以工作。确保将 RXD 连接到 TX,将 TXD 连接到 RX。
上传时也请确保不要连接蓝牙模块。
零件清单:
- Arduino Uno,(如果您想使用超过 6 个伺服器,请使用 Mega!)我使用了 RobotDyn Uno。
- HC-06 蓝牙模块,或任何其他模块。
- 6 个伺服电机。 (当然可以用一对来测试 )
- 跳线设置 MM/FF/MF
- Android 手机。
祝你好运!
按照下一步了解如何更改蓝牙模块的名称、引脚和波特率。 (可选 )
第 2 步:如何更改 HC-06 的名称
需要什么?
- 1 个 USB 转 TTL 微控制器编程器,用于连接到您的 HC-06
如何连接编程器?
- VCC 到 VCC
- 地对地
- 接收到发送
- TXD 到 RX
让我们开始吧:
- 将 USB TTL 编程器连接到 HC-06。
- 插入 USB 并打开 Arduino IDE。
- 打开串行监视器。
- 键入不带引号的“AT”。您应该会在串行监视器中看到“OK”的响应。
- 输入“AT+NAMExyz”。将模块名称设置为“xyz”(将 xyz 替换为您想要的名称。)响应应为 OKsetname。
- 输入“AT+PIN1234”。将 pin 设置为 1234(用您想要的 pin 替换 1234)响应应该是 OKsetPIN。有关更改波特率等的更多信息,我提供了一个 PDF 文件。祝你好运!
代码
- BLUETOOTH_Servo_Control_Multi_Servo.ino
BLUETOOTH_Servo_Control_Multi_Servo.inoArduino
控制多个舵机的代码。/*作者:Danny van den Brande。使用此代码,您可以使用安卓应用程序控制多个舵机。您可以添加任意数量的电机,直到引脚用完为止。您可以在代码中添加更多伺服器。如果您想要应用程序的源,请与我联系。 */#include伺服 myservo1, myservo2, myservo3, myservo4, myservo5, myservo6, myservo7, myservo8, myservo9, myservo10;byte serialA;void setup(){ myservo1.attach(9); myservo2.attach(10); myservo3.attach(11); myservo4.attach(3); myservo5.attach(5); myservo6.attach(6);// myservo7.attach();如果您使用超过 6 个舵机,请填写引脚编号我将它们留空// myservo8.attach();// myservo9.attach();// myservo10.attach(); Serial.begin(9600);//如果需要,将您的波特率更改为您的蓝牙模块波特率。}void loop(){ if (Serial.available()> 2) {serialA =Serial.read();Serial.println(serialA );} { 无符号整数伺服位置 =Serial.read();无符号整数伺服位置1 =Serial.read(); unsigned int realservo =(servopos1 *256) + 舵机; Serial.println(realservo); if (realservo>=1000 &&realservo <1180){ intservo1 =realservo;伺服 1 =地图(伺服 1,1000,1180,0,180); myservo1.write(servo1); Serial.println("伺服1 ON");延迟(10); } if (realservo>=2000 &&realservo <2180){ intservo2 =realservo;伺服 2 =地图(伺服 2,2000,2180,0,180); myservo2.write(servo2); Serial.println("伺服2开");延迟(10); } if (realservo>=3000 &&realservo <3180){ intservo3 =realservo;伺服3 =地图(伺服3, 3000, 3180,0,180); myservo3.write(servo3); Serial.println("伺服3开");延迟(10); } if (realservo>=4000 &&realservo <4180){ intservo4 =realservo;伺服4 =地图(伺服4, 4000, 4180,0,180); myservo4.write(servo4); Serial.println("伺服 4 开");延迟(10); } if (realservo>=5000 &&realservo <5180){ intservo5 =realservo;伺服5 =地图(伺服5, 5000, 5180,0,180); myservo5.write(servo5); Serial.println("伺服 5 开");延迟(10); } if (realservo>=6000 &&realservo <6180){ intservo6 =realservo;伺服6 =地图(伺服6, 6000, 6180,0,180); myservo6.write(servo6); Serial.println("伺服 6 开");延迟(10); }// if (realservo>=7000 &&realservo <7180){ //如果使用超过6个舵机,则取消注释。// intservo7 =realservo;//servo7 =map(servo7, 7000, 7180,0,180);// myservo7 .write(servo7);// Serial.println("servo 7 On");// delay(10);// }//// if (realservo>=8000 &&realservo <8180){// int serve8 =realservo;//servo8 =map(servo8, 8000, 8180,0,180);// myservo8.write(servo8);// Serial.println("servo 8 On");// delay(10);// }/ /// if (realservo>=9000 &&realservo <9180){// intServo8 =realservo;//servo8 =map(servo9, 9000, 9180,0,180);// myservo8.write(servo8);// Serial. println("servo 9 On");// delay(10);// }//// if (realservo>=10000 &&realservo <10180){// intservo10 =realservo;//servo10 =map(servo10, 10000, 10180,0,180);// myservo10.write(servo10);// Serial.println("servo 10 On");// delay(10);// } }}
示意图

制造工艺