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

一、首先来介绍一下L298N板载位置的功能:

二、几种供电方式。

1、L298N供电驱动5V的小马达时:

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

逻辑输入:IN1IN2为一组,对应OutA(输出A);

             IN3IN4为一组,对应OutB(输出B)。

以左边马达为例当IN1=0,IN2=1时为正转。IN1=1,IN2=0时为反转。待机则全为0,刹车则全为1

                            

(不建议该方法,可能发生提供电压较小,电机转速不足的情况)

2、电源输入7~12V电压时,5v的位置不用接电源,该位置可输出一个5v,用于给单片机供电,L298N的GND接单片机的GND,( 否则没有参考电压,不能进行正常控制 )。

                   

(强烈建议使用该方法)

3、当输入电压大于12v时,需要拔掉电源旁的跳线帽,5V端需要接入5v的电压,GND还是接GND

拔掉跳线帽原因:用5V电源给芯片供电。如果不断开板载使能跳线帽的话,可能会损坏内置的7805的稳压芯片。

三、L298n的驱动(以通道A为例)

3.1 对于逻辑输入引脚IN1、IN2

       控制电机的正反转,将其接在单片机的I/O口上控制即可。

3.2 对于ENA,通道使能引脚。

若不考虑电机的转速,可接为高电平或低电平控制接通还是关断,上图就是通过一个跳线帽接到高电平使能。

若需要控制电机的转速,可将其连接在PWM输出上,通过调节PWM的占空比,以此来达到控制转速的目的。

/*
****************************************************
//	硬件连接:P1.0----IN1
//			  P1.1----IN2
//            P1.2----ENA
//			  电机两端分别接OUT1和OUT2
****************************************************
*/ 
#include<reg52.h>
#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--);	
}


版权声明:本文为CSDN博主「最穷不过要饭、不死总会出头」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59113542/article/details/121038048

生成海报
点赞 0

最穷不过要饭、不死总会出头

我还没有学会写个人说明!

暂无评论

相关推荐

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配

stm32cubemx+HAL+串口接收中断

stm32cubemxHAL串口接收中断 在cubemx配置完串口和global interrupt后需要在keil中添加如下代码。 第一步:在main函数中添加接收中断标志位开启函数 HAL_UART_Receive_IT