编码电机的介绍
编码器是一种将角位移或者直线位移转换成一连串电数字脉冲的一种传感器。我们可以通过编码器测量电机转动的位移或者速度信息。 编码器按照工作原理,可以分为增量式编码器和绝对式编码器,绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。我们常用的编码器为增量式编码器。 从编码器检测原理上来分,还可以分为光学式、磁式、感应式、电容式。
常用的520 霍尔编码直流减速电机是一款大扭矩、高负载的电机,12V 的直流电机。霍尔测速码盘是一款使用霍尔传感器编码器的测速模块,配有强磁码盘通过 AB 两相输出脉冲信号,可以检测电机转动方向和速度适合各类转速要求高的智能小车使用。如麦克纳姆轮小车、平衡小车、导航定位小车等。
其中在减速电机内部马达不变的情况下,减速箱内齿轮减速比与转速、扭矩之间的关系:减速比越大扭矩越大,转速则越小。
对于电机型号的说明
如:J GB 37 - 520 R20 - 12
J代表直流电机
GB代表偏心出轴
37代表减速箱直径
520代表电机型号
R20代表减速比1:20
12代表额定电压12V
对于所有的编码电机的引脚基本上都为
电机线+
编码器电源
编码器A相
编码器B相
编码器地线
电机线-
不过具体还可看一下编码器后面的标识
编码器工作原理
霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。
对于使用编码电机时,若要使用pid来控制其的速度,那就得计算当前速度
速度计算:
速度=(脉冲数∗轮胎周长/读取周期∗轮胎每转一圈的脉冲数)
其中,轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算:
轮胎每转一圈的脉冲数=倍频∗PPR∗减速比
对于通过定时器定时1s的时间,以及占空比的原理,
ARR——自动重装器 PSC——预分频器 ccr——输出比较寄存器
计算定时器时间公式
定时频率=72M/(PSC+1)/(ARR+1)
72M=72 000 000
所以定时一秒,对于频率为1hz,需要的PSC+1=7200 ARR+1=10000
对于ARR和PSC的确定,他们是16位数对应的取值范围是0~65535 ,0也算一位,则要让其计1000,则arr要为1000-1
CCR与CNT比较,可以设置为当CNT小于设置得值输出高电平,否则输出高电平,CCR控制的是duty占空比,如arr取1000,crr取500则duty为0.5
对于使用stm32RCT6来控制编码电机
使用时应注意该定时器的通道是否为能配置为编码器模式的通道
在STM32微控制器中,定时器1、2、3、4、5和8可以配置为编码器模式,但只有通道1和通道2(即TI1和TI2)能够作为编码器输入信号的接口。
对于带方向的编码器,由于其只有一路脉冲输出,可以选择其中任一通道进行计数。而对于正交编码器,由于其有两路脉冲输出,通常选择两个通道同时进行计数。
再配置定时器为编码器模式时可以将io口配置为复用推挽输出或输入模式。
在STM32中,当IO口被配置为复用推挽输出时,仍然可以读取该IO口的数值。
复用推挽输出模式意味着GPIO口不仅用于普通的数字输入输出功能,还被用作特定的外设功能引脚。在这种模式下,虽然控制信号的来源是内置外设控制器,但单片机仍然可以通过读取相应的数据寄存器来获取上次输出的值。
在使用定时器输出pwm波时,要注意在STM32中,TIM_SetCompare1、TIM_SetCompare2、TIM_SetCompare3与TIM_SetCompare4可以同时使用,它们分别对应不同的定时器通道。而TIM_SetCompare1与TIM_SetCompare2的区别主要在于它们控制的是不同通道的PWM输出。
对于stm32 RCT6的定时器与其包含的IO口为:
结语
还在学习中,如有错误还请大佬们指出,有问题可相互交流