找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11035|回复: 3
打印 上一主题 下一主题
收起左侧

蓝牙遥控小车制作过程与单片机源码分享

  [复制链接]
跳转到指定楼层
楼主
ID:319718 发表于 2018-5-1 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人之前是一个人单片机小白,之前在贴吧上看见大神们做遥控小车,觉得好厉害,自己也在网上买了元件来制作。今天就来给大家分享我的小车制作过程。
一、材料准备
  一块木板,大小按自己想做的小车的底盘 大小来。
四个电机、小车轮。
蓝牙模块HC-05一块
L298N电机驱动模块一块
单片机最小系统
STC89C52单片机一块
杜邦线 公对公 公对母若干
导线若干
二、组装过程
将之前准备好的木板用小锯片锯好,
然后将单片机最小系统。电机驱动模块,还有蓝牙模块组装好,
请忽略焊接点的,随手的
注意蓝牙模块的接收端与发射端不能接反,之前我接反了找了半天才找出问题来
有些电机驱动模块当输入电机电压高于8伏的的时候,模块自身就会有5伏的电压产生,此电压可输出给单片机及蓝牙模块用,我用的电池是拆充电宝的,一节3.7伏,两节电池串联起来,
请看视频

单片机源程序:
  1. #include <REGX52.H>
  2. sbit mal=P1^7;         //第一电机左拐
  3. sbit mar=P1^6;         //第一电机右拐
  4. sbit mbl=P1^5;         //第二电机左拐
  5. sbit mbr=P1^4;         //第二电机右拐
  6. sbit mc=P1^3;         //第三个动力
  7. sbit md=P1^2;         //第四个动力
  8. sbit d1=P3^5;
  9. sbit d2=P3^4;
  10. sbit led=P3^7;
  11. unsigned char numz=0;
  12. //舵机正脉宽500us~2500us,负脉宽为(20000us-正脉宽)
  13. //对应到定时器值461-2=459,到2713-2=2711          ,变化范围2252,如果每档变化125,可以有18档
  14. unsigned char d11=0,d10=0,d21=0,d20=0,da=0,db=0;
  15. void delayms(unsigned char ms)
  16. {
  17.         unsigned char i;
  18.         while(ms--)
  19.         {
  20.         for(i = 0; i < 120; i++);
  21.         }
  22. }
  23. void main()
  24. {unsigned char i;
  25. for (i=0;i<=10;i++)          //闪烁,以示主板工作正常
  26. {
  27.    led=~led;   delayms(2000);
  28. }
  29.     TMOD=0x21;        //使用定时器1和0
  30.     SCON=0x50;        //串口使用工作方式1
  31.     TH1=0xfd;        //串口的波特率,9600
  32.     TL1=0xfd;
  33.     //定时器0初始化
  34.     TH0=0xff;
  35.     TL0=0x82;    //初始值125,cpu工作频率为11.0592M
  36.     ET0=1;      //允许定时中断
  37.     TR0=1;      //启动定时器0
  38.     TR1=1;                //打开定时器1
  39.         EA=1;            //打开中断总开关
  40.         ES=1;                //打开串口中断开关
  41. while(1){  }
  42. }
  43. void ck() interrupt 4
  44. {  
  45. unsigned char a=0;
  46. EA=0;
  47. if(RI)
  48. { a=SBUF;
  49.   switch(a)
  50.   {
  51.    case 'Z':numz++;break;
  52.   case 'A':{if(numz==6){mal=1;mar=0;mbl=0;mbr=1;numz=0;led=~led;}}break; //前进
  53.    case 'B':{if(numz==6){mal=1;mar=0;mbl=1;mbr=0;numz=0;led=~led;}}break; //左拐
  54.    case 'C':{if(numz==6){mal=1;mar=1;mbl=1;mbr=1;numz=0;led=~led;}}break;//停
  55.    case 'D':{if(numz==6){mal=0;mar=1;mbl=0;mbr=1;numz=0;led=~led;}}break;//右拐
  56.    case 'E':{if(numz==6){mal=0;mar=1;mbl=1;mbr=0;numz=0;led=~led;}}break;//后退
  57.    case 'F':{if(numz==6){md=~md; led=~led;}}break;
  58.    case 'G':{if(numz==6){mc=~mc;led=~led;}}break;
  59.    case 'H':{if(numz==6){  led=~led;}}break;
  60.    case 'I':{if(numz==6){ numz=0;led=~led;}}break;
  61.    case 'J':{if(numz==6){ numz=0;led=~led;}}break;
  62.    case 'K':{if(numz==6){ numz=0;led=~led;}}break;
  63.    case 'Y':numz=0;break;
  64.    default:numz=0;
  65.    }
  66. }
  67.   RI=0;         EA=1;
  68. }

  69. void time0(void) interrupt 1//定时器中断函数
  70. {
  71.    TH0=0xff;    //定时值125
  72.    TL0=0x82;
  73. }                          
复制代码

所有资料51hei提供下载:
自制小车.zip (26.93 KB, 下载次数: 58)
制作过程.docx (3.01 MB, 下载次数: 58)


评分

参与人数 1黑币 +5 收起 理由
1205693382 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:550950 发表于 2019-5-30 11:48 | 只看该作者
感谢分享
回复

使用道具 举报

板凳
ID:570401 发表于 2019-6-24 01:56 | 只看该作者
好资料感谢分享
回复

使用道具 举报

地板
ID:318672 发表于 2019-6-24 15:03 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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