- Nødvendige materialer:
- Hall-effekt sensorer:
- Kredsløbsdiagram og forklaring:
- Hall-effekt sensor Arduino kode:
- Arduino Hall Effect Sensor Arbejder:
Sensorer har altid været en vigtig komponent i ethvert projekt. Det er dem, der konverterer realtids miljødata til digitale / variable data, så de kan behandles af elektronik. Der findes mange forskellige typer sensorer på markedet, og du kan vælge en baseret på dine behov. I dette projekt lærer vi at bruge en Hall-sensor aka Hall-effekt-sensor med Arduino. Denne sensor er i stand til at detektere en magnet og også magnetens pol.
Hvorfor opdage en magnet ? , spørger du måske. Der er mange applikationer, der praktisk talt bruger Hall Effect-sensoren, og vi har måske aldrig bemærket dem. En almindelig anvendelse af denne sensor er at måle hastighed på cykler eller andre roterende maskiner. Denne sensor bruges også i BLDC-motorer til at registrere rotormagneternes position og udløse statorspolerne i overensstemmelse hermed. Applikationerne er uendelige, så lad os lære at Interface Hall-effekt-sensor Arduino for at tilføje et andet værktøj i vores arsenal. Her er nogle projekter med Hall-sensor:
- DIY Speedometer ved hjælp af Arduino og Processing Android App
- Digital hastighedsmåler og kilometertællerkredsløb ved hjælp af PIC Microcontroller
- Virtual Reality ved hjælp af Arduino og Processing
- Måling af magnetisk feltstyrke ved hjælp af Arduino
I denne vejledning bruger vi afbrydelsesfunktion af Arduino til at detektere magneten nær Hall-sensoren og tænde en LED. Hall-sensor bruges for det meste kun til Interrupts på grund af deres applikationer, hvor der kræves høj læse- og eksekveringshastighed, og lad os derfor også bruge interrupts i vores tutorial.
Nødvendige materialer:
- Hall-effektsensor (enhver digital verison)
- Arduino (enhver version)
- 10k ohm og 1K ohm modstand
- LED
- Tilslutning af ledninger
Hall-effekt sensorer:
Før vi dykker ned i forbindelserne, er der få vigtige ting, du bør vide om Hall Effect-sensorer. Der er faktisk to forskellige typer Hall-sensorer, den ene er Digital Hall-sensor og den anden er Analog Hall-sensor. Den digitale Hall-sensor kan kun registrere, om en magnet er til stede eller ej (0 eller 1), men en analog hall-sensorens output varierer afhængigt af magnetfeltet omkring magneten, det kan detektere, hvor stærk eller hvor langt magneten er. I dette projekt vil kun sigte mod de digitale Hall-sensorer, for de er de mest anvendte.
Som navnet antyder fungerer Hall Effect-sensoren med princippet om "Hall-effekt". I henhold til denne lov "når en leder eller halvleder med strøm, der strømmer i en retning blev indført vinkelret på et magnetfelt, kunne en spænding måles vinkelret på strømstien". Ved hjælp af denne teknik vil hallsensoren være i stand til at registrere tilstedeværelsen af magnet omkring den. Nok af teorien, lad os komme ind i hardware.
Kredsløbsdiagram og forklaring:
Det komplette kredsløbsdiagram til grænseflade mellem Hall-sensoren og Arduino kan findes nedenfor.
Som du kan se, er arduino-kredsløbsdiagrammet for halleffekt ret simpelt. Men det sted, hvor vi ofte laver fejl, er ved at finde ud af antallet af hallsensorer. Placer aflæsningerne mod dig, og den første pin til venstre er henholdsvis Vcc og derefter Ground og Signal.
Vi skal bruge Interrupts som fortalt tidligere, derfor er Hall-sensorens output pin forbundet til Arduino's Pin 2. Stiften er tilsluttet en LED, der tændes, når en magnet registreres. Jeg har simpelthen oprettet forbindelserne på et brødbræt, og det så lidt sådan ud nedenfor, når det først var afsluttet.
Hall-effekt sensor Arduino kode:
Den komplette Arduino-kode er kun få linjer, og den findes nederst på denne side, som kan uploades direkte til dit Arduino Board. Hvis du vil vide, hvordan programmet fungerer, læs videre.
Vi har en indgang, som er sensoren og en udgang, som er en LED. Sensoren skal tilsluttes som en afbrydelsesindgang. Så inde i vores installationsfunktion initialiserer vi disse ben og får også Pin 2 til at fungere som en afbrydelse. Her kaldes pin 2 Hall_sensor og pin 3 kaldes LED .
ugyldig opsætning () {pinMode (LED, OUTPUT); // LED er en output pin pinMode (Hall_sensor, INPUT_PULLUP); // Hall-sensoren er input pin attachInterrupt (digitalPinToInterrupt (Hall_sensor), skifte, CHANGE); // Pin to er interrupt pin, som kalder skiftefunktion}
Når der er registreret en afbrydelse, kaldes skiftefunktionen som nævnt i ovenstående linje. Der er mange afbrydelsesparametre som Toggle , Change, Rise, Fall osv., Men i denne tutorial opdager vi ændring af output fra Hall-sensor.
Nu inde i toggle funktion, bruger vi en variabel kaldet ” tilstand ”, som bare vil ændre sin tilstand til 0, hvis der allerede en og til en hvis allerede nul. På denne måde kan vi få LED til at tænde eller slukke.
void toggle () {state =! state; }
Endelig inden i vores sløjfefunktion er vi bare nødt til at styre LED'en. Den variable tilstand ændres, hver gang en magnet registreres, og derfor bruger vi den til at afgøre, om LED'en skal forblive tændt eller slukket.
ugyldig sløjfe () {digitalWrite (LED, tilstand); }
Arduino Hall Effect Sensor Arbejder:
Når du er klar med din hardware og kode, skal du bare uploade koden til Arduino. Jeg har brugt et 9V batteri til at drive hele opsætningen, du kan bruge enhver strømkilde, der foretrækkes. Hold magneten tæt på sensoren, så lyser din LED, og hvis du tager den væk, slukkes den.
Bemærk: Hall-sensoren er polfølsom, hvilket betyder at den ene side af sensoren enten kun kan registrere nordpolen eller kun sydpolen og ikke begge dele. Så hvis du bringer en sydpol tæt på den nordfølende overflade, vil din LED ikke lyse.
Hvad der faktisk sker indeni er, at når vi bringer magneten tæt på sensoren, ændrer sensoren sin tilstand. Denne ændring registreres af interrupt pin, som kalder skiftefunktionen, inden for hvilken vi ændrer variablen "tilstand" fra 0 til 1. Derfor vil LED'en tænde. Når vi nu bevæger magneten væk fra sensoren, ændres sensorens output igen. Denne ændring bemærkes igen af vores afbrydelseserklæring, og derfor ændres variablen “tilstand” fra 1 til 0. Dermed lysdioden, hvis den er slukket. Det samme gentages hver gang du bringer en magnet tæt på sensoren.
Den komplette arbejdsvideo af projektet kan findes nedenfor. Håber du forstod projektet og nød at bygge noget nyt. Brug venligst kommentarsektionen nedenfor eller foraerne for hjælp.