微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 机器人教程3:直流电机驱动及L298N模块

机器人教程3:直流电机驱动及L298N模块

时间:12-01 来源:互联网 点击:

if(time>

if(time>

for(y=z;x>

for(y=110;y>

if(count>

if(count>

if(time>

3A,持续工作电流为2A;额定功率为25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电机和步进电机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个用控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机和四相步进电机,也可以两台直流电机。L298N模块的驱动电路图如图13所示。



图13 L298N电路图

对于以上电路图有以下几点说明:

1)电路图中有两个电流,一路为L298工作需要的5V电源VCC,一路为驱动电机用的电池电源VSS。

2)1脚和15脚有的电路在中间串接了大功率的电阻,可以不加

3)八个续流二极管是为了消除电机转动时的尖峰电压保护电机而设计,简化电路可以不加。

4)6脚和11脚为两路电机通道的使能开关,高电平使能所以可以直接接高电平,也可以交由单片机控制。

5)由于工作时L298的功率较大,可以适当加装散热片。

L298模块的的外形图如图14所示:



图14 L298N模块外形图

6、电机正反转程序

下面写一个程序让小车上一个电机正转。

#include

#define uint unsigned int

#define uchar unsigned char

sbit PWM1=P2^0;//接IN1控制正转

sbit PWM2=P2^1;//接IN2控制反转

void main()

{

while(1)

{

PWM1=1;

PWM2=0;

}

}

下面写一个程序让小车上两个个电机正转,实现小车的前行。

#include

#define uint unsigned int

#define uchar unsigned char

sbit PWM1=P2^0;//接IN1控制正转

sbit PWM2=P2^1;//接IN2控制反转

sbit PWM3=P2^2;//接IN1控制正转

sbit PWM4=P2^3;//接IN2控制反转

sbit PWM5=P2^4;//接IN1控制正转

sbit PWM6=P2^5;//接IN2控制反转

sbit PWM7=P2^6;//接IN1控制正转

sbit PWM8=P2^7;//接IN2控制反转

void main()

{

while(1)

{

PWM1=1;

PWM2=0;

PWM3=1;

PWM4=0;

PWM5=1;

PWM6=0;

PWM7=1;

PWM8=0;

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=500;y>0;y--);

}

7、双电机差速转向的原理

ZN-1A智能小车有两种转向的方式,差速转向和舵机转向。由于差速转向目前市面上的资料和相关程序比较多,所以本教程绝大部分程序采用后轮驱动,前轮舵机实现转向的控制方式。这里简要介绍一下差速转向的原理及方法,并给出一个简单的程序,更复杂的程序请大家参考相关的资料,如可以利用ZN-1A智能小车实现小车的直立运动,即两轮直立前行,目前世界上比较风行的两轮直代步车就是利用这种形式实现,不过要要做两轮直立时涉及到平衡的问题,需对加速度计和陀螺仪的知道有所了解,有兴趣朋友可以利用本小车实现直立的功能,这里不多作介绍。

所谓的差速,是指左右两车轮的速度差,假如左边车轮比右边的快,则小车会偏向右。同时,左的的车轮转速比右的慢,那么小车会向左边转动。目前主要有以下两种方式。

(1)小车向左转,可是是左轮停止,左轮继续转动,这样可实现左转,这种方式实现小角度的转弯,在角度不大时可采用此种方式。

(2)小车向左转,可以是左轮反转,右轮正转,这样可以实现大角度的左转,甚至可以进行原地打转。

同理可推出小车如何向右转向。

下面给出一个利用后轮电机差事运动实现小车原地打转的程序。

8、利用差速实现小原原地打转程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top