前言
本文介绍了一个由STM32微处理器、直流减速电机、HC_05蓝牙模块,L298N电机驱动模块、oled显示模块等构成的。该系统采用STM32微处理器为核心,在MDK环境下进行编程,通过控制L298N模块IN1~IN4引脚的高低电平进而控制电机的转动方向控制小车的转动模式,使小车产生不同的转动模式,通过定时器对引脚的输出脉冲宽度进行调整来控制小车的速度,通过蓝牙模块来实现利用手机蓝牙助手和蓝牙模块相通,进而控制小车的各种运转模式。
代码下载链接如下:
https://download.youkuaiyun.com/download/weixin_53956323/85737261
一、时钟配置
二、芯片引脚配置
1、PA4、PA5、PA6、PA7分别连接L298N电机驱动模块的逻辑输入:IN1、IN2、IN3、IN4;
2、PA15、PB3接L298N电机驱动模块的通道A使能和通道B使能;
3、PA9和PA10分别接HC_05的RX、TX脚
4、IIC的SDA、SCL分别接PB7和PB6
三、电机驱动代码
代码及注释如下:
//停止模式
void Stop(void)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);
}
//左转模式 -> 左电机正转,右电机反转
void Turn_left(void)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1,20);
}
//右转模式 -> 左电机反转,右电机正转
void Turn_right(void)