如下图所示为L298N焊接的供电板子,怎么用呢?
首先,介绍下上面的接口部分,一共五个部分。
●第一部分: L298N芯片。这就 不用多说了,上有很多关于这个芯片的资料,我就不多说了。
●第二部分: A1 、A2、 B1、 B2四个接口分别用来连接直流电动机或者是步进电机。A1和A2是一组,驱动一个电机。B1和B2一组驱动另一个电机。
●第三部分: VDD接口,可以接一个六节1.5V的五号电池的正极。(右边那个GND是共地端,要将你用的开发板的GND和这个仪器接上,同时也是电源的共地接口)
●第四部分: 节四节1.5V五号电池的正极。负极接GND。
●第五部分: 这里一共有六个接口:
●
1.ENA 使能A1、A2的接口,也就是说如果ENA不接高电平,那么A1、A2驱动的电机是不可能可以驱动的。
2 ENB 同上。
3A1、A2、B1、B2 你可以用你的开发板的四个I\\O口接它们,它们的高低电平将直接影响到第二部分输出的高低电平(经过芯片的放大,这是的电压已经很高了,这就是作用)。如果你想驱动电机A运转,可以在A1上加高电平A2上加低电平 。这样电机就有了电势差,就可以云装了,调整电势差可以改变正传反转和加减速(PWM来控制)。
下面上源码,源码收集于网上,原著不详,现回馈大家。
#include #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; 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){} } //时钟0中断处理函数 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; } //时钟1中断处理函数 void time1_int() interrupt 3 using 1 { TR1=0; TH1=0xF4; TL1=0x48; MB=MB + 1; if(MB < SpeedB){ ENB=1; } else ENB = 0; if(MB == 40){ MB = 0; } TR1 = 1; }下载本文