一、霍尔传感器模块介绍

霍尔传感器模块的核心部件为ES3144单极开关型霍尔传感器, 是基于双极半导体(Bipolar)工艺设 计和生产的霍尔器件,器件内部集成了霍尔效应片、电压调节器、反向电压保护器、信号放大处 理电路、施密特触发器和一个开集电极输出驱动三极管。 另外,霍尔传感器模块上的LM393运放芯片用来将ES3144霍尔传感器产生的模拟信号整形成数字方波信号。
在这里插入图片描述
当 磁体的S 极接近芯片标记面时,且当施加到霍尔效应片的磁感应强度 B 超过工作点(BOP)时(B>BOP>0),输出导通, 输出变低。当磁感应强度减弱低于释放点(BRP)(即 0<B<BRP)或撤除(B=0)时,输出关断, 输出变高。但磁体的N极接近芯片标记面时不能触发芯片工作,N 极磁场可以从标记面的反面接近芯片以触发芯片导通。
下图为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提供的脉宽测量库函数通过测量电机转一圈的时间来间接测量转速,在这里就不示例该功能了。

六、代码验证结果

用霍尔传感器模块测量电机转速其实就是测量霍尔传感器模块输出的方波频率,下面我们模拟一个1000Hz的方波输入给Core,相当于一个一秒钟转1000转的电机,当然实际上也很少有电机能转这么快,这里只是一个模拟演示而已。
在这里插入图片描述
更多详情请参看 shineblink.com官网链接

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