L298N电机驱动使用说明
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引脚说明:
VCC 电源电压正极输入
GND 电源电压负极输入
VCC5 板载 5V 输出 IN1 控制信号输入端 1 用于控制 OUT1 输出 IN2 控制信号输入端 2 用于控制 OUT2 输出 IN3 控制信号输入端 3 用于控制 OUT3 输出 IN4 控制信号输入端 4 用于控制 OUT3 输出 EN1 第一组输出使能端(OUT1 OUT2),高电平使能 EN2 第二组输出使能端(OUT3 OUT4),高电平使能 OUT1 输出信号 1 输出端,与右边第一个接线端子相连 OUT2 输出信号 2 输出端,与右边第二个接线端子相连 OUT3 输出信号 3 输出端,与右边第三个接线端子相连 OUT4 输出信号 4 输出端,与右边第四个接线端子相连
TR1=0; TH1=0xF4; TL1=0x48; MB=MB + 1; if(MB < SpeedB){
ENB=1; } else ENB = 0; if(MB == 40){
MB = 0; } TR1 = 1; }
附录 2:步进电机驱动例程 C 语言
#include<reg52.h>
#define uchar unsigned char #define uint unsigned int
uint MA=0,MB=0; uint SpeedA=20;//50%占空比 uint SpeedB=20;
void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=125;y>0;y--);
}
void main(void) {
delay(1000) ; delay(1000) ; INPUT1=1; INPUT2=0; INPUT3=1; INPUT4=0; TH0 = 0xF4; TL0 = 0x48; TH1 = 0xF4; TL1 = 0x48; TMOD = 0x11; TR0 = 1; TR1 = 1; ET0 = 1; ET1 = 1; EA = 1; while(1){}
} }
L298N 驱动模块用户说明 版本号:V1.1
模块简介:NewWay 的 L298N 模块能够驱动 2 路直 流ຫໍສະໝຸດ Baidu机,1 路四线步进电机。技术参数如下:
1.驱动芯片:L298N 双 H 桥直流电机驱动芯片 2.驱动部分端子供电范围 Vs:+5V~+46V 3.驱动部分峰值电流 Io:2A*2 4.逻辑部分端子供电范围 Vss:+5V~+7V(可板内取电+5V) 5.逻辑部分工作电流范围:0~36mA 6.控制信号输入电压范围:
}
void time0_int() interrupt 1 using 1 {
TR0=0; TH0=0xF4; TL0=0x48; MA++; if(MA< SpeedA){
ENA = 1; } else ENA = 0; if(MA == 40){
MA = 0; } TR0 = 1; }
void time1_int() interrupt 3 using 1 {
void delay(uint z) //延时函数:z 的单位是 ms {
uint x,y; for(x=z;x>0;x--)
for(y=125;y>0;y--); }
void turnangle(long int angle,unsigned char direction,unsigned int speed) //angle 为转过的角度, direction 为转动方向 {
低电平:-0.3V≤Vin≤1.5V 高电平:2.3V≤Vin≤Vss
7.使能信号输入电压范围: 低电平:-0.3≤Vin≤1.5V(控制信号无效) 高电平:2.3V≤Vin≤Vss(控制信号有效)
8.最大功耗:25W(温度 T=75℃时) 9.正常工作温度:-25℃~+130℃ 10.驱动板尺寸:60mm×54mm 11.驱动板重量:32g 12.其他扩展:特设电流反馈检测接口、控制方向指示灯、上拉电阻 选择接口、逻辑部分板内取电接口。
sbit ENA = P1^0; //产生 PWM 波 sbit ENB = P1^1; sbit INPUT1 = P1^2; //控制口 sbit INPUT2 = P1^3;
sbit INPUT3 = P1^4; sbit INPUT4 = P1^5;
uchar k=0,z=0; uint y; unsigned char code STEP_TABLE1[4]={0x27,0x17,0x1b,0x2b};//电机转动参数 unsigned char code STEP_TABLE2[4]={0x27,0x2b,0x1b,0x17};//电机转动参数
对于直流电机调速,我们也可以运用使能端,把 PWM 波通入使能端, 根据占空比的不同,我们可以得到不同的速度(具体参考我们所给的 51 程序) 注意事项: 1.如果接入的电压超过 16V ,,自己给模块 VCC5 端通入 5V 电压, 并且把 5V 使能跳帽拿下。 2.打开开关前检查正负极有无接错,如果接错电源指示灯是不会亮 的。 3.驱动板上有个 VCC 字样的插口,我们已经用跳帽封住,这个接口 是提供电源电压的,并不是提供 5V 输出的,请勿接错。
立
z++;
if(z==4)z=0;
}
break;
case 2:
angle = angle*5/9; //每转一下 1.8 度
for(i=0;i<angle;i++){
P1 = STEP_TABLE2[k];
for(y=speed;y>0;y--); //延时一点时间,让电机内的磁场能够
建立
k++;
if(k==4)k=0;
限流跳帽:此端子接上为不限流,拿下为限流,限流即限制模块输出 的最大电流,如果您使用 L298N 是发现模块自激,请拔下此跳帽。
使用技巧: L298N 带有 2 路使能端,高电平有效,我们设计的 L298N 模块在使 能端旁边都有 1 路 5V 输出,如果想让模块一直使能,可以用跳帽把 使能和 5V 输出相连即可(可以把 VCC,GND 保护跳帽拿下使用)。
附录 1:直流电机驱动例程 C 语言
#include<reg51.h> #define uchar unsigned char #define uint unsigned int
sbit INPUT1 = P1^0; //控制口 sbit INPUT2 = P1^1; sbit INPUT3 = P1^2; sbit INPUT4 = P1^3; sbit ENA = P1^4; //产生 PWM 波 sbit ENB = P1^5;
}
break;
default: break;
}
}
void main(void) {
while(1){ turnangle(180000,2,205); delay(5000); turnangle(72000,2,300); delay(5000); turnangle(252000,1,205); delay(5000);
uchar i;
ENA = 1; //打开输出使能
ENB = 1;
switch(direction)
{
case 1:
angle = angle*5/9; //每转一下 1.8 度
for(i=0;i<angle;i++){
P1 = STEP_TABLE1[z];
for(y=speed;y>0;y--); //延时一点时间,让电机内的磁场能够建
VCC 电源电压正极输入
GND 电源电压负极输入
VCC5 板载 5V 输出 IN1 控制信号输入端 1 用于控制 OUT1 输出 IN2 控制信号输入端 2 用于控制 OUT2 输出 IN3 控制信号输入端 3 用于控制 OUT3 输出 IN4 控制信号输入端 4 用于控制 OUT3 输出 EN1 第一组输出使能端(OUT1 OUT2),高电平使能 EN2 第二组输出使能端(OUT3 OUT4),高电平使能 OUT1 输出信号 1 输出端,与右边第一个接线端子相连 OUT2 输出信号 2 输出端,与右边第二个接线端子相连 OUT3 输出信号 3 输出端,与右边第三个接线端子相连 OUT4 输出信号 4 输出端,与右边第四个接线端子相连
TR1=0; TH1=0xF4; TL1=0x48; MB=MB + 1; if(MB < SpeedB){
ENB=1; } else ENB = 0; if(MB == 40){
MB = 0; } TR1 = 1; }
附录 2:步进电机驱动例程 C 语言
#include<reg52.h>
#define uchar unsigned char #define uint unsigned int
uint MA=0,MB=0; uint SpeedA=20;//50%占空比 uint SpeedB=20;
void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=125;y>0;y--);
}
void main(void) {
delay(1000) ; delay(1000) ; INPUT1=1; INPUT2=0; INPUT3=1; INPUT4=0; TH0 = 0xF4; TL0 = 0x48; TH1 = 0xF4; TL1 = 0x48; TMOD = 0x11; TR0 = 1; TR1 = 1; ET0 = 1; ET1 = 1; EA = 1; while(1){}
} }
L298N 驱动模块用户说明 版本号:V1.1
模块简介:NewWay 的 L298N 模块能够驱动 2 路直 流ຫໍສະໝຸດ Baidu机,1 路四线步进电机。技术参数如下:
1.驱动芯片:L298N 双 H 桥直流电机驱动芯片 2.驱动部分端子供电范围 Vs:+5V~+46V 3.驱动部分峰值电流 Io:2A*2 4.逻辑部分端子供电范围 Vss:+5V~+7V(可板内取电+5V) 5.逻辑部分工作电流范围:0~36mA 6.控制信号输入电压范围:
}
void time0_int() interrupt 1 using 1 {
TR0=0; TH0=0xF4; TL0=0x48; MA++; if(MA< SpeedA){
ENA = 1; } else ENA = 0; if(MA == 40){
MA = 0; } TR0 = 1; }
void time1_int() interrupt 3 using 1 {
void delay(uint z) //延时函数:z 的单位是 ms {
uint x,y; for(x=z;x>0;x--)
for(y=125;y>0;y--); }
void turnangle(long int angle,unsigned char direction,unsigned int speed) //angle 为转过的角度, direction 为转动方向 {
低电平:-0.3V≤Vin≤1.5V 高电平:2.3V≤Vin≤Vss
7.使能信号输入电压范围: 低电平:-0.3≤Vin≤1.5V(控制信号无效) 高电平:2.3V≤Vin≤Vss(控制信号有效)
8.最大功耗:25W(温度 T=75℃时) 9.正常工作温度:-25℃~+130℃ 10.驱动板尺寸:60mm×54mm 11.驱动板重量:32g 12.其他扩展:特设电流反馈检测接口、控制方向指示灯、上拉电阻 选择接口、逻辑部分板内取电接口。
sbit ENA = P1^0; //产生 PWM 波 sbit ENB = P1^1; sbit INPUT1 = P1^2; //控制口 sbit INPUT2 = P1^3;
sbit INPUT3 = P1^4; sbit INPUT4 = P1^5;
uchar k=0,z=0; uint y; unsigned char code STEP_TABLE1[4]={0x27,0x17,0x1b,0x2b};//电机转动参数 unsigned char code STEP_TABLE2[4]={0x27,0x2b,0x1b,0x17};//电机转动参数
对于直流电机调速,我们也可以运用使能端,把 PWM 波通入使能端, 根据占空比的不同,我们可以得到不同的速度(具体参考我们所给的 51 程序) 注意事项: 1.如果接入的电压超过 16V ,,自己给模块 VCC5 端通入 5V 电压, 并且把 5V 使能跳帽拿下。 2.打开开关前检查正负极有无接错,如果接错电源指示灯是不会亮 的。 3.驱动板上有个 VCC 字样的插口,我们已经用跳帽封住,这个接口 是提供电源电压的,并不是提供 5V 输出的,请勿接错。
立
z++;
if(z==4)z=0;
}
break;
case 2:
angle = angle*5/9; //每转一下 1.8 度
for(i=0;i<angle;i++){
P1 = STEP_TABLE2[k];
for(y=speed;y>0;y--); //延时一点时间,让电机内的磁场能够
建立
k++;
if(k==4)k=0;
限流跳帽:此端子接上为不限流,拿下为限流,限流即限制模块输出 的最大电流,如果您使用 L298N 是发现模块自激,请拔下此跳帽。
使用技巧: L298N 带有 2 路使能端,高电平有效,我们设计的 L298N 模块在使 能端旁边都有 1 路 5V 输出,如果想让模块一直使能,可以用跳帽把 使能和 5V 输出相连即可(可以把 VCC,GND 保护跳帽拿下使用)。
附录 1:直流电机驱动例程 C 语言
#include<reg51.h> #define uchar unsigned char #define uint unsigned int
sbit INPUT1 = P1^0; //控制口 sbit INPUT2 = P1^1; sbit INPUT3 = P1^2; sbit INPUT4 = P1^3; sbit ENA = P1^4; //产生 PWM 波 sbit ENB = P1^5;
}
break;
default: break;
}
}
void main(void) {
while(1){ turnangle(180000,2,205); delay(5000); turnangle(72000,2,300); delay(5000); turnangle(252000,1,205); delay(5000);
uchar i;
ENA = 1; //打开输出使能
ENB = 1;
switch(direction)
{
case 1:
angle = angle*5/9; //每转一下 1.8 度
for(i=0;i<angle;i++){
P1 = STEP_TABLE1[z];
for(y=speed;y>0;y--); //延时一点时间,让电机内的磁场能够建