Om halleffektsensorer

En halleffektsensor reagerer på magnetiske felt. Og i motsetning til et reed-relé, som også reagerer på magnetisme, har halleffektsensoren ingen bevegelige deler. Halleffektsensorer kommer i ulike varianter.

44e 938 halleffektsensor

En halleffeksensor som finnes har identifikator 44e 938. Den er montert på et kort som også har en motstand og en lysdiode. Koblet opp riktig vil lysdioden begynne å lyse når det er en magnet i nærheten.

Tilkoblinger:

G: Jord

R: Vcc (5v)

Y: Signal ut

Eksempel

Eksempekoden er den samme vi bruker i mikrofoneksempelet vårt, se dette for å se koden. Ett lys slåes på når en magnet er i nærheten, og slåes av neste gang det er en magnet i nærheten.

Kode, GitHub: Examples/MicrophoneLightOnOffExample/MicophoneLightOnOffExample.ino 

Oppkoblingen er ganske lik, men merk forskjellen på plasseringen på føttene til sensoren.

Breadboard kobling: På sensoren du har er står det G på inngangen på venstre side (rett ved '-' tegnet på skjema), R over den midterste pinnen og Y over pinnen lengst til høyre (ved hvor det står 'S' i skjemaet).

Eksterne eksempler

Det finnes andre som har lagd eksempler med denne eller lignende sensorer. Den vi har linka til her har forskjell på koblingsskjemaet i forhold til vårt. Ut fra bildet og til koblingen på skjemaet er det feil i skjemaet, jord og signal ser ut til å ha bytta plass.

Andre halleffektsensorer

I eksempelet her har vi brukt en Melexis US 1881, som er en "latch". Det vil si at den slår seg på når den blir påvirket av et magnetfelt, og må bli påvirket av et magnetfelt av motsatt polaritet for å slå seg av igjen. For å fungere som den skal må vi ha noen eksterne komponenter.

For å teste dette eksempelet må du ha en permanentmagnet, feks en kjøleskapsmagnet. For å slå lyset på må magneten holdes med riktig side av magneten i nærheten av sensoren. For å slå lyset av må du snu magneten og holde den i nærheten av sensoren.

 

const int hallPin = 7;
const int ledPin = 8;


void setup() {
  pinMode( ledPin, OUTPUT );
  pinMode( hallPin, INPUT );
}


void loop(){
  
  if( digitalRead( hallPin ) == HIGH ){
    digitalWrite( ledPin, HIGH );
  } else {
    digitalWrite( ledPin, LOW );
  }  
}

GitHub: Examples/HalleffectOther/HalleffectOther.ino

 

 

 

  • No labels