首页 > 范文大全 > 正文

L298N控制直流电机正反转

开篇:润墨网以专业的文秘视角,为您筛选了一篇L298N控制直流电机正反转范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:在分析了直流电机驱动芯片 l298n 的性能、结构的基础上,结合 SPCE061A EMU BOARD单片机(61板),介绍实现驱动直流电机的转正反一种简单方法.文中给出了控制原理图,还给出来了控制直流电机反转驱动程序。实际测试表明,利用该方法设计的直流电机驱动系统具有硬件结构简单、软件编程容易。

关键词:直流电机 单片机 L298N

一、背景介绍

(一)预备知识

1.熟悉凌阳单片机的工作原理。

2.熟悉键盘扫描原理和L298n驱动电机原理。

3.熟悉汇编语言及C语言。

(二)直流电机控制原理

对于普通直流电机,其控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。PWM调速就是使加在直流电机两端的电压为方波形式,加在电机两端的电压就在VLoad和0V之间不停的跳变,对应的电机电压波形如图 1 所示:

此时加在电机两端的平均电压Uo=Th/(Th+Tl)*VLoad,可以通过调整PWM的占空比来改变Th和Tl的比值。这样就可以通过PWM调节加在电机两端的平均电压,从而改变电机的转速。与步进电机类似,不能将单片机的I/O直接与直流电机的引线相接,而要在二者之间增加驱动电路。也可利用L298N电机驱动芯片实现直流电机驱动(注:我们小组在本次试验中采用L298N芯片驱动直流电机正反转)。

(三)L298N芯片资料

恒压恒流桥式2A驱动芯片L298N:

L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。

L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。

L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5―7 V电压。4脚VS接电源电压,VS电压范围VIH为+2.5―46 V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。In3,In4的逻辑图与表1相同。由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。

二、设计目的

(1)熟悉凌阳十六位单片机系统板-61板的基本构成和使用方法;(2)了解直流电机的原理及控制方法;(3)掌握 SPCE061A的I/O、定时器等操作方法;(4)掌握单片机的一般编程技巧;(5)掌握61板系统调试的一般步骤及方法。

三、设计题目

(1)利用定义好的键,控制直流电机的正转、反转和停止;(2)在电机停转状态下,按KEY1键使电机正向转动,按KEY2键使电机反向转动;(3)按KEY3键使电机停止转动;(4)可利用自己的实验板和外扩电路(面包板)完成。

四、设计说明

(一)系统设计

根据设计题目的要求分析,系统分成两个部分:

1.直流电机驱动和控制。

2.按键控制。

根据系统的功能现选择61板作为单片机控制处理部分,而按键采用61板上自带的三个按键(键值给IOB,再从IOB给IOA口,A口给信号给芯片,从而芯片驱动电机);直流电机驱动则利用L298N芯片实现(L298N芯片驱动电机比较简单)。

(二)硬件原理

61 板电路原理图请参考相关教材。

L298N驱动过程:5和7给高低电平,out1和out2分别将高低电平给直流电机的正负极,以控制正反转(具体的参看表1)。4,9,8分别接地,ENA为使能端也是给高电平的。

(三)系统连接

采用凌阳大学计划的电机控制模组和61板搭配可以很容易的完成这个课程设计的题目。用10针排线将IOB与键盘模组的KEYTYPE连接。IOA与芯片的相应拐角连接,具体的参看图2

五、软件流程图

六、程序

实验代码:

_main:

r1=0x01ff; [P_IOA_Dir]=r1; [P_IOA_Attrib]=r1;r1=0x0100;[P_IOA_Data]=r1;r1=0x0040;[P_IOB_Dir]=r1;[P_IOB_Attrib]=r1

[P_IOB_Data]=r1;

Loop:

call F_KeyScan //读键盘 ;r1=[Key];cmp r1,0x0000;je Loop_1;

r1=r1 lsr 4 //r1右移8位;r1=r1 lsr 4

r1=r1|0x01f0 //4、5、6、7位输出高电平。提供芯片供电及使能电压

[P_IOA_Data]=r1//IOA0、1位输出给L298N的IN1和IN2,控制电机正反转

Loop_1:

r1=0x0001;[P_Watchdog_Clear]=r1;jmp Loop //清看门狗

.PUBLIC F_KeyScan //键盘扫描子程序

F_KeyScan:

r1=[P_IOB_Data] //键盘值给r1

r1=r1&0xff00;jz Return //为零表示无按键动作,返回

call F_Delay//延迟消抖;r2=[P_IOB_Data] //再取一次用于比较

r2=r2&0xff00;cmp r1,r2

je Return //若r1等于r2则返回r1值给主程序,若不想等清零r1后返回

r1=0x0000;Return:[Key]=r1;retf

.PUBLIC F_Delay//延时程序

F_Delay:r3=0x2fff;Loop_2:r4=0x0001;[P_Watchdog_Clear]=r4;r3-=1

jz Exit;jmp Loop_2;Exit:retf

七、可扩展题目

(一)功能描述

(1)操作时增加语音提示;(2)改进为语音控制;(3)数码管实时显示电机转速。

(二)方案论证

(1)61板播放语音;(2)语音识别;(3)利用两位LED显示完全可以。

参考文献:

[1] 罗亚非,等.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社.2003.

[2] 汪敏.凌阳16位单片机实验与实践[M].北京:北京航空航天大学出版社.2007.

注:“本文中所涉及到的图表、公式、注解等请以PDF格式阅读”