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整除.
|