设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9330|回复: 10

YFRobot蓝牙小车之Arduino控制程序

[复制链接]

签到天数: 483 天

[LV.9]以坛为家II

发表于 2013-7-17 19:19:46 | 显示全部楼层 |阅读模式
本帖最后由 AllBlue 于 2013-7-8 17:39 编辑

YFRobot蓝牙小车之Arduino控制程序

之前写的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. }
复制代码

YFRobot_BT.zip (1.09 KB, 下载次数: 378)

签到天数: 268 天

[LV.8]以坛为家I

发表于 2015-12-15 18:18:23 | 显示全部楼层
thaks you ,
good data .
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

发表于 2013-8-14 16:22:15 | 显示全部楼层
谢了...............
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-8-22 23:35:54 | 显示全部楼层
谢谢分享~~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-12-10 10:15:34 | 显示全部楼层
非常感谢lz分享
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-8-28 10:03:45 | 显示全部楼层
金币可以多加一个!!1
回复 支持 反对

使用道具 举报

签到天数: 2 天

[LV.1]初来乍到

发表于 2014-10-3 23:10:18 | 显示全部楼层
为什么我用这个程序,串口只是不断的出现8个F
把蓝牙拔下来也是
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2016-7-23 17:21:21 | 显示全部楼层
为什么总是上传失败
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2017-8-18 05:29 , Processed in 0.209313 second(s), 31 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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