用51单片机制作蓝牙小车
需要准备:小车底盘,12v电源,驱动(L298N),万能板,具有pwm功能芯片(这里使用stc12c5608ad),排针至少两条,芯片底座,一个大电容(10μf),小电容(30pf),晶振(110592),两个1000Ω电阻,两个开关,一个LED,蓝牙(hc05),手机蓝牙app。
开始制作
焊接:首先使用烙铁前要保证烙铁头清洁。在操作时候,先将烙铁放置到位,再推动焊锡,让焊锡包裹住针脚后,先撤焊锡再撤烙铁,整个过程不能超过1秒,而且烙铁尽量垂直起降,用点连成线,切忌拖拉焊锡。如果做错会导致很多麻烦,比如先将焊锡放置,在放置烙铁,很容易使焊锡包裹烙铁。超过一秒或用烙铁拖拉焊锡会使铜片焊盘脱落。
蓝牙调试:任何一个串口调试助手均可。蓝牙使用at指令,网上有全部指令,这里讲解一些需要注意的,at指令不区分大小写,并且每次只能输入一条,每条以回车结尾。蓝牙的txd接单片机的rxd,蓝牙rxd接单片机txd(rxd:接收数据,txd:发送数据)。
软件调试:遥控车原理就是遥控器发出信号,单片机处理,电机转动,三个过程。所以所需技术就是,串口通讯,PWM调速。
串口通讯:
#include
unsigned char flag,num;
void ser() interrupt 4 //串口中断
{
RI = 0;
num = SBUF;
flag=1;
}
void Init_Timer1(void)
{
SCON=0x50;
PCON=0x00;
TMOD=0x20;
EA=1;
ES = 1;
TL1=0xfd; //开启定时器1
TH1=0xfd;
TR1=1;
}
void main()
{
Init_Timer1();
while(1)
{
if(flag==1)
{
SBUF=num;
while(!RI);
RI=0;
flag=0;
}
}
}
pwm调试:pwm技术是使用数字信号(方波)来控制模拟电路,用方波频率(占空比),来调整模拟电路工作效率。这里使用定时器0,来控制输出频率,关于驱动en1 in1 in2控制左边车轮,其余控制右边(例子为前进程序)。当en1/en2=1 in1/in3=1 in2/in4=0为正转,反之为反转。
#include
sbit EN1=P3^5;
sbit IN1=P2^2;
sbit IN2=P2^3;
sbit EN2=P2^4;
sbit IN3=P1^7;
sbit IN4=P1^6;
int value=20,PWM=10,i=0;
void Init_Timer0(void)
{
TMOD |= 0x01;
TH0=0x00;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
main()
{
Init_Timer0();
while(1);
}
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x00;
TL0=0x00;
IN1=1;
IN2=0;
IN3=1;
IN4=0;
while(1)
{
i++;
if(i<=PWM)
{
EN1=1;
EN2=1;
}
if(i>PWM&&i<=value)//占空比为二分之一
{
EN1=0;
EN2=0;
}
if(i>value)
i=0;
}
}
最后了解完技术原理就可以将串口通讯和pwm组合在一起就可以玩自己的遥控车了。