shineblink 霍尔传感器测电机转速详解
时间:2022-11-11 16:00:00
霍尔传感器测电机转速
-
- 一、霍尔传感器模块介绍
- 二、霍尔传感器测量电机转速原理
- 三、接线图
- 五、完整代码
- 六、代码验证结果
一、霍尔传感器模块介绍
霍尔传感器模块的核心部件是ES3144单极开关霍尔传感器, 以双极半导体为基础(Bipolar)工艺设 霍尔效应片、电压调节器、反向电压保护器、信号放大处集成在计和生产的霍尔器件中 电路、施密特触发器和开集电极输出驱动三极管。 此外,霍尔传感器模块LM393运输芯片ES霍尔传感器产生的模拟信号形成数字方波信号。
当 磁体的S 当施加到霍尔效应片的磁感应强度极接近芯片标记面时 B 超过工作点(BOP)时(B>BOP>0),输出导通, 输出变低。当磁感应强度降低于释放点时,(BRP)(即 0 下图为ES3144霍尔元件磁电转换示意图:
下图为霍尔传感器模块的参考电路图(非本模块电路):
二、霍尔传感器测量电机转速原理
原理概述:霍尔传感器模块通过将霍尔传感器磁环的S极和N极产生的方波信号数量计算转速。
具体实现:当电机转动时,电机旋转轴上的感应磁环的S极和N极将分别接近霍尔传感器一次(ES3144)霍尔传感器会根据磁极的距离产生类似正弦波的信号,然后通过霍尔传感器模块LM393运放芯片整形后,产生一个周期的数字方波信号。我们可以通过计算每秒或每分钟方波信号的数量来获得电机的转速。
三、接线图
五、完整代码
--初始化 function Init() --设置0.96寸oled模块占用SCL1和SDA1引脚 LIB_0_96_OledConfig("IIC1") --配置计量脉冲D4引脚内部上拉,触发条件为下降沿,测量周期为1000ms LIB_PulseCountMeasureConfig("PullUp","Fall",1000) end --初始化 Init() --开始大循环 while(GC(1) == true) do --查询计数结果时,需要在测量周期内及时调用函数,否则会错过1个测量周期的计数结果 finish_flag, data = LIB_PulseCountMeasureFinishCheck() if finish_flag == 1 then --通过oled屏幕展示1内电机一共转了多少圈? LIB_0_96_OledPuts("4","1",string.format("Freq= %dHz",data)) end end
建议:如果您的电机转速很慢,建议使用Core脉宽测量库函数通过测量电机转动时间间接测量转速,这里就不例外了。
六、代码验证结果
用霍尔传感器模块测量电机转速实际上是测量霍尔传感器模块输出的方波频率。让我们模拟一个1万Hz的方波输入给Core,相当于一秒1000转的电机。当然,很少有电机能转得这么快。这只是一个模拟演示。
详情请参考 shineblink.com官网链接