前言
趁你们不注意,我突然更!!
目录
一、直流减速电机与霍尔编码器
1.1、编码器介绍与选择
是一种可以测量目标机械运动或者目标位置的传感器或装备,分为线性编码器和旋转编码器,我们这里测的是电机速度,很明显,电机是旋转的,所以是旋转编码器。
一般旋转编码器又有两种类型
- 增量编码器:增量式旋转编码器在电机旋转时输出脉冲。 要使用增量编码器确定轴
位置, 您必须知道起始位置并使用外部电路来计算输出脉冲数。 - 绝对编码器:绝对旋转编码器输出对应于旋转角度的数字代码。 无需计算脉冲了解电
机轴的位置。 您只需要读取编码器的数字输出。
我来翻译一下,增量编码器就是通过是输出脉冲让后让单片机计数脉冲数来算速度,绝对编码器就是直接输出角度变化的数字量。
打开淘宝搜,很明显,增量编码器占一大半儿,所以我们用增量编码器。
增量编码器还可以分:
-
光电:我来翻译一下这张图的意思,LED灯光穿过这个码盘的孔后就会输出一个脉冲,让后单片机计数脉冲就行了,不同的码盘通常转一圈发送的脉冲数也不一样,一般是300-500个脉冲。
-
霍尔:由霍尔开关集成传感器和磁性转盘组成, 霍尔式转速传感器结构如下图所示。 将磁性转盘的输入轴与被测转轴相连, 当被测转轴转动时, 磁性转盘便随之转动, 固定在磁性转盘附近的霍尔开关集成传感器便可在每一个小磁铁通过时产生一个相应的脉冲, 检测出单位时间的脉冲数,便可知道被测对象的转速。一般霍尔编码器的精度比较低。
1.2、编码器参数
根据题目可知,我买的是直流减速电机和霍尔编码器。
如图
参数表:
红色是我买的型号,蓝色是很重要的参数。
翻译:
- 电压控制好,这玩意儿挺贵的,别给烧了昂。
- 磁环式就是霍尔磁环式。
- 精度就是每圈可以发送的脉冲数。
- 霍尔
1.3、编码器测速原理
编码器使用的是“正交”这一原理将信号(光束)分为两个平行的,称为A和B。且他们通过编码器盘时相差90°。
偏移后会出现这种情况
1.3.1、方向判断
鲁迅说过:运动是相对的。
我们知道了A和B的输出相差90°,所以我们只要检测两个脉冲信号的相对位置就能检测出其方向
1.3.2、速度获取
首先知道精度CPR
在一个规定时间 t 内单片机获取脉冲总数 Num 。
F是一个周期测量的脉冲数,由图一个周期四个脉冲,对于32来讲,F一般是4或者2。
速度v 就相当于
v = (Num/(CPR*F))/t
因为时直流减速电机,所以还得除以减速比,但是这里就先不除了。我的电机减速比为1:10。
所以算出的v再除以10。
二、STM32cubeMX库配置编码器模式
2.1、连线分析
我所购买的编码电机的连线
我这里用的时野火的 指南者STM32F103VET6开发板。
STM32F103的高级定时器拥有编码器功能,所以我们直接匹配高级定时器的编码器功能的引脚!
电机驱动我们使用TB6612模块,不知道TB6612怎么用?请看这里
所以单片机上需要设置的引脚有:
1、高级定时器编码器模式(CH1,CH2通道)
2、串口(调PID不要串口真的大丈夫?)
3、通用或高级定时器的PWM输出模式
4、两个GPIO控制电机转方向
5、板载用来LED测试BUG
6、基本定时器计算时间
六色战队(不是)
2.2、cubeMX设置
2.2.1、cubeMX初始化
配置RCC外部晶振
改为72Mhz
仿真更改
2.2.2、高级定时器编码器模式(CH1,CH2通道)
编码器计数有三种模式
通道CH1计数
通道CH2计数
通道CH1、CH2双通道计数
编码器A相—CH1 简称CHA
编码器B相—CH2 简称CHB
此处需要说一点,上图种绿框部分的通道x计数模式并不是如它英文Rising Edge一样的上升沿计数的意思,而是计数模式的意思,这里算是cubeMX的小问题。
他的真实含义是相对信号的电平计数模式。
什么是相对信号?其实就是CHA相对CHB的的电平或者CHB相对CHA的电平。
Rising Edge模式下CH1通道是遇到虚线出数值发生一次变化,左边为每次遇到虚线加一,右边为每次遇到虚线减一。即一个周期编码器计数两次。(Falling Edge模式加减相反)
知道Rising Edge什么意思了,CHB的就略过了,可以直接看下图理解。
TI1是CHA,TI2是CHB
计数规则如下图: