极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4956|回复: 4

桌面履带蓝牙4.0小车-小车程序

[复制链接]
发表于 2017-10-17 11:51:07 | 显示全部楼层 |阅读模式
桌面履带蓝牙4.0 -小车程序

20171017-XHS



现在把小车的Arduino代码分享给大家,小车比较简单,没有对电机进行调速控制,直接差动转弯。

  1. /*****************************************
  2. 二轮蓝牙小车
  3. 2017.08.23
  4. 作者:XHS
  5. *****************************************/
  6. #define IN1 4
  7. #define IN2 5     //定义In1接arduino的4引脚,In2接5引脚
  8. #define IN3 6
  9. #define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

  10. void forward( );
  11. void back( );
  12. void turnLeft( );
  13. void turnRight( );
  14. void _stop();          //这里是把我们用到的函数都声明一遍

  15. void setup()
  16. {
  17.   pinMode(IN1,OUTPUT);
  18.   pinMode(IN2,OUTPUT);
  19.   pinMode(IN3,OUTPUT);
  20.   pinMode(IN4,OUTPUT);
  21.   Serial.begin(9600);
  22. }
  23. int incomingByte =  0;
  24. void loop()
  25. {
  26.     if(Serial.available())
  27.     {
  28.       incomingByte = Serial.read();
  29.       switch(incomingByte)
  30.       {
  31.         case 0x05 :
  32.           {turnLeft( );  break; }
  33.         case 0x04:
  34.           {forward( );   break;}
  35.         case 0x06:
  36.           {turnRight( );   break;}
  37.         case 0x08:
  38.           {_stop();   break;}
  39.         case 0x07:
  40.           {back( );   break;}
  41.       }
  42.     }   
  43. }




  44. /**************************************************
  45. forward子函数——前进子函数
  46. 函数功能:控制车前进
  47. **************************************************/
  48. void forward( )
  49. {
  50.   digitalWrite(IN1,HIGH);      
  51.   digitalWrite(IN2,LOW);         //左轮前进
  52.   digitalWrite(IN3,HIGH);      
  53.   digitalWrite(IN4,LOW);         //右轮前进
  54. }

  55. /**************************************************
  56. back子函数——后退子函数
  57. 函数功能:控制车后退
  58. **************************************************/
  59. void back( )
  60. {
  61.   digitalWrite(IN1,LOW);      
  62.   digitalWrite(IN2,HIGH);        //左轮后退
  63.   digitalWrite(IN3,LOW);      
  64.   digitalWrite(IN4,HIGH);        //右轮后退
  65. }

  66. /**************************************************
  67. turnLeft子函数——左转子函数
  68. 函数功能:控制车左转
  69. **************************************************/
  70. void turnLeft( )
  71. {
  72.   digitalWrite(IN1,LOW);      
  73.   digitalWrite(IN2,LOW);         //左轮静止不动
  74.   digitalWrite(IN3,HIGH);      
  75.   digitalWrite(IN4,LOW);         //右轮前进
  76. }

  77. /**************************************************
  78. turnRight子函数——右后转弯转子函数
  79. 函数功能:控制车右后转弯
  80. **************************************************/
  81. void turnRight( )
  82. {
  83.   digitalWrite(IN1,HIGH);      
  84.   digitalWrite(IN2,LOW);         //左轮前进
  85.   digitalWrite(IN3,LOW);      
  86.   digitalWrite(IN4,LOW);         //右轮静止不动
  87. }

  88. /**************************************************
  89. stop子函数—停止子函数
  90. 函数功能:控制车停止
  91. **************************************************/
  92. void _stop()
  93. {
  94.   digitalWrite(IN1,LOW);      
  95.   digitalWrite(IN2,LOW);         //左轮静止不动
  96.   digitalWrite(IN3,LOW);      
  97.   digitalWrite(IN4,LOW);         //右轮静止不动
  98. }
复制代码
这些代码也是参考论坛大佬的设计,通过串口读数据,检测到不同的数据值,可以进行不同的动作。大家可以通过以前的帖子,下载安卓软件,直接使用。

安卓软件传送安卓软件

整体介绍传送整体介绍

回复

使用道具 举报

发表于 2017-10-19 22:50:34 | 显示全部楼层
请教一下,我用的是hc05,发送字符的,但是小车要连续发送几次才有反应,只发送一次往往没反应,也就是不够灵敏,不知道哪里有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-20 16:07:02 | 显示全部楼层
qwcqio 发表于 2017-10-19 22:50
请教一下,我用的是hc05,发送字符的,但是小车要连续发送几次才有反应,只发送一次往往没反应,也就是不够 ...

你可以先把HC05的接收端接在电脑的串口助手上看看是不是收到数据了
回复 支持 反对

使用道具 举报

发表于 2017-10-21 15:23:41 | 显示全部楼层
西红柿 发表于 2017-10-20 16:07
你可以先把HC05的接收端接在电脑的串口助手上看看是不是收到数据了

可以啊,会不会是电机干扰
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-22 21:22:13 | 显示全部楼层
qwcqio 发表于 2017-10-21 15:23
可以啊,会不会是电机干扰

可能不会,我用的L298N没有出现过着这种情况
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2020-7-4 01:47 , Processed in 0.051805 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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