1.PWM调速

本文介绍了使用STM32微控制器通过PWM技术进行电机调速的方法,详细讲解了PWM调速原理、STM32的PWM模块,并给出了实验步骤,包括硬件接线、芯片选择和CubeMX配置。通过配置定时器的PSC和ARR寄存器设定PWM周期和占空比,实现电机速度控制。
摘要由CSDN通过智能技术生成

简介:

PWM(Pulse Width Modulation)是一种用来调节信号脉宽的技术,在电机控制中常常用来实现电机的调速功能。本文将介绍如何使用STM32微控制器实现PWM电机调速的方法。

1. STM32简介

STM32系列是由ST公司推出的一款基于ARM Cortex-M内核的32位单片机系列。它具有强大的性能和丰富的外设资源,非常适合用于电机控制领域。

2. PWM调速原理

PWM调速技术通过改变信号的脉宽来控制电机的速度。脉宽越宽,电机转速越快;脉宽越窄,电机转速越慢。通过不断调整PWM的脉宽,即可实现电机的调速功能。

3. STM32的PWM模块介绍

STM32微控制器内置了多个PWM模块,如TIM(定时器)模块和TIM输出比较模块等。这些模块可以生成高精度的PWM信号,并且具有丰富的配置选项,可满足不同应用场景的需求。

实验要求

小车通过PWM对不同的轮子进行不同的调速

实验步骤

1.硬件接线

B-1A – PA0
B-1B – PB1
A-1A – PA1
A-1B – PB10

2. 所用芯片

stm32f103c8t6
电机驱动: l9110s

3. CubeMX配置

通过查阅文档,我们了解到stm32f103c8t6中的PA0和PA1引脚所用到的PWM通道,PA0和PA1分别用到了TIM2定时器的通道1和2
image.png

根据公式
image.png
其中PSC为分频系数,ARR(AutoReload Register -16 bits value)为 自动重载值.

  1. ARR寄存器:**自动重装载寄存器,包含一个32位的值,用于设置定时器从0开始计数到ARR值后再清零的循环周期。**这个周期时间就是定时器的溢出时间。
  2. PSC寄存器:预分频寄存器,包含一个16位的值,可以对定时器的时钟进行预分频,即将外部时钟频率分频后用于定时器计数。

我们可以计划将Tout配置为20ms,由于Tclk配置成72Mhz,于是我们可以将PSC设置为7199,ARR则为199.其中,自动重加载我们给他打开.

其中 CH Polarity表示有效极性,我们将他保持为高电平

如图:image.png

代码实现

1. 所用函数介绍

//1.
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
//这个函数是使能PWM
// 第一个参数是定时器的句柄
// 第二个参数表示第几个通道

//2.
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,100);
// 这个函数可修改比较值,修改占空比
// 第一个参数是定时器的句柄
// 第二个参数表示第几个通道
// 第三个参数为设置的值

通过这些函数就可以简单的控制,占空比了.也就能随意的控制左右轮的转速了,实现平滑拐弯

2. 使用串口控制检验是否能够成功实现

配置串口

image.png

打开串口中断

image.png

代码实现
// 找到并重写接收中断处理函数 HAL_UARTEx_RxEventCallback
// 接收完成回调函数,收到一个数据后,在这里处理
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏柠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值