C51蓝牙小车制作及代码详解
创作时间:
作者:
@小白创作中心
C51蓝牙小车制作及代码详解
引用
CSDN
1.
https://blog.csdn.net/qq_45955402/article/details/107246649
本文将详细介绍如何制作一个基于C51单片机和蓝牙控制的四轮驱动小车。文章将从材料准备、硬件连接、蓝牙模块设置到完整的控制代码,手把手教你完成这个有趣的DIY项目。
材料清单
- 4WD板子
- L298N电机驱动模块(2个)
- 稳压模块
- C51芯片(2个)
- 芯片底座
- HC-05蓝牙模块
- 杜邦线
- 三节3.7V充电电池
- 一个DC电池盒
注意事项:
- 4WD底板配备4个130马达,因此需要两个L298N驱动模块。
- 单片机供电电压为5V,蓝牙模块供电电压为3.6到6V,因此需要稳压模块为蓝牙模块和C51芯片供电。
- 130马达可以承受11V左右的直流电压,但建议使用PWM方式使电压有效值维持在8V左右。
关于接线
重点连线如下:
- 首先将11V电压接入一个L298N,然后并联另一个L298N。
- 其他控制线接入单片机底座。
- 蓝牙模块的RXD对应单片机的TXD,TXD对应单片机的RXD。
关于蓝牙模块
拿到模块后需要使用软件修改波特率,一般设置为9600bps。CSDN上有专门的软件可供下载使用。
控制代码
/*
晶振Fosc: 11.0592Mhz ,{ Tm = 12 * T(晶振) =====>>>> Fm = Fosc/12 }
芯片:STC89C52
*/
#include <reg52.h>
//right
sbit IN5 = P1^0;
sbit IN6 = P1^1;
sbit IN7 = P1^2;
sbit IN8 = P1^3;
//left
sbit IN1 = P0^0; //0000 1010正转
sbit IN2 = P0^1; //0000 0101
sbit IN3 = P0^2;
sbit IN4 = P0^3;
char buffer = 0; //从蓝牙处接受数据
int demu = 7,num; //demu是设置占空比的参数
void init() //初始化:波特率的设置与要蓝牙的波特率一致
{
SCON =0x50; //10位串口,可变波特率
TMOD =0x20;
//PCON=0x00; //SMOD == 0,波特率不加倍
TH1=0xfd; //9600bps
TL1=0xfd;
//TH0=0xff;
//TH0=0x17;
TH0 = (65536 - 461)/256; //定时500us,发生PWM
TL0 = (65536 - 461)%256; //T0计数器的初始值是多少,不用太关心
EA=1;
ES=1;
ET0=1;
TR0=0; //刚上电时避免转动
TR1=1;
}
void adjust() //控制方向
{
switch(buffer)
{
case 'S': //停止
P0 = 0x00;
P1 = 0X00;
TR0 = 0;
break;
case 'G': //前进
TR0 = 1;
P0 = 0X0A;
P1 = 0X0A;
break;
case 'B': //后退
TR0 = 1;
P0 = 0X05; //0000 0101
P1 = 0x05;
break;
case 'L': //左转
TR0 = 1;
P0 = 0X0A;
P1 = 0X00;
break;
case 'R': //右转
TR0 = 1;
P1 = 0X0A; //0000 1010
P0 = 0X00;
break;
case '1': //档位
TR0 = 1;
demu = 7;
P0 = 0X00;
P1 =0X00;
break;
case '2':
TR0 = 1;
demu = 10;
P0 = 0X00;
P1 =0X00;
break;
case '3':
TR0 = 1;
demu = 14;
P0 = 0X00;
P1 =0X00;
break;
}
}
main()
{
init();
while(1)
{
adjust();
}
}
void UartIsr() interrupt 4
{
if(RI) //TI和RI只能用软件清零
{
RI=0;
buffer = SBUF; //SBUF是数据缓存寄存器
}
}
void timer0() interrupt 1
{
TH0 = (65536 - 461)/256; // 461 * Tm = 500us
TL0 = (65536 - 461)%256;
++num;
if(num<=demu) //高电平由adjust函数来决定
{
}
else
{
P1 = 0X00;
P0 = 0X00;
}
if(num==20) //周期:10ms
num = 0;
}
结语
通过本教程,你可以制作一个功能齐全的蓝牙遥控小车。如果在制作过程中遇到任何问题,欢迎在评论区留言讨论。坚持你所热爱的,你一定会得到意想不到的收获。
热门推荐
女性长痘喝什么茶好:花茶与绿茶的比较与选择
欧元突破年内新高:美元疲软与欧洲央行降息前夕的市场解读
怎样根据八字确定姓名的笔画数,取名字的五行八字怎么算笔画的
香蕉是“隐藏杀手”?60岁以上的老年人要少吃?这4种水果老人一点也别吃!
双面胶如何正确使用以提升粘合效果?这种使用方法有哪些注意事项?
什么是边缘云?边缘计算+云服务介绍
关于驱蚊产品,这些请知晓
我的世界开服吃配置,轻松搭建高效服务器
论自由的不同哲学视角:康德、休谟、萨特与马克思的见解
“利率调整兜底条款”来了 别担心个人储户不受影响
VxLAN-EVPN分布式网关配置实验详解
广东孝女彩金:11岁扛起家庭重担,照顾双残养父母,拒绝和亲生父母相认
拘留所与监狱:它们之间的区别与联系
一文读懂教师工资的计算,教师工资居然是这样组成的
V12发动机的特点解析
SAR ADC基准电压设计指南
20家医院被评为复旦排行榜A++++级医院,他们医术高在哪?
狸花猫和橘猫有什么区别?为什么说狸花猫千万不能养?
美国乐队OneRepublic登上春晚:一段跨越国界的友谊故事
氯雷他定和地氯雷他定有什么区别
吹风机怎么使用 有哪些技巧不会损伤头发
射洪地理位置详解:位于四川的哪个区域及周边重要城市关系
买车贷款,到底划不划算?汽车销售揭秘:很多人在"白送钱"!
48句治愈人心诗词:人生适意即为之,醉死愁生君自择
公司法中对公司董事会会议程序的要求是什么
国家重点项目!贵州这条高速再传进展
怎么打开电脑书签管理器
学科融合,校企共建……各界代表分享网安人才培养经验
海贼王:十字公会对海军悬赏的系统曝光,克比和卡普成唯二的特例
绿色的溶剂和助剂有哪几种(绿色的溶剂和助剂有哪几种类型)