基于STM32F407的编码电机控制(1)

基于STM32F407的编码电机控制(1)

为实现对编码电机的控制,我们核心在于理解,对电机转动的方向的控制,和转动速度的控制。为获得速度数据,要定时获取编码器的值来计算出实时的速度数据,并通过串口输出显示。
速度控制:在于PWM的配置,由占空比确定的,高电平占空比决定了速度的大小。
方向控制:H桥电路,在本文章中使用的驱动模块需要两个PWM波,一个用于正向转动,另一个用于反向转动。

模块介绍

  1. STM32F407 的开发板
  2. 编码电机
    在这里插入图片描述
    在这里插入图片描述
    A和B相接口我们暂时用不到,先不要管,我们知道一般开发板引脚的输出电压通常在3.3V或5V,
    输出电流较小,而直流电机可能需要更高的电压(5V以上)和电流(几百毫安或更高)才能正常工
    作。
    而且直流电机在转动时会产生反向电动势(EMF),当电机突然停止或方向改变时,这种电动势会
    对控制电路产生影响,甚至直接烧坏我们的板子。
  3. 驱动模块
    在这里插入图片描述驱动模块通常设计有保护措施,能够吸收或阻断这种反向电动势,防止对控制电路的损坏。驱动模块通常能够通过 H 桥电路实现电机正反转控制。此外,驱动模块也可以通过 PWM(脉宽调制)信号来控制电机的速度,调节电机的转速

在这里插入图片描述

VCC 和 GND 就不多说了
INT1和INT2 分别接入两个 PWM的输出引脚
一个是正向输出PWM—即控制电机正转
一个是反向输出PWM—即控制电机反转
A和B口是用来接收 来自编码电机的自身计数值 来计算速度时使用,单纯的控制时可以先不连。

PWM波的配置

链接中的PWM原理的讲解已经十分细致,我就粗略的对我的代码进行解释。
PWM的详解

/**
  * @brief  初始化TIM9的通道1和2 引脚PE5、PE6
  * @note  
  * @param  void 
  * @retval None
  */
void TIMx_GPIO_Init(void)
{
   
	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);
	
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
	GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值