找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14040|回复: 13
收起左侧

用手机控制的蓝牙小车制作教程与单片机源码及APP等资料

  [复制链接]
ID:328609 发表于 2018-7-6 19:06 | 显示全部楼层 |阅读模式
只是简单的用手机控制小车前进,后退,转弯
有什么不懂得请留言

电路原理图如下:
1057154323.jpg

安卓app:
81752620.jpg

实物图:
1501608560.jpg 1708584452.jpg TB10E.rGXXXXXcyXpXXXXXXXXXX_!!0-item_pic.jpg 捕获2.PNG 捕获3.PNG 捕获5.PNG

蓝牙小车单片机源程序如下:
  1. #include <reg51.h>

  2. void UsartConfiguration();
  3. unsigned char num;


  4. void delay(unsigned int i)                //延时函数,下面我说的500毫秒,现实不是500毫秒,方便大家理解而已
  5. {
  6.         unsigned int k;
  7.         for (k=0;k<i;k++);
  8. }


  9. void main()                        //主函数
  10. {

  11.         UsartConfiguration();                                //调用蓝牙接受的参数

  12.         while(1)
  13.         {
  14. /**********************直走*************************************/
  15.                 if(num == 'q')                                //如果蓝牙接收到q字母,就执行下面的指令
  16.                 {
  17.                         delay(500);                                        //延时一下
  18.                         if(num == 'q')
  19.                         {                                                                                                        //p1        1 1 1 1                        分别对应1234号马达
  20.                                 P1=0x0f;                                                                //                0 0 0 0                        上面是高电平,下面是低电平,四个马达都会向前开
  21.                                 delay(500);                                                        //延时降速,如果L298N是接12V的电源,那么马达的电压是12v,速度太快了,需要降速
  22.                                 P1=0x00;                                                                //这里降速的原理是让马达转500毫秒,停一下,转500毫秒,停一下,转500毫秒,停一下,从而达到降速的效果
  23.                         }
  24.                 }
  25. /*****************************后退    ***************/
  26.                
  27.                 if(num == 'h')                        //如果蓝牙接收到h字母,就执行下面的指令
  28.                 {
  29.                         delay(500);
  30.                         if(num == 'h')
  31.                         {                                                                                                                                        //p1        0 0 0 0                        分别对应1234号马达
  32.                                 P1=0xf0;                                                                                                //                1 1 1 1                        上面是低电平,下面是高电平,四个马达都会向后开
  33.                                 delay(500);
  34.                                 P1=0x00;
  35.                         }
  36.                 }
  37. /*****************原地左转  原地左转  原地左转  原地左转  原地左转  原地左转  原地左转  原地左转  原地左转  *****************/
  38.                
  39.                 if(num == 'z')                                        //如果蓝牙接收到z字母,就执行下面的指令
  40.                 {
  41.                         delay(500);
  42.                         if(num == 'z')
  43.                         {                                                                                                                //p1  0 1 0 1                                马达2 4向前开,马达1 3向后开
  44.                                 P1=0x5a;                                                                        //    1 0 1 0
  45.                                 delay(500);
  46.                                 P1=0x00;
  47.                         }
  48.                 }
  49. /****************原地右转   ************************************/
  50.                 if(num == 'y')                                        //如果蓝牙接收到y字母,就执行下面的指令
  51.                 {
  52.                         delay(500);
  53.                         if(num == 'y')
  54.                         {                                                                                                                //P1 1 0 1 0                        马达13向前开,马达24向后开
  55.                                 P1=0xa5;                                                                        //         0 1 0 1
  56.                                 delay(500);
  57.                                 P1=0x00;
  58.                         }
  59.                 }
  60. /****************向左开  ******************************/
  61.                
  62.                 if(num == 'a')                                        //如果蓝牙接收到a字母,就执行下面的指令
  63.                 {
  64.                         delay(500);
  65.                         if(num == 'a')
  66.                         {
  67.                                 P1=0x5a;                                                //小车左转600毫秒
  68.                                 delay(600);
  69.                                 P1=0x0f;                                                //小车直行1200毫秒
  70.                                 delay(1200);
  71.                                 P1=0x00;        
  72.                                 
  73.                         }
  74.                 }
  75. /****************向右开*****************************/
  76.                 if(num == 'b')                                        //如果蓝牙接收到b字母,就执行下面的指令
  77.                 {
  78.                         delay(500);
  79.                         if(num == 'b')
  80.                         {
  81.                                 P1=0xa5;
  82.                                 delay(600);
  83.                                 P1=0x0f;
  84.                                 delay(1200);
  85.                                 P1=0x00;        
  86.                         }
  87.                 }
  88. /******************没指令的时候停车***************************/
  89.                
  90.                 if(num == '0')                                        //如果蓝牙接收到数字0,就执行下面的指令
  91.                 {
  92.                         P1=0x00;                                                        //p1的8个口都是低电平,小车停下来
  93.                 }
  94.         }

  95. }



  96. void UsartConfiguration()
  97. {

  98.         SCON=0x50;                //设置为工作方式1               

  99.         TMOD=0x20;                //设置为工作方式2

  100. //        PCON=0x80;                //波特率加倍

  101.         TH1=0xFD;                //计数器初值设置,波特率是4800

  102.         TL1=0xFD;

  103.         ES=1;                        //开中断

  104.         EA=1;                                                

  105.         TR1=1;                        //开计数器

  106. }

  107. void interrupt_uart() interrupt 4 //using1切换寄存器组到1,进入中断就要判断是发送中断TI,还是接收中断RI。
  108. {   
  109.     if(TI)  //判断是否为发送端TI中断,中断结束之后,只需发送端清零,表示发送完成。
  110.    {
  111.      TI = 0;
  112.      REN = 1;  // ******允许接收数据。 *******
  113.    }         
  114.    if(RI) //判断是否为接收端RI中断,中断结束之后,只需接收端清零,表示接收完成。
  115.    {
  116.      RI = 0; //只要数据接收端清零,就可以取出数据。
  117.            num = SBUF;         //SBUF取数据            
  118.            SBUF = num;         //*******把数据num从SBUF送出去。************
  119.            REN = 0;        //严谨的写法,发送数据的时候禁止接收数据。
  120.    }
  121.         //发送的时候不接收数据 ,发送完了再接收数据。            
  122. }
