L298N驱动模块详解与代码
使能:开关
跳线帽:内部有金属接线,使用跳线帽在使能时,该开关短路,使能关闭
注意:电机与51单片机的接地点应接到一处
另:因为51单片机的电源是5v,可以将模块上的5V输出给到51单片机,就可以不用再另给51单片机连接一个电源
使能:开关
跳线帽:内部有金属接线,使用跳线帽在使能时,该开关短路,使能关闭
pwm频率:每秒钟信号从高电平到低电平再回到高电平的次数(频率高低与输出响应的速度相关)
占空比:高电平持续时间占总周期的比例
程序设计:
//此程序的目的是进行占空比为30%的一个使用pwm调速法控制的电机 pwm频率为1000hz也就是1ms,我们选择一次定时中断用时0.01ms,一共要100次中断才达到1ms,设置初值方面,因为晶振频率约为12mhz,所以一个机械周期约为1us也就是0.001ms,以此对应设置初值。
#include<reg52.h> void main() { ENA = 1; IN1 = 0; IN2 = 1; //正转 set(); while(1) { } } void set() { TMOD=0x01;//定时器0工作方式1 TH0=a;//(65536-100)/256;//赋初值定时 TL0=b;//(65536-100)%256;//0.01ms EA=1;//开总中断 ET0=1;//开定时器0中断 TR0=1;//启动定时器0 } void tim0() interrupt 1 { TR0=0;//赋初值时,关闭定时器 TH0=a;//(65536-10)/256;//赋初值定时 TL0=b;//(65536-10)%256;//0.01ms TR0=1;//打开定时器 time++; if(time>=100) //1khz time=0; if(time<=30) //占空比%30,可改 IN1 = 0,IN2 = 1; else IN1 = 1,IN2 = 0; }
0,IN2 = 1;
else
IN1 = 1,IN2 = 0;
}
此处也可以使用定时中断方式2,但需要修改初值可以被256整除.