《51单片机的L298N直流电机驱动(PWM)》由会员分享,可在线阅读,更多相关《51单片机的L298N直流电机驱动(PWM)(3页珍藏版)》请在金锄头文库上搜索。
1、51单片机的直流电机驱动如下图所示为L298N焊接的供电板子,怎么用呢?首先,介绍下上面的接口部分,一共五个部分。l 第一部分: L298N芯片。这就 不用多说了,百度文库上有很多关于这个芯片的资料,我就不多说了。l 第二部分: A1 、A2、 B1、 B2四个接口分别用来连接直流电动机或者是步进电机。A1和A2是一组,驱动一个电机。B1和B2一组驱动另一个电机。l 第三部分: VDD接口,可以接一个六节1.5V的五号电池的正极。(右边那个GND是共地端,要将你用的开发板的GND和这个仪器接上,同时也是电源的共地接口)l 第四部分: 节四节1.5V五号电池的正极。负极接GND。l 第五部分:
2、这里一共有六个接口:l1.ENA 使能A1、A2的接口,也就是说如果ENA不接高电平,那么A1、A2驱动的电机是不可能可以驱动的。 2 ENB 同上。 3A1、A2、B1、B2 你可以用你的开发板的四个IO口接它们,它们的高低电平将直接影响到第二部分输出的高低电平(经过芯片的放大,这是的电压已经很高了,这就是作用)。如果你想驱动电机A运转,可以在A1上加高电平A2上加低电平 。这样电机就有了电势差,就可以云装了,调整电势差可以改变正传反转和加减速(PWM来控制)。下面上源码,源码收集于网上,原著不详,现回馈大家。#include#define uchar unsigned char#defin
3、e uint unsigned intsbit INPUT1 = P10; /控制口sbit INPUT2 = P11;sbit INPUT3 = P12;sbit INPUT4 = P13;sbit ENA = P14; /产生PWM波sbit ENB = P15;uint MA=0,MB=0;uint SpeedA=20;/50%占空比uint SpeedB=20;void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=125;y0;y-); void main(void)delay(1000);delay(1000);INPUT1=1;INPUT2
4、=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 1TR0=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 1TR1=0;TH1=0xF4;TL1=0x48;MB=MB + 1;if(MB SpeedB) ENB=1;else ENB = 0;if(MB = 40) MB = 0;TR1 = 1;