单片机|L298N、电机、单片机的线路连接

一、首先来介绍一下L298N板载位置的功能: 单片机|L298N、电机、单片机的线路连接
文章图片

二、几种供电方式。 1、L298N供电驱动5V的小马达时:
供电:L298N的12V和5V都接5V供电,GND不但要接驱动电源的GND(如果是和别的单片机或者其他系统连接在一起的时候,一定要从这里再引出一根GND和单片机或者系统的GND相连,使电压有参考电平)

逻辑输入:IN1和IN2为一组,对应OutA(输出A);
【单片机|L298N、电机、单片机的线路连接】IN3和IN4为一组,对应OutB(输出B)。
以左边马达为例当IN1=0,IN2=1时为正转。IN1=1,IN2=0时为反转。待机则全为0,刹车则全为1
单片机|L298N、电机、单片机的线路连接
文章图片

(不建议该方法,可能发生提供电压较小,电机转速不足的情况)
2、电源输入7~12V电压时,5v的位置不用接电源,该位置可输出一个5v,用于给单片机供电,L298N的GND接单片机的GND,( 否则没有参考电压,不能进行正常控制 )。
单片机|L298N、电机、单片机的线路连接
文章图片

(强烈建议使用该方法) 3、当输入电压大于12v时,需要拔掉电源旁的跳线帽,5V端需要接入5v的电压,GND还是接GND
单片机|L298N、电机、单片机的线路连接
文章图片

拔掉跳线帽原因:用5V电源给芯片供电。如果不断开板载使能跳线帽的话,可能会损坏内置的7805的稳压芯片。
三、L298n的驱动(以通道A为例) 单片机|L298N、电机、单片机的线路连接
文章图片

3.1 对于逻辑输入引脚IN1、IN2
控制电机的正反转,将其接在单片机的I/O口上控制即可。
单片机|L298N、电机、单片机的线路连接
文章图片

3.2 对于ENA,通道使能引脚。
若不考虑电机的转速,可接为高电平或低电平控制接通还是关断,上图就是通过一个跳线帽接到高电平使能。
若需要控制电机的转速,可将其连接在PWM输出上,通过调节PWM的占空比,以此来达到控制转速的目的。

/* **************************************************** // 硬件连接:P1.0----IN1 //P1.1----IN2 //P1.2----ENA //电机两端分别接OUT1和OUT2 **************************************************** */ #include #define uchar unsigned char #define uint unsigned int sbit IN1=P1^0; sbit IN2=P1^1; sbit ENA=P1^2; uchar k; uint cycle=0,T=2048; void delay_ms(uchar z); void delay_us(uint n); /*******************主函数**************************/ void main() { while(1) { cycle=0; IN1=1; //正转 IN2=0; for(k=0; k<200; k++) { delay_ms(10); //PWM占空比为50%,修改延时调整PWM脉冲 ENA=~ENA; }IN1=0; //反转 IN2=1; for(k=0; k<200; k++) { delay_ms(10); //PWM占空比为50%,修改延时调整PWM脉冲 ENA=~ENA; }IN1=1; //自动加速正转 IN2=0; while(cycle!=T) { ENA=1; delay_us(cycle++); ENA=0; delay_us(T-cycle); }IN1=0; //自动减速反转 IN2=1; while(cycle!=T) { ENA=1; delay_us(cycle++); ENA=0; delay_us(T-cycle); } } } /******************毫秒延时函数*************************/ void delay_ms(uchar z) { uchar i,j; for(i=z; i>0; i--) for(j=110; j>0; j--); } /****************微秒延时函数******************************/ void delay_us(uint n) { while(n--); }


    推荐阅读