欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机蓝牙小车

发布时间:2023/12/14 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 51单片机蓝牙小车 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这是某小白大一下学期自学做的小玩意,毕竟不是自己的专业课,学起来有点吃力,不过感觉挺有意思的。写下这篇文章记录一下

一.所需材料
1,51单片机开发板
2,杜邦线一堆
3,L298N驱动板
4,三节18650电池
5,HC-05/06蓝牙模块(从机版本即可)
6,小车底盘一个

二.电路部分

 

 蓝牙模块采用串口通信,建议用TTL转USB线先把蓝牙模块与电脑连接起来,对蓝牙模块进行配置,以测试是否可以通信

三.代码部分

电机驱动代码

#include <REGX52.H>#include "UART.h"sbit Motor=P1^0;sbit Motor1=P1^1;sbit Motor2=P1^2;sbit Motor3=P1^3;unsigned char flag=0;void main(){ Motor=1;Motor1=1;Motor2=1;Motor3=1;UART_Init();//串口初始化while(1){if(flag==1){Motor=1;Motor1=0;Motor2=1;Motor3=0;}if(flag==2){Motor=1;Motor1=1;Motor2=1;Motor3=0;}if(flag==3){Motor=1;Motor1=1;Motor2=1;Motor3=1;}if(flag==4){Motor=1;Motor1=0;Motor2=1;Motor3=1;}if(flag==5){Motor=0;Motor1=1;Motor2=0;Motor3=1;}}}void UART_Routine() interrupt 4{unsigned char num;if(RI==1)//如果接收标志位为1,接收到了数据{num=SBUF;switch(num){case 1://前进flag=1;break;case 2://左转flag=2;break;case 3://停车flag=3;break;case 4://右转flag=4;break;case 5://倒车flag=5;break;default:flag=0;break;}UART_SendByte(SBUF);//将受到的数据发回串口,便于调试RI=0;//接收标志位清0}}

 串口代码

#include <REGX52.H>/** * @brief 串口初始化,4800bps@12.000MHz * @param 无 * @retval 无 */void UART_Init(){SCON=0x50;PCON |= 0x80;TMOD &= 0x0F;//设置定时器模式TMOD |= 0x20;//设置定时器模式TL1 = 0xFA;//设定定时初值TH1 = 0xFA;//设定定时器重装值ET1 = 0;//禁止定时器1中断TR1 = 1;//启动定时器1EA=1;ES=1;}/** * @brief 串口发送一个字节数据 * @param Byte 要发送的一个字节数据 * @retval 无 */void UART_SendByte(unsigned char Byte){SBUF=Byte;while(TI==0);TI=0;}

四.蓝牙控制程序

采用APP inventor编写

MIT App Inventor

成品连线比较混乱,有一种野性的美

 

 

打包文件在https://pan.baidu.com/s/1oqYBb7KX2kBjdQewbvimww?pwd=yy7t
提取码yy7t
包括keil文件以及安卓蓝牙控制软件

 

总结

以上是生活随笔为你收集整理的51单片机蓝牙小车的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。