平衡小车设计_3_测速原理

本文详细解析了STM32定时器编码器模式的测速原理,包括通过A、B相脉冲确定电机旋转方向和速度大小的方法。介绍了如何在编程中初始化定时器和编码器接口,以及如何周期性地采集并清零计数器值以获取转速信息。

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

平衡小车设计_3_测速原理

 

使用stm32定时器的编码器模式,芯片内含编码器接口电路,测速简单

首先明确:

1、转向有方向和大小

2、编码器输出是两路(A相、B相)相位互差90°的脉冲

 

测速原理:

测速原理图

 

1、定方向

根据A、B两相脉冲的超前滞后关系确定电机旋转方向

假定A相超前于B相时,为电机正方向

则当A相滞后于B相,当前电机为反向旋转

在stm32编码器模式中表现为脉冲的增、减(正增反增这取决于选择的计数模式)

列举一种情况:若正向旋转,每个脉冲使计数器+1,,若反向旋转,每个脉冲使计数器-1

具体原理可参考stm32的手册

2、定大小

单位时间内采集的脉冲数就是转速大小的表征值,可以根据它转换为各种单位下的转速大小

 

在编程中

1、使用编码器模式前,要对定时器初始化、对编码器接口初始化

2、一定的周期采集一次计数器的计数值,并将其清0

3、这个数值的大小就是转速的大小大小,

4、这个数值的正负就是转速的方向

 

### 平衡小车使用编码器测速方法实现原理 #### 编码器基本概念 编码器是一种能够将角位移或角速度转化为一系列电信号的旋转式传感器[^2]。通过这些信号,我们可以计算出物体的位置变化或运动速度。 #### 编码器分类 从工作原理来看,编码器可分为光学式、磁式、感应式和电容式等多种类型[^1]。其中最常用的是光电编码器(基于光栅技术)和霍尔编码器(利用磁场变化)。 按照输出数据的形式划分,编码器又可进一步分为增量式编码器和绝对式编码器。 - **增量式编码器**:提供周期性的脉冲信号,用于表示位置的变化量而非具体位置值。 - **绝对式编码器**:每一个角度对应唯一的二进制代码,可以直接读取当前的角度信息而无需重新计数。 对于平衡小车而言,通常采用增量式编码器来完成速度测量任务。 #### 测速原理 当电机驱动轮子转动时,安装于电机轴上的编码器随之同步旋转并发出应数量的脉冲信号。假设已知编码器每转产生的固定脉冲数目 \( PPR \) (Pulses Per Revolution),以及记录到的时间间隔内的实际脉冲总数,则可通过如下公式估算瞬时线速度: \[ v = r \cdot \omega = r \cdot (PPR / t) \] 这里: - \( v \): 轮子边缘处的实际移动速率; - \( r \): 轮半径; - \( ω \): 角度频率(单位时间内所经历过的弧度数); - \( PPR \): 单次完整回旋期间由编码装置触发出来的总脉冲次数; - \( t \): 经历上述整个过程所需耗费掉的具体秒表数值; 另外需要注意的一点就是额定转速的概念\( RPM \),即每分钟内能完成多少圈完整的循环动作[^3]。这有助于校准理论模型中的参数设定范围。 综上所述,在设计阶段需选定合适的硬件规格型号之后再配合软件算法处理采集回来的数据流从而达成精确控制目标。 ```python def calculate_speed(pulses, time_interval_seconds, wheel_radius_meters, pulses_per_revolution): revolutions = pulses / pulses_per_revolution angular_velocity_radians_per_second = (revolutions * 2 * 3.14159) / time_interval_seconds linear_velocity_meters_per_second = angular_velocity_radians_per_second * wheel_radius_meters return linear_velocity_meters_per_second ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值