单片机L298N电机驱动板的几种不同电压使用场景

L298N电机驱动版主要由两个核心组件构成

  1. L298N 驱动芯片

  2. 78M05 稳压器

    模块参数:
    请添加图片描述
    模块端口示意图:

请添加图片描述

其中这个板载5V使能的这个跳线帽比较的复杂,其与稳压模块有关

稳压模块能否生效完全取决于5V使能跳帽是否启用(拔掉禁用、插入启用,默认是板载连通的),这里分两种情况,接通和未接通:

板载跳帽:

当电源小于或等于12V时,内部电路由稳压器供电,并且5V引脚作为微控制器供电的输出引脚,即:VCC作为7805的输入,5V是7805的输出,从而可以为板载提供5v电压,为外部电路供电使用
请添加图片描述

拔掉跳帽:

电源大于12V时拔掉跳帽,并且应通过5V端子单独为内部供电,此时5V端为输入。即:VCC不作为7805的输入,而+5v由外部电路提供,此时就需要两个供电电源,VCC和+5V

请添加图片描述

注意事项:

**7V<U<12V:**当使用驱动电压(上图标识为12V,实际可以接受的输入范围是 7-12V)为7V-12V的时候,可以使能板载(就是图中板载5V使能)的5V逻辑供电,当使用板载5V供电之后,接口中的+5V供电不要输入电压,如果强行供电,有可能会烧坏右侧电容,但可以直接5V电压供外部使用,一般引出来直接给开发板供电,比如:Arduino,51单片机

ps:上次我用4节干电池没有驱动起来,原来是电压不够。

**12V<U<=24V:**芯片手册中提出可以支持到35v,但是按照经验一般298保守应用最大电压支持到24V已经很牛了,如果要驱动额定电压为18V的电机,首先必须拔除板载5V输出使能的跳帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑电路供电。

对U的范围进行总结:

U<7V:12V端口输入电压供内部电路使用,缺点是12V输入的电压可能不足导致,电机转速不够

(这一种情况是我自己假设的,U<7V,理论上内部电路依旧是由稳压器供电,)

7V<U<12V:内部电路将由稳压器供电,5V端口为输出,不能强行供电

12V<U<=24V:12V端口输入高电压驱动电机,内部控制电路由外面从5V端口额外输入,板载5V使能跳线帽拔开,VCC不作为7805的输入。

请添加图片描述

电源引脚

VCC 外接直流电源引脚,电压范围在5~35V之间
GND GND是接地引脚,连接到电源负极
5V 驱动芯片内部逻辑供电引脚,如果安装了5V跳帽,则此引脚可输出5V电压,为微控板或其他电路提供电力供给,如果拔掉5V跳帽,则需要独立外接5V电源
请添加图片描述
控制引脚

  1. IN1 & IN2 电机驱动器A的输入引脚,控制电机A转动及旋转角度
    IN1输入高电平HIGH,IN2输入低电平LOW,对应电机A正转
    IN1输入低电平LOW,IN2输入高电平HIGH,对应电机A反转
    IN1、IN2同时输入高电平HIGH或低电平LOW,对应电机A停止转动
    调速就是改变IN1、IN2高电平的占空比(需拔掉ENA处跳帽)

  2. IN3 & IN4 电机驱动器B的输入引脚,控制电机B转动及旋转角度
    IN3输入高电平HIGH,IN4输入低电平LOW,对应电机B正转
    IN3输入低电平LOW,IN4输入高电平HIGH,对应电机B反转
    IN3、IN4同时输入高电平HIGH或低电平LOW,对应电机B停止转动
    调速就是改变IN3、IN4高电平的占空比(需拔掉ENB处跳帽)

输出引脚

  1. OUT1 & OUT2 电机驱动器A的输出引脚,接直流电机A或步进电机的A+和A-
  2. OUT3 & OUT3 电机驱动器B的输出引脚,接直流电机B或步进电机的B+和B-

调速控制引脚

  1. ENA 电机A调速开关引脚,拔掉跳帽,使用PWM对电机A调速,插上电机A高速运行(占空比100%)
  2. ENB 电机B调速开关引脚,拔掉跳帽,使用PWM对电机B调速,插上电机B高速运行(占空比100%)

关于电机调速这块

采用PWM调速,其原理是就是开关管在一个周期内电的导通时间为t,周期T内,则电机两端的平均电压U=Vcc*(t/T)=a Vcc。其中a=t/T,也称占空比,Vcc是电源电压,电机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转速越快,详细可看文末:电机驱动原理调速PWM。

官方示例源码:
#include<reg52.h>
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
void delay(unsigned int z);
void delay_us(unsigned int aa);
/*******************Ö÷º¯Êý**************************/
void main()
{
	while(1)
	{	
/******************°´Ò»¶¨Õ¼¿Õ±Èת¶¯************************/
//ת¶¯ÖÜÆÚΪ20		
		unsigned int i,cycle=0,T=2048;
		IN1=1;      //Õýת
		IN2=0;
		for(i=0;i<200;i++)
		{
			delay(10);//PWMÕ¼¿Õ±ÈΪ50%£¬ÐÞ¸ÄÑÓʱµ÷ÕûPWMÂö³å
			ENA=~ENA;
		}
//ת¶¯ÖÜÆÚΪ40
		IN1=0;      //·´×ª
		IN2=1;
		for(i=0;i<100;i++)
		{
			delay(20);//PWMÕ¼¿Õ±ÈΪ50%£¬ÐÞ¸ÄÑÓʱµ÷ÕûPWMÂö³å
			ENA=~ENA;
		}
		
/******************×Ô¶¯¼ÓËÙÕýת************************/		
//ÿ¸öPWMÖÜÆÚΪ2048us
		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);
		
		}
	}		
}
/******************zÃëÑÓʱº¯Êý*************************/
void delay(unsigned int z)
{
	unsigned int x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
/****************΢ÃîÑÓʱ******************************/
void delay_us(unsigned int aa)
{
	while(aa--);	
}

参考博文:
想看更加详细L298N芯片说明,点击这里

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值