直流电机+L298N电机驱动模块

本次来写一下关于驱动直流电机的知识,今天目的是驱动它,下次写使用PWM精准的对直流电机进行控速。下面是我使用的直流电机图:

由于STM32单片机不能直接的输出较大电压和电流,所以得借助驱动模块来控制电机,我们使用的L298N电机驱动模块来驱动电机,当然也可以使用TB6612,L293D,ULN2003等电机驱动模块,他们原理都是一样的,会一个其他的都可以信手拈来。下面是L298N的图:

一个L298N电机驱动模块可以控制两个直流电机或者一个两相步进电机。支持两个电压的供电模式,5V或者12V。由于没有5V,12V的电源,所以我们用了15V的电源进行降压处理后为5V给其供电。使用5V的电压也是因为可以直接给单片机直接供电,可以将单片机与电脑分离开来。如果没有电源的话,也可以直接使用单片机5V电压给电机驱动模块提供电压。降压模块如下图,使用DC-DC模块焊的一个电路板。(其实电源就是12V的只是为了多加一个模块)DC-DC模块用时一定分清正负,要不然电容会炸的。黄色的纽扣扭动可以调节输出电压。

接下来是我驱动直流电机的整体图:

驱动电机的代码如下(我直接用的我们刚做完项目的代码,没有改,只需要使用PB5、PB6就好):

power.h

#ifndef __POWER_H
#define __POWER_H	 
#include "sys.h"

#define PB5 PBout(5)	
#define PB6 PBout(6)	
#define PB7 PBout(7)	
#define PB8 PBout(8)
#define PB9 PBout(9)	
#define PB10 PBout(10)	
#define PB11 PBout(11)	
#define PB12 PBout(12)
#define PB13 PBout(13)	
#define PB14 PBout(14)	
#define PB15 PBout(15)
void POWER_Init(void);
void goon(void);
void back(void);
void right(void);
void left(void);
 				    
#endif

power.c

#include "power.h"

void POWER_Init()
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);	 	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;				 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		
 GPIO_Init(GPIOB, &GPIO_InitStructure);					 
 GPIO_ResetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
}
 
void goon(void)
{
    PB5 =1;
	PB6 =0;

}

完了直接在主函数里面调用就好:

int main(void)
 {	

	 delay_init();
	 POWER_Init();

	while(1)
	{
		goon();
	};
}

有什么问题下面留言,一起讨论解决。

版权声明:本文为CSDN博主「Linux bsping」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46199479/article/details/117385231

生成海报
点赞 0

Linux bsping

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

暂无评论

发表评论

相关推荐

RT-Thread Studio移植LAN8720A驱动

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

Lin总线通信在STM32作为主机代码以及从机程序

距离上次做资料准备已经过去六天了。最近在学车,上周末就没有开电脑。这周开始进行了Lin通信的代码整理,目前是可以正常通信的了,采用的是增强型校验方式。后期再进一步跟进研究。。。更新一博,留

4路红外循迹模块使用教程

4路红外循迹模块使用教程 个人原创博客:点击浏览模块详细信息: 工作电压:DC 3.3V~5V 工作电流:尽量选择1A以上电源供电 工作温度:-10℃~50℃ 安装孔

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

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