stm32智能避障小车(三)之L298N

这篇博客详细介绍了L298N电机驱动在避障小车中的应用,包括实物展示、工作原理及代码实现。通过讲解L298N的各部分功能,如输出通道、使能引脚、逻辑输入,阐述如何控制马达的正反转和停止。同时,分享了单片机配置IO引脚和控制逻辑的代码片段,并提供了完整的避障小车源码下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一篇呢是介绍L298N电机驱动的,包括实物讲解,模块原理,代码讲解

1、实物讲解
首先看看模块的样子
在这里插入图片描述然后依次介绍每个部分:从左至右,由上到下,
1、输出A:可以看到输出A和B都有两个螺丝接线,每个正好接马达的正负,如何判断是哪个是正呢?正对输出口的YOU边是正。
2、板载5v使能:这是个跳线帽,可选项,接上表示不用5v供电,如果拔掉的话就需要5v供电了;
3、12v供电:这个供电是必须的,我用的是两节18650充电电池。
4、供电GND:这个不用说,就是电池的负极,注意这里,单片机的GND也需要连接这个,否则马达不会转动。
5、5v供电:这个也可以作为输出口,为我们的单片机来供电。
6、通道A使能:这个是使能输出A的,也要跳线帽连接,否则A侧马达不转,个人觉得没有什么用。
7、通道B使能:同A
8、逻辑输入:这里的逻辑输入有4个引脚:IN1,IN2.IN3,IN4,由这些引脚的电平状态来控制两个马达的正转,反转,停止。详细的介绍见下表。
9、输出B:同输出A。

IN1IN2电机A状态IN3IN4电机B状态小车状态
正转正转前进
正转反转右转
正转停止右转
反转正转左转
反转反转后退
反转停止左转
停止正转右转
停止反转左转
停止停止停止

注意:我的l298n黑色部分靠近车头,得出的表格。
2、模块原理
我们想让小车前进,转向,后退,那么就需要单片机控制这四个IN引脚的高低实现我们想要的功能。
3、代码讲解
配置单片机的IO引脚均为推挽输出模式:

void L298N_IN_Init ( void )
{		
	/*定义一个GPIO_InitTypeDef类型的结构体*/
	GPIO_InitTypeDef GPIO_InitStructure;
	/* 配置 LED1 引脚 */
	RCC_APB2PeriphClockCmd ( IN1_GPIO_CLK, ENABLE ); 															   
	GPIO_InitStructure.GPIO_Pin = IN1_GPIO_PIN;	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_Init ( IN1_GPIO_PORT, & GPIO_InitStructure );	

	/* 配置 LED2 引脚 */
	RCC_APB2PeriphClockCmd ( IN1_GPIO_CLK, ENABLE ); 														   
	GPIO_InitStructure.GPIO_Pin = IN2_GPIO_PIN;	
	GPIO_Init ( IN2_GPIO_PORT, & GPIO_InitStructure );	

	/* 配置 LED3 引脚 */
	RCC_APB2PeriphClockCmd ( IN1_GPIO_CLK, ENABLE ); 															   
	GPIO_InitStructure.GPIO_Pin = IN3_GPIO_PIN;	
	GPIO_Init ( IN3_GPIO_PORT, & GPIO_InitStructure );		
	  
     RCC_APB2PeriphClockCmd ( IN1_GPIO_CLK, ENABLE ); 	
	GPIO_InitStructure.GPIO_Pin = IN4_GPIO_PIN;	
	GPIO_Init ( IN4_GPIO_PORT, & GPIO_InitStructure );
}

再就是方向的控制:这里与表格相反,是因为马达的正负极我给接反了,请大家忽略。

void carAdvanced()
{
	//前进状态
	 IN1_OFF();
	 IN2_ON();
	 IN3_OFF();
	 IN4_ON();
}
void carLeft()
{
//	//左转状态  
//	 IN1_ON();
//	 IN2_OFF();
//	 IN3_OFF();
//	 IN4_OFF();
	
	
	 IN1_ON();
	 IN2_OFF();
	 IN3_OFF();
	 IN4_ON();
	
}
void carRight()
{
	//右转状态
	 IN1_OFF();
	 IN2_ON();
	 IN3_ON();
	 IN4_OFF();
}
void carBack()
{
	//后退状态
	IN1_ON();
	IN2_OFF();
	IN3_ON();
	IN4_OFF();
}
void carStop()
{
	//后退状态
	 IN1_OFF();
	 IN2_OFF();
	 IN3_OFF();
	 IN4_OFF();
}

附上避障小车的全部源码https://download.youkuaiyun.com/download/singular_man/10957543
打完收工。。。。。。

评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值