Lényege, ha egy áram járta vezetőt (félvezetőt) mágneses térbe helyezünk akkor az elektronokra erő hat ami áramlásukat kitéríti valamelyik irányba, igy hozva létre potenciál különbséget a vezetőbe(Hall feszültség). A Hall szenzor ezt hívatott érzékelni. Használat szerint csoportosíthatók a szenzorok, a legegyszerűbb amikor kapcsoló ként használják, itt egy megfelelő mágneses térerőségnél kapcsoló feszültséget továbbit a kimenetre. A másik lehetőség mágneses tér erősségét méri lineárisan, magnetométer, a harmadik formában észak-dél pólust érzékel, itt az egyik pólusnál bekapcsolt állapotban van a másik közelítésekor kikapcsoltba kerül (ez csak a bipoláris hall szenzoroknál).
Nézzük a Hall szenzort:
én egy készre szerelt Arduino modult használok ami egy A3144-es
szenzor érzékeli a mágneses teret saját feszosztó trimmer
ellenállása és beépített müveleti erősítője is van.
Az első kódunk egy
analóg bemenetre kötött mágneses térerősség érzékelő:
Lábkiosztás:
GND -- GND
OUT -- A0
5V -- 5V
int
hall_out= 0;
//változó létrehozása
a Hall szenzor kimenetének
void setup()
{
Serial.begin(9600);
}
//Főciklus
beolvassa a
szenzor értékét másodpercenként
void loop()
{
int valtozas= analogRead(
hall_out);
Serial.println(valtozas);
delay(1000);
}
Ez a progi analóg értékeket mér, ezért a A3144 szenzorral szerelt érzékelő panellel nem használható, illetve a panel digitálisan átkapcsol egy érték felett így kapcsolóként üzemel.
Lássuk hát a kapcsoló üzemmódot:
Lábkiosztás:
GND -- GND
OUT -- 2 (digitális)
5V -- 5V
int hallState = 0;
void
setup() {
pinMode(13, OUTPUT);
// hall effekt pin a
digitális 2
pinMode(2, INPUT);
}
void
loop(){
// beolvassuk a 2
bemenet értékét
hallState =
digitalRead(2);
if (hallState == LOW) {
// ha a hall bemenet
értéke alacsony akkor bekapcsolja a beépített ledet
digitalWrite(ledPin,
HIGH);
}
else {
// különben led
kikapcsolva
digitalWrite(ledPin,
LOW);
}
}
Ez egy egyszerű mágneses kapcsoló áramkör, mágneses jeladóként gépkocsikban, vagy csak fordulat szám mérésére különböző motoroknál, riasztóknál nyitásérzékelőként vagy bármilyen más kapcsolásban kontaktus nélküli kapcsolóként használható.