复制代码
0.png

所有资料51hei提供下载:
蓝牙小车教程.rar (7.76 MB, 下载次数: 346)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:192020 发表于 2018-10-16 13:03 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:413883 发表于 2018-10-23 10:43 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:351567 发表于 2018-11-16 21:21 | 显示全部楼层
app在哪下载
回复

使用道具 举报

ID:429579 发表于 2018-11-19 22:55 | 显示全部楼层
想学习一下,但是不懂编程
回复

使用道具 举报

ID:435149 发表于 2018-11-28 20:10 | 显示全部楼层
小车用的什么芯片
回复

使用道具 举报

ID:383374 发表于 2018-12-10 22:30 | 显示全部楼层
白白下,根本就是没有用的东西

评分

参与人数 1黑币 +10 收起 理由
lxa0 + 10 赞一个!

查看全部评分

回复

使用道具 举报

ID:383374 发表于 2018-12-10 22:31 | 显示全部楼层
没用,蓝牙源代码都没有
回复

使用道具 举报

9#
无效楼层,该帖已经被删除
10#
无效楼层,该帖已经被删除
ID:546398 发表于 2019-5-24 17:01 | 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

ID:706455 发表于 2020-3-11 16:03 | 显示全部楼层
还不错噢!!!!
回复

使用道具 举报

ID:707033 发表于 2020-3-12 15:05 | 显示全部楼层
果断收藏赞
回复

使用道具 举报

ID:702057 发表于 2020-3-13 11:07 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:618406 发表于 2020-4-27 13:46 | 显示全部楼层
果断收藏赞
回复

使用道具 举报

16#
无效楼层,该帖已经被删除
ID:74784 发表于 2021-3-8 23:54 | 显示全部楼层
白白下,根本就是没有用的东西!
回复

使用道具 举报

18#
无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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