用线性霍尔传感器SS495A测量电压

用线性霍尔传感器SS495A测量电压

实验目的,观察SS495A的供电电压与输出的线性程度,以及能否用SS495A来测量负电压。

实验结论,在供电电压稍大一些(大于1.33V),这两个量线性程度非常之好。但是如果供电电压反向,SS495不能正常工作,也就不能测量负电压。当然通过分压、反相不算,这里说的是直接测量,不行。

按照霍尔效应原理,SS495在典型供电电压5.0V时有图1中的线性度,即输出的霍尔电压Vout(已经被放大过)与磁场GAUSS有线性关系。那么,如果我改变这个典型的供电电压Vs,同时固定住GAUSS值不变,此时Vout理论上仍有输出线性电压,猜想Vout与Vs将会有线性关系,如果这个线性关系比较好,那我们就能用这个关系来测量外部电压了。根据SS495A的DataSheet,Vs可以从4.5V开始最大到10.5V。图1中给出的是SS495B,它与SS495A只是形状不同,封装是完全相同的。

图1 SS495的Vout-GAUSS关系

SS495接线非常简单,就是把Vout脚送给A0就可以了。我不太熟悉Fritzing里面怎么找可调稳压电源、霍尔元件,干脆就用类似的东西替代了。图里面的干电池实际需要用可调电源,它是用来调Vs的,图里面表达的是电压可调的意思,因为如果用滑动变阻器,不能直接得到Vs的数值。

图2 SS495接线图

实物接线,正对SS495A方向,放置了一个立方体强磁铁,没有去刻意调整哪端是N极、哪端是S极,我们只要固定GAUSS值即外加磁场的强度就可以了。如图3。

图3 实验装置图

代码中,直接读Vout输入到Arduino的A0脚数据,不转化,直接读:

void setup()
{
Serial.begin(9600);
}

void loop()
{float n = analogRead(A0);
float temp = n;// * (5.0 / 1023.0);
Serial.println(temp);
//float g = temp * 320 - 800;
//Serial.println(g);
delay(1000);
}

在5V以下的供电直到0.91V,0.91V以下总输出0,不再采集,之后输入Logger Pro中进行数据拟合。图4、图5表明,Vs只有大于一定数值,拟合程度才会非常完美。

图4 基于观察就能看到最左侧两组数据偏离很多

图5 扔掉部分数据,相关达到0.9999

实验结论与发现:

  1. 扔掉我们所测量的供电电压在1.33V以下的数据,其他数据的线性关系非常好,从串口读出的返回值与供电电压有

的关系。

  1. 但SS495不能接受反向的Vs,例如GND接电源正极、Vs接电源负极,此时无输出或SS495产生高热,这大概与内部放大器的极性有关。
  2. 这种改变Vs用以测量Vs的使用方法,不是线性霍尔元件正常的使用,但确实可以在一定范围上测量大约1.33V至10.5V范围上的电压。
  3. 它仍然不能直接测量负电压。换句话说,SS495不是最原生态的霍尔效应装置,由于内部结构(图6)中的放大器、跟随器存在极性的要求,所以Vs、GND不能把Vs指定为GND。

图6 SS495A内部结构

(0)

相关推荐