智能小车Word文件下载.docx
- 文档编号:20044474
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:59
- 大小:195.98KB
智能小车Word文件下载.docx
《智能小车Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能小车Word文件下载.docx(59页珍藏版)》请在冰豆网上搜索。
该驱动板需要用7.2V电源供电,但L298N的逻辑参考电平为典型的TTL电平。
用了一个L1117稳压芯片提供稳定的5V输出电压和逻辑参考电压,D9、D10、D11和D12是发光二极管,指示运动方向,与它们连接的电阻都是限流电阻。
R5和R8都是下拉电阻,让EnA和EnB口要么是高电平,要么是低电平,避免出现电平混乱,提高对输入信号的抗干扰能力。
输出端都接有0.1uF电容,加上二极管平衡电路。
他们都是为了保护L298N,电机是感性负载,当给电机突然通电与断电,因为电流的瞬变,电机两端会产生瞬时高压和大电流。
如果没有保护措施,L298N就可能会被烧毁。
三、恒压恒流桥式2A驱动芯片L298N
L298N驱动芯片是由SGS公司的产品,比较常见的15脚Multiwatt封装,内部有4通道逻辑驱动电路。
它的内部结构如图1。
从内部结构图可知,用三极管组成H型平衡桥,驱动功率大,驱动能力强。
同时H型PWM电路工作在晶体管的饱和状态与截止状态,具有非常高的效率。
从图2看出该驱动芯片有两路H型PWM电路,上面已谈到用PWM控制直流电机调速的基本原理,现在来看电路的具体实现。
In1为高电平,In2为低电平,EnA为高电平时,U1、U4输出为高电平,U2、U3输出为低电平。
在OUT1、OUT2接上电机后,T1、T4管导通,T2、T3管截止,电机向一个方向转。
In1为低电平,In2为高电平,EnA仍旧为高电平,T1、T4管截止,T2、T3管导通,电机向相反方向转。
In1、In2同时为高电平或低电平,T1与T3同时导通或截止,T2与T4也是同时导通与截止,但与前者相反,也就是OUT1与OUT2电压相同。
电机会快速停转。
如果EnA端为低电平,整个H型PWM电路关闭。
电机当然也就不会转。
四、驱动板连线:
驱动板与单片机和驱动板与直流电机的接线如图3,整个系统的总电源由L298驱动板的供电电源提供。
L298驱动板的5V电源输出给单片机。
L298驱动板的输入控制端与P0口相连,具体各管脚的连接的情况如图3。
L298驱动板的输出直接与直流电机连接,参照图3。
L298驱动板的有一个VCC和GND不用。
他们是使用步进电机时,作为公共端的。
要实现对电机的前后控制,只要P0^0和P0^1逻辑电平相反。
假设P0^0为高,P0^1为低时是正转。
那么在颠倒送数,即P0^0为低,P0^1为高,车轮就会反转。
调速,控制P0^2口的高电平保持时间相对总周期长点,速度就大,短点,速度就小。
图3
驱动板连线图
盛方跟我学做智能车第二节基本行进控制
63次
第二节小车前进、后退、转弯、变速实验
一、实验原理:
电机驱动板的控制端与P0口相连,注意P0口必须接上拉电阻,1k比较合适。
按照驱动板原理,只要控制与方向控制连接的I/O口,就能实现小车方向的控制,控制与使能端连接的I/O口,就能实现小车速度的控制。
小车直线前进,每个轮的速度受使能端控制,当使能端输入相同占空比时,两轮速度相同,实现小车直线前进。
直线后退,每个轮的速度控制与直线前进一样,改变两轮的运动方向,方向控制信号与直线前进相反即可。
小车左转,方向控制保持和前进一样,左轮速度慢,右轮速度快,就可以让小车左转。
小车右转,和左转原理一样,左轮速度快,右轮速度慢,就可以了。
直线变速前进,方向不变,逐渐改变输出PWM的占空比。
占空比逐渐增加,就是加速,占空比逐渐减小,就是减速。
二、实验任务:
1.
编写小车直线前进的程序,小车速度可调,改变小车速度。
小车速度共25档,也就是说,PWM周期共分为25等份。
调节速度就是控制高电平的占有时间即等份数。
2.
改变小车的运动方向,让小车后退,改变占空比,体验小车不同速度后退。
3.
控制小车左轮占空比小于右轮,下载程序,小车可以完成左转弯功能。
改变左右轮占空比的差距,观察小车的转弯幅度也会随之变化。
4.
控制小车右轮占空比小于左轮,重复任务3的步骤,小车就可以右转弯了。
接着重复任务3的实验内容。
5.
通过前面的4个任务,我们基本上已经具有控制小车完成基本工作的能力了,现在让我们来做点有挑战性的实验吧。
题目,小车实现变速功能,每1-2秒小车速度变化一次。
从速度零加速到最大速度,然后从最大速度逐渐减速到零,如此反复。
速度共分为25档。
三、实验源程序:
任务1源程序:
/*******************************************************************
公司名称:
盛方单片机
公司网址:
模块名称:
001.c
功能:
直行前进。
说明:
通过定时器0产生PWM调速。
程序设计:
tongwei
设计时间:
2009.09.13
版本号:
*********************************************************************/
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineMOTOR_CP0//P0口作为电机的控制口。
#definePERCENT3//占空比常量定义。
#defineSHELVES25//速度总档数。
sbitPWM_R=P0^7;
//右电机PWM输入口
sbitPWM_L=P0^2;
//左电机PWM输入口
#defineBACK0xC6//后退
#defineFORWARD0xA5//前进
voidtimer_init(void);
//定时器初始化函数。
voidforward(void);
//前进函数。
/********************************************************************
函数名:
timer_init()
初始化定时器0
无
入口参数:
返回值:
设计:
tongwei日期:
2009.09.13
修改:
日期:
***********************************************************************/
voidtimer_init(void)
{
TMOD=0x02;
//定时器0工作在方式2,定时值自动重载,启动仅受TR0的控制。
TH0=256-200;
//定时周期为200us*SHELVES
TL0=256-200;
EA=1;
//开总中断。
ET0=1;
//开定时器0中断。
TR0=1;
//启动定时器0。
}
/********************************************************************
forward()
小车直行函数。
无
2009.09.12
voidforward(void)
timer_init();
//定时器0初始化。
MOTOR_C=FORWARD;
//设置方向,前进
while
(1);
timer_zero()
定时器0中断服务函数
voidtimer_zero(void)interrupt1
staticuchartemp=0;
//中断次数计数,
EA=0;
//关总中断,屏蔽其他中断。
if(temp<
PERCENT)//高电平保持时间。
{
PWM_L=1;
//PWM高电平,11000110B
PWM_R=1;
temp++;
//实现计数
}
else
{
if(temp<
SHELVES)//低电平保持时间。
{
PWM_L=0;
//PWM低电平,01000010B
PWM_R=0;
temp++;
//实现计数
}
else//一个PWM周期结束,计数清零。
temp=0;
//开总中断。
main()
主函数
voidmain()
forward();
任务2源程序:
002.c
直行后退。
voidback(void);
//后退函数。
back()
voidback(void)
//定时器0初始化
MOTOR_C=BACK;
//设置方向,后退
back();
任务3源程序:
003.c
小车左转弯。
voidleft(void);
//左转弯函数。
ucharpercent_l=0;
//左轮占空比
ucharpercent_r=0;
//右轮占空比
left()
小车左转
通过控制左右轮不同的占空比,实现左右转。
voidleft(void)
//初始化定时器0。
//方向向前
percent_r=8;
//右轮速度快。
percent_l=5;
//左轮速度慢。
SHELVES)//高电平保持时间。
{
percent_l)
PWM_L=1;
//左电机高电平
else
//左电机低电平
percent_r)
PWM_R=1;
//右电机高电平
{
//右电机低电平
else//一个PWM周期结束,计数清零。
temp=0;
}
/*****************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 小车