基于单片机的蓝牙遥控小车
3.1.2 PWM脉冲控制原理
所谓PWM就是脉宽调制器,通过调制器给电机提供一个具有一定频率的脉冲宽度可调的脉冲电。脉冲宽度越大即占空比越大,提供给电机的平均电压越大,电机转速就高。反之脉冲宽度越小,则占空比越越小。提供给电机的平均电压越小,电机转速就低。
PWM不管是高电平还是低电平时电机都是转动的,电机的转速取决于平均电压。
3.1.3 脉冲控制代码
void T0_time() interrupt 1 //定时器1中断程序 {
PWMCnt1++; PWMCnt2++; if(PWMCnt1 >= 200) { }
if(PWMCnt1 <= cntPWM1) //230 { } else { }
if(PWMCnt2 >= 200)
6
PWMCnt1 = 1;
PWM1 = 1;
PWM1 = 0;
基于单片机的蓝牙遥控小车
}
{
PWMCnt2 = 1; } { } else { }
TH0 = (65536 - 50) / 256; TL0 = (65536 - 50) % 256;
PWM2 = 0; PWM2 = 1;
if(PWMCnt1 <= cntPWM2) //230
3.2 HC05蓝牙模块
3.2.1 模块简介
HC-05蓝牙无线通信模块有两种工作方式,一个是命令响应工作模式,另一个是自动连接工作模式。在命令响应工作模式下,使用者通过向模块发送AT工作指令来对模块的控制参数进行设定和下达控制指令。而在自动连接工作模式下,模块又有三种工作模式,分别为主机(Master)、从机(Slave)和回环(Loopback)三种工作模式,选定工作模式后,模块就自动按照提前设定好的方式进行数据传输。通过调节模块外部引脚的输入电平来动态转换模块的工作状态。模块实物图如图3-5所示。
7
基于单片机的蓝牙遥控小车
图3-2 HC05实物图
3.2.2 蓝牙串口程序说明
void usart_receive(void) interrupt 4 //串口中断程序 {
if(RI == 1)//收到字符 {
RI = 0;//软件清零 bluetoothdata = SBUF;//读取数据 }
if(TI == 1)//发送数据 {
TI = 0;//清零 } }
3.2.3 模块引脚说明
模块引脚说明及电路原理图如下图3-6、3-7所示。
8
基于单片机的蓝牙遥控小车
图3-3 模块引脚说明
图3-4 HC05原理图
3.3 USB转TTL模块
本次课题需要通过使用串口调试软件使得上位机与底层小车进行通信达到调试小车的目的,但是目前笔记本电脑因为空间的限制和其他方面考虑的原因都没有串口,所以需要使用到这一个USB转串口模块。
9