Hej gutter, velkommen til dagens tutorial. I dag vil vi se på, hvordan man bruger en hall-effekt-sensor med Arduino.

En hall-effekt-sensor er en sensor, der varierer sit output baseret på tilstedeværelsen eller fraværet af et magnetfelt. Det betyder, at det udgangssignal, der produceres af en hall-effekt-sensor, er en funktion af magnetfeltets tæthed omkring den. Når den magnetiske fluxtæthed omkring den overstiger en bestemt forudindstillet tærskelværdi, registrerer sensoren det og genererer en udgangsspænding, der undertiden kaldes hallspænding, for at angive tilstedeværelsen af det magnetiske felt.

Hall-effekt-sensor

Hall-sensorer er blevet meget populære på grund af deres alsidighed, og de anvendes i mange forskellige applikationer. En af de populære anvendelser af hall-effekt-sensorer er i bilsystemer, hvor de bruges til at registrere position, måle afstand og hastighed. De anvendes også i moderne enheder som smartphones og computere og bruges også i forskellige typer af kontakter, hvor tilstedeværelsen af et magnetfelt bruges til enten at aktivere eller deaktivere et kredsløb.

Hall-sensorer producerer enten analogt eller digitalt output afhængigt af den pågældende sensor. Uanset hvilken type de er, leveres de normalt i en tre-pin-pakke med en pin til at repræsentere signalet og de to andre til at levere strøm til sensoren. Dette gør tilslutningen til en hvilken som helst mikrocontroller let.

I dagens tutorial vil vi demonstrere, hvordan hall-effekt-sensoren fungerer ved at tilslutte den sammen med en LED til en Arduino. Arduino’en vil blive programmeret således, at når en magnet bringes tæt på hall-effekt-sensoren, tændes LED’en, og når magneten fjernes, slukker den.

Nødvendige komponenter

Følgende komponenter er nødvendige for at bygge dette projekt.

  1. Hall Effect Sensor
  2. Billig Arduino Uno
  3. Breadboard mini
  4. LED
  5. Tråde
  6. Tråde
  7. Magneter

Som sædvanlig kan de nøjagtige komponenter, der anvendes til denne vejledning, købes via de links, der er knyttet til hver af de ovenfor anførte komponenter.

Skemaer

Skemaet til dette projekt er simpelt, da det eneste, vi skal gøre, er at forbinde hallsensorens tre pins og en LED til Arduino’en. Tilslut komponenterne som vist i skemaet nedenfor.

Skemaer

Forbindelsen er yderligere beskrevet nedenfor for at gøre den let at følge.

Hallesensor – Arduino

VCC - 5VGND - GNDSIG - D2

LED’en kan tilsluttes direkte til Arduino med det positive ben i Arduino pin 13 og det andet ben tilsluttet til jordstiften uden en modstand, fordi arduino har en intern modstand tilsluttet pin 13.

Med skemaet færdigt kan vi gå videre til koden til dette projekt.

Kode

Koden til dette projekt er virkelig enkel, alt hvad vi ønsker at gøre som tidligere nævnt er at kontrollere, om der registreres et magnetfelt, og hvis ja, tænder vi LED’en, hvis nej, slukker vi for LED’en.

For at lave en kort forklaring af koden til dette projekt, er det første vi gør at erklære pinsene på Arduino’en som vores hallsensor og LED er forbundet til, hvorefter vi opretter en variabel “state” som skal gemme værdien fra hallsensoren.

 ////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;

Næst går vi videre til void setup funktionen, hvor vi erklærer pin mode for de pins på Arduinoen, som LED’en og hallsensoren er tilsluttet til.

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

Næst kommer void loop funktionen, opgaven her er den samme som hvis vi vil bruge en trykknap til at styre en LED med en Arduino imellem. Vi læser outputtet fra hallsensoren og gemmer det i en variabel ved navn state. Når værdien er LOW, tænder vi LED’en, HIGH, og når værdien er høj, tænder vi LED’en Low. Konfigurationen af din hallsensor kan være anderledes, da sensoren kan slå High, når der registreres et magnetfelt. Dette bør bekræftes på sensorens datablad.

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

Den komplette kode til dette projekt er vist nedenfor og kan også downloades under download-sektionen i slutningen af denne vejledning.

 ////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}

Demo

Kopier koden og upload den til dit Arduino-bræt. Du bør se LED’en skifte, når en magnet bringes tæt på den, som vist på billedet nedenfor.

Demo

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.