全国服务热线

18219276011

2850818308

您当前位置:首页>>升威资讯>>技术支持
升威资讯
公司新闻
企业视频
行业资讯
技术支持
广东升威电子制品有限公司
地址:东莞市塘厦镇凤凰岗凤清路39号升威工业园
电话:0769-38833333-881
销售电话:18219276011
传真:0769-87930111
E-mail:sw@soundwell-cn.com
旋转编码器是如何测速的?
发布时间:2019-04-08
发布者:
浏览次数:239次

小车如果想要直线行走,就必须保持四个轮子转速一致。一般通过输入一个固定的占空比pwm信号来控制,但是由于一些外界因素和轮子的电气特性,就算让四个轮子收到相同的信号,转速也会不一样。

   这时就需要将旋转编码器和轮子固定在一起,以测量轮子的实际转速,让旋转编码器返回实际转速的值。PID的输入参数也是编码器的返回值。


一、实验工具STM32开发板一块、L298N电机驱动、直流电机   

以及用到的软件(STM32CubeMX、keil4)


二、旋转编码器原理


1.概述:旋转编码器是一种将角位移或者角速度转换成一串电数字脉冲的旋转式传感器。旋转编码器又分为光电编码器和霍尔编码器,我们这里用到的是霍尔编码器。


2.霍尔编码器工作原理:一种通过磁电转换将输出的机械几何位移量转换成脉冲或数字量的传感器,霍尔编码器室友霍尔马盘和霍尔元件组成。霍尔马盘是在一定直径的圆板上等分的布置有不同的磁极。霍尔马盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。简单示意图如下:

3.旋转编码器接线图:


4.测速原理:我们这里用到的是M法测速的时候,会通过测量单位时间内A相输出的脉冲数来得到速度信息。




5.采集数据:编码器输出的是标准的方波,我们可以用单片机直接读取。在软件中的处理方式分两种1.自带编码器接口的单片机如STM32,可以以直接用硬件技术2.没有编码器借口的单片机  可通过外部中断读取




一、转速计算方法:用捕获值(一秒内输出的脉冲数)/编码器线数(转速一圈输出脉冲数)/电机减数比(内部电机转动圈数与电机输出轴转动圈数比,即减速齿轮比)




二、源码解析


1.      STM32CubeMX设置用到的引脚,生成keil文件。引脚设置如下图:


1.     编码器,串口,定时器初始化部分就不一一列出,想了解的可以去源码寻找。下面我主要说一下主函数中的代码。


首先是使用按键控制PWM变化来控制电机转速部分:

 




接下来调用HAL_TIM_IC_CaptureCallback函数 以便接下来得到一秒内输出的脉冲数,通过获取到的脉冲数来计算转速。



接下来在回调函数中计算转速。



综上将电机、单片机、L298N电机驱动模块、连接起来就可以实现功能。

--------------------- 

作者:Susquehanna 

来源:CSDN 

原文:https://blog.csdn.net/Susquehanna/article/details/77504066 

版权声明:本文为博主原创文章,转载请附上博文链接!


最新案例