YFROBOT创客社区

标题: YFRobot蓝牙小车之Arduino控制程序 [打印本页]

作者: AllBlue    时间: 2013-7-17 19:19
标题: YFRobot蓝牙小车之Arduino控制程序
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. }
复制代码

[attach]442[/attach]





作者: 乘风归去    时间: 2013-8-22 23:35
谢谢分享~~~~~
作者: pplu    时间: 2013-12-10 10:15
非常感谢lz分享
作者: 零赫兹    时间: 2014-8-28 10:00
好啊!!!!!!!!
作者: 零赫兹    时间: 2014-8-28 10:03
金币可以多加一个!!1
作者: angel725    时间: 2014-10-3 23:10
为什么我用这个程序,串口只是不断的出现8个F
把蓝牙拔下来也是
作者: WANG088    时间: 2015-12-15 18:18
thaks you ,
good data .

作者: Cris    时间: 2016-7-23 17:21
为什么总是上传失败

作者: AllBlue    时间: 2016-7-25 08:04
Cris 发表于 2016-7-23 17:21
为什么总是上传失败

错误提示截图看下

作者: tiantianyouyou    时间: 2019-5-7 16:36
谢谢分享~~~~~
作者: tiantianyouyou    时间: 2019-5-18 07:48
谢谢分享~~~~~
作者: tiantianyouyou    时间: 2019-5-20 08:14
谢谢分享~~~~~




欢迎光临 YFROBOT创客社区 (http://www.yfrobot.com.cn/) Powered by Discuz! X3.1