本文主要是介绍【雕爷学编程】Arduino动手做(44)---类比霍尔传感器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验四十四:类比霍尔磁性传感器 KY-035(模拟量)
霍尔传感器(英文名称 hall sensor)
是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。
磁场
是一种看不见、摸不着的特殊物质,磁场不是由原子或分子组成的,但磁场是客观存在的。磁场具有波粒的辐射特性。磁体周围存在磁场,磁体间的相互作用就是以磁场作为媒介的,所以两磁体不用在物理层面接触就能发生作用。电流、运动电荷、磁体或变化电场周围空间存在的一种特殊形态的物质。由于磁体的磁性来源于电流,电流是电荷的运动,因而概括地说,磁场是由运动电荷或电场的变化而产生的。用现代物理的观点来考察,物质中能够形成电荷的终极成分只有电子(带单位负电荷)和质子(带单位正电荷) ,因此负电荷就是带有过剩电子的点物体,正电荷就是带有过剩质子的点物体。运动电荷产生磁场的真正场源是运动电子或运动质子所产生的磁场。例如电流所产生的磁场就是在导线中运动的电子所产生的磁场。
霍尔元件的工作原理
1.磁场中有一个霍尔半导体片,恒定电流I从A到B通过该片。在洛仑兹力的作用下,I的电子流在通过霍尔半导体时向一侧偏移,使该片在CD方向上产生电位差,这就是所谓的霍尔电压。
2.霍尔电压随磁场强度的变化而变化,磁场越强,电压越高,磁场越弱,电压越低,霍尔电压值很小,通常只有几个毫伏,但经集成电路中的放大器放大,就能使该电压放大到足以输出较强的信号。
3.若使霍尔集成电路起传感作用,需要用机械的方法来改变磁感应强度。下图所示的方法是用一个转动的叶轮作为控制磁通量的开关,当叶轮叶片处于磁铁和霍尔集成电路之间的气隙中时,磁场偏离集成片,霍尔电压消失。这样,霍尔集成电路的输出电压的变化,就能表示出叶轮驱动轴的某一位置,利用这一工作原理,可将霍尔集成电路片用作用点火正时传感器。霍尔效应传感器属于被动型传感器,它要有外加电源才能工作,这一特点使它能检测转速低的运转情况。
我手头用来做实验的有二只霍尔传感器模块,一个巧合,也是偶然发现的,二只原来是不一样的(上面的字很小),一个是44E,另一个是49E,正好来做不同品种的对比实验。
查了一下资料
44E属于单极开关型霍尔,输出高低电平信号(仅两个状态),常用于定位、计数与接近开关。
49E是线性霍尔,输出模拟电压信号,随着磁场的极性和大小变化其输出电压相应变化。常用于角度控制、调速应用等。
/*【Arduino】168种传感器模块系列实验(44)实验四十四:3144E霍尔磁性传感器 KY-035(开关量)*/void setup(){Serial.begin(9600); pinMode(A0,INPUT); pinMode(13,OUTPUT); }void loop() {Serial.println(analogRead(A0));delay(10);if (digitalRead(A0)) {digitalWrite(13,LOW);}else {digitalWrite(13,HIGH);delay(100);}}
有磁场信号时(低电平)的波形,忽略小范围的噪音,还算挺规整的矩形波,不会误触发的
实验二,霍尔49E模拟模块,输出模拟电压信号,随着磁场的极性和大小变化其输出电压相应变化。常用于角度控制、调速应用等。
/*【Arduino】168种传感器模块系列实验(44)实验四十四:49E霍尔磁性传感器 KY-035(模拟量)之二*/void setup(){Serial.begin(9600); pinMode(A0,INPUT); pinMode(13,OUTPUT); }void loop() {Serial.println(analogRead(A0));delay(10);if (digitalRead(A0)) {digitalWrite(13,LOW);}else {digitalWrite(13,HIGH);delay(100);}}
代码一样,硬件不同,波形也不一样了,本图是没有磁场时䣌波形,再下图是反映磁场强度不同的情况
这篇关于【雕爷学编程】Arduino动手做(44)---类比霍尔传感器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!