电子设计大赛蓝牙遥控小车说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蓝牙遥控避障小车说明书
第一章作品简要说明
第二章作品模块说明
2.1L298N电机驱动模块说明
2.2稳压模块说明
2.3蓝牙模块说明
2.4最小系统板说明
第三章程序分析
第一章
作品简要说明
作品以单片机为控制核心,通过编写程序控制外围部件,如电机模块,蓝牙模块,等以此来实现小车的前进,后退,向左转,向右转,加速,减速,警灯闪烁,警
第二章
作品模块说明
2.1L298N模块说明
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。

L298N可接受标准TTL逻辑电平信号V SS,V SS可接4.5~7 V电压。

4脚V S接电源电压,V S电压范围V IH为+2.5~46 V。

输出电流可达2.5 A,可驱动电感性负载。

1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。

L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。

5,7,10,12脚接输入控制电平,控制电机的正反E nA,E nB接控制使能端,控制电机的停转。

模块如图:
原理图:
2.2稳压模块说明
1 板子尺寸:5.7cm*2.3cm
2 输入电压:输入电压无极性,交流和直流均可以,范围为:7.5v-20v
3 输出电压5v
4 最大输出电流:1.2A
模块图片:
模块原理图:
2.3最小系统板说明
控制核心。

第三章
程序分析
#include<reg52.h>
sbit lanenb=P2^2; //前左
sbit lanin3=P2^0;
sbit lanin4=P2^1;
sbit lanena=P2^5; //前右
sbit lanin1=P2^3;
sbit lanin2=P2^4;
sbit lvenb=P1^2; //后右
sbit lvin3=P1^0;
sbit lvin4=P1^1;
sbit lvena=P1^5; // 后左
sbit lvin1=P1^3;
sbit lvin2=P1^4;
sbit eye1=P1^6;
sbit eye2=P1^7;
unsigned char lanya,speed=10,temp,count; void DelayUs2x(unsigned char t);//函数声明
void DelayMs(unsigned char t);
void init();
void speed_down();
void forward();
void speed_up();
void left();
void back();
void right();
void deng();
void main()
{
init();
// eye1=1;
// eye2=1;
while(1)
{
deng();
if(lanya==0x04||lanya==0x07||lanya==0x02||lanya==0x05||lanya==0 x06)
temp=lanya;
switch(lanya)
{
case
0x07:lanin1=0;lanin2=0;lanin3=0;lanin4=0;lvin1=0;lvin2=0;lvin3=0;lvin4= 0;break;
case 0x01:speed_down();break;
case 0x02:forward(); break;
case 0x03:speed_up(); break;
case 0x04:left(); break;
case 0x05:back(); break;
case 0x06:right(); break;
// case 0x07:TMOD=0X01;TR0=1;beep();TMOD=0X20; break;
}
lanya=temp;
}
}
void init()
{
/***************蓝牙初始化***************/
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
/***************蓝牙初始化***************/
/***************定时器2初始化***************/
// TMOD=0X01;
RCAP2H=(65536-958)/256;
RCAP2L=(65536-958)%256;
EA=1;
ET2=1;
TR2=1;
/***************waibu始化***************/
// EX0=1;
//TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
//TH0=0x00; //给定初值
//TL0=0x00;
// EA=1; //总中断打开
//ET0=1; //定时器中断打开
//TR0=1; //定时器开关打开
}
void ser() interrupt 4 //蓝牙中断函数
{
RI=0;
lanya=SBUF;
// SBUF=lanya;
}
void time() interrupt 5
{
TF2=0;
// TH0=(65536-458)/256;
// TL0=(65536-458)%256;
if ( count == speed )
{ // P0=0xf0;
lanena=0;
lanenb=0;
lvena=0;
lvenb=0;
}
if(count == 20)
{
count=0;
if(speed!=0) //如果0 保持原来状态
{ // P0=0x0f;
lanena=1;
lanenb=1;
lvena=1;
lvenb=1;
}
}
count++;
}
void speed_down() {
if(speed==0)
speed=1;
speed--;
}
void forward() {
lanin1=1;
lanin2=0;
lanin3=1;
lanin4=0;
lvin1=1;
lvin2=0;
lvin3=1;
lvin4=0;
}
void speed_up() {
speed++;
if(speed==21)
speed=20; }
void left()
{
lanin1=0;
lanin2=0;
lanin3=1;
lanin4=0;
lvin1=1;
lvin2=0;
lvin3=0;
lvin4=0;
}
void back()
{
lanin1=0;
lanin2=1;
lanin3=0;
lanin4=1;
lvin1=0;
lvin2=1;
lvin3=0;
lvin4=1;
}
void right()
{
lanin1=1;
lanin2=0;
lanin3=0;
lanin4=0;
lvin1=0;
lvin2=0;
lvin3=1;
lvin4=0;
}
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*void Timer0_isr(void) interrupt 1
{
TH0=0xfe; //重新赋值
TL0=frq; //低8位值在主程序中不断累加 SPK=!SPK; //端口电平取反
} */
void deng()
{
P0=0xf0;
DelayMs(200);
P0=0x0f;
DelayMs(200);
}
/*void beep()
{
unsigned char i;
for(i=0;i<200;i++)
{
DelayMs(10); //延时10ms,累加频率值 frq=i;
}
for(i=200;i>0;i--)
{
DelayMs(10); //延时10ms,累减频率值 frq=i;
}
} */。

相关文档
最新文档