YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 19549|回复: 13
打印 上一主题 下一主题

YFRobot蓝牙小车之Arduino控制程序

[复制链接]

签到天数: 866 天

[LV.10]以坛为家III

跳转到指定楼层
楼主
发表于 2013-7-17 19:19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
YFRobot蓝牙小车之Arduino控制程序

适配V1.2 / V1.2.3版本手机app

之前写的Arduino测试程序,也没有仔细优化,总之发出来给大家参考下吧!!!

  1. /**
  2. *  蓝牙控制小车
  3. *  BY YFRobot
  4. *  //16进制数据(前进、后退、左转、右转、停止)
  5. *  FORWARD = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x01, (byte) 0xFF};
  6. *  BACK = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x05, (byte) 0xFF};
  7. *  STOP = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x03, (byte) 0xFF};
  8. *  LEFT = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x02, (byte) 0xFF};
  9. *  RIGHT = {(byte) 0xFF, 0x5A, 0x5B, 0x00, 0x04, (byte) 0xFF};
  10. **/
  11. char BT_val;
  12. int BT_array[5];
  13. int E1 = 3;  
  14. int M1 = 4;
  15. int E2 = 6;                        
  16. int M2 = 7;   

  17. void setup(){
  18.   Serial.begin(9600);  //设置波特率为9600
  19.   pinMode(M1, OUTPUT);  
  20.   pinMode(M2, OUTPUT);
  21. }

  22. /* 小车前进 */
  23. void Forward(){
  24.   digitalWrite(M1,LOW);         
  25.   digitalWrite(E1, 1);   //PWM调速
  26.   digitalWrite(M2,LOW);
  27.   digitalWrite(E2, 1);   //PWM调速
  28. }

  29. /* 小车后退 */
  30. void Back(){
  31.   digitalWrite(M1,HIGH);         
  32.   digitalWrite(E1, 1);   //PWM调速
  33.   digitalWrite(M2,HIGH);
  34.   digitalWrite(E2, 1);   //PWM调速

  35. }
  36. /* 小车左转 */
  37. void Left(){
  38.   digitalWrite(M1,LOW);         
  39.   digitalWrite(E1, 1);   //PWM调速
  40.   digitalWrite(M2,HIGH);
  41.   digitalWrite(E2, 1);   //PWM调速
  42. }
  43. /* 小车右转 */
  44. void Right(){
  45.   digitalWrite(M1,HIGH);         
  46.   digitalWrite(E1, 1);   //PWM调速
  47.   digitalWrite(M2,LOW);
  48.   digitalWrite(E2, 1);   //PWM调速
  49. }
  50. /* 小车停止 */
  51. void Stop(){      
  52.   digitalWrite(E1, 0);
  53.   digitalWrite(E2, 0);   
  54. }

  55. void cmd(){
  56.   int n ;
  57.   for(n=0;n<=5;n++){
  58.     BT_val = Serial.read();
  59.     BT_array[n]=BT_val;
  60.   }
  61. }
  62. void loop(){
  63.   cmd();   
  64.    Serial.println(BT_array[3],HEX);
  65.    Serial.println(BT_array[4],HEX);
  66. if(BT_array[0]==0XFFFFFFFF && BT_array[1]==0x5A
  67.     && BT_array[2]==0x5B && BT_array[5]==0XFFFFFFFF){
  68.     switch (BT_array[3]=0x00)      //根据键值不同,执行不同的内容
  69.     {
  70.       case 0x00:
  71.         switch(BT_array[4])  //根据数据位的值来进行选择执行不同的动作
  72.         {
  73.           case 0x01:
  74.             Forward();  break;
  75.           case 2:
  76.             Left();     break;
  77.           case 3:
  78.             Stop();     break;
  79.           case 4:
  80.             Right();    break;            
  81.           case 5:
  82.             Back();     break;
  83.         }
  84.         break;
  85.     }
  86.   }
  87. }
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 支持支持1 反对反对

签到天数: 268 天

[LV.8]以坛为家I

推荐
发表于 2015-12-15 18:18:23 | 只看该作者
thaks you ,
good data .
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

板凳
发表于 2013-8-22 23:35:54 | 只看该作者
谢谢分享~~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

地板
发表于 2013-12-10 10:15:34 | 只看该作者
非常感谢lz分享
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

6#
发表于 2014-8-28 10:03:45 | 只看该作者
金币可以多加一个!!1
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

7#
发表于 2014-10-3 23:10:18 | 只看该作者
为什么我用这个程序,串口只是不断的出现8个F
把蓝牙拔下来也是
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

8#
发表于 2016-7-23 17:21:21 | 只看该作者
为什么总是上传失败
回复 支持 反对

使用道具 举报

签到天数: 866 天

[LV.10]以坛为家III

9#
 楼主| 发表于 2016-7-25 08:04:52 | 只看该作者
Cris 发表于 2016-7-23 17:21
为什么总是上传失败

错误提示截图看下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2  

GMT+8, 2024-4-26 21:18 , Processed in 0.051619 second(s), 25 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表