利用STM32 PB6口输出PWM 控制直流电机的速度,用L298N驱动器驱动。
硬件连接部分:
1. 输入12V
2.接地
3.输出5V
4.5 连接STM32的io
6.7 连接直流电机输入端
注:连接完成后还要有一个连接,就是将STM32的GND跟电源输入端GND连接在一起,否则电机不会转动,会出现一直抖动的情况。
原理:利用STM32 的IO输出不同占空比的脉冲信号来达到调速的过程,当占空比大的时候就表明在一个脉冲周期内高电平的时间越长,而脉冲信号输出频率极快,高电平的时间越长就表明在一段时间内IO口输出的控制电压越高,控制电压越高使得L298N输出的电压越高,这样就使得车轮的转速越快。
软件部分:
PWM.H
#ifndef __PWM__H
#define __PWM__H
#include "sys.h"
#include "stm32f10x.h"
void TiM4_PWM_Init(u16 value ) ;
#endif
PWM.c
#include "PWM.h"
void TiM4_PWM_Init(u16 value )
{
TIM_TimeBaseInitTypeDef TIM_Timeinit;
TIM_OCInitTypeDef TIM_OCInitstruct;
GPIO_InitTypeDef GPIO_InitStrucyure;
/////////////// 1
RCC_APB1PeriphClockCmd(RCC_APB1Periph