Hall-sensorer er sensorer som produserer et elektrisk signal ved utgangen når det kommer i kontakt med et magnetfelt. Den analoge verdien av det elektriske signalet ved utgangen til sensoren er en funksjon av magnetfeltets styrke. Hall-sensorer er overalt i disse dager, de brukes av forskjellige grunner og i alle slags enheter fra mobiltelefoner til brytere, for måling av hastighet, posisjon og avstand i biler og i andre bilindustribaserte produkter. Denne allsidigheten til hallsensoren gjør dem til et must for produsenter og elektroingeniører. Derfor skal jeg i dag vise oss hvordan vi bruker en Hall-sensor i et Raspberry Pi-basert prosjekt.
Du kan når som helst sjekke våre andre Hall Sensor-baserte prosjekter, inkludert grensesnitt mellom hallsensor og Arduino.
Nødvendige komponenter
Følgende komponenter / deler kreves for å bygge dette prosjektet;
- Bringebær pi 2 eller 3
- SD-kort (minimum 8 GB)
- Hall Effect Sensor
- Jumper ledninger
- Brettbrett
- LAN-kabel
- Strømkilde
Noen valgfrie deler som kan brukes inkluderer:
- Observere
- Tastatur og mus
- HDMI-kabel
- Wi-Fi-dongle
Denne opplæringen vil være basert på Raspbian stretch OS, så for å fortsette som vanlig vil jeg anta at du er kjent med å sette opp Raspberry Pi med Raspbian stretch OS, og du vet hvordan du SSH inn i bringebær pi ved hjelp av en terminalprogramvare som kitt. Hvis du har problemer med noe av dette, er det mange Raspberry Pi-veiledninger på dette nettstedet som kan hjelpe.
For de som skal installere Raspbian stretch OS for første gang, er et problem jeg har oppdaget, de fleste har, å komme inn i Raspberry Pi via ssh. Det skal bemerkes at ssh opprinnelig er deaktivert i operativsystemet, og du trenger enten en skjerm for å aktivere den, eller under raspberry pi-konfigurasjonsalternativene, eller du oppretter en tom fil som heter ssh ved hjelp av Windows- eller Linux-datamaskinen og kopierer den tomme filen til rotkatalogen til SD-kortet. Du må sette SD-vognen inn i SDd-kortsporet på datamaskinen for å kopiere til den.
Å bruke den andre metoden er mer egnet for de som kjører pi i hodeløs modus. Med alle delene klare kan vi deretter fortsette å bygge.
Kretsdiagram:
For å bruke Hall-effektsensor med Raspberry Pi, kobler du komponentene i henhold til skjematisk beskrivelse nedenfor.
Hall-sensoren som brukes til denne opplæringen, kan gi både analoge og digitale verdier ved utgangen. Men for å forenkle opplæringen bestemte jeg meg for å bruke den digitale verdien fordi bruk av analog utgang vil kreve tilkobling av en ADC til Raspberry Pi.
Python-kode og arbeidsforklaring:
Den Python kode for dette Hall Sensor prosjektet er en veldig enkel en, alt vi trenger å gjøre er å lese utgang fra hall sensor, og slå på eller av LED tilsvarende. LED-lampen skal slås på hvis magneten oppdages og den ellers skal slås av.
Slå på Raspberry Pi og SSH til den ved hjelp av kitt (hvis den er koblet i hodeløs modus som jeg er). Som vanlig med de fleste av prosjektene mine oppretter jeg en katalog inne i hjemmekatalogen der alt om hvert prosjekt er lagret, så for dette prosjektet vil vi lage en katalog som heter hall . Vær oppmerksom på at dette bare er en personlig preferanse for å holde ting organisert.
Lag katalogen ved hjelp av;
mkdir hallsensor
Bytt katalog til den nye katalogen som nettopp ble opprettet, og åpne en redaktør for å opprette python-skriptet ved hjelp av;
cd hallsensor
etterfulgt av;
nano hallsensorcode.py
Når redaktøren åpner, skriver vi inn koden for prosjektet. Jeg vil gjøre en kort oversikt over koden for å vise nøkkelbegreper, og den komplette pythonkoden vil bli gjort tilgjengelig etter det.
Vi starter koden ved å importere RPI.GPIO-biblioteket som lar oss skrive python-skript for å samhandle med raspberry pi GPIO-pinnene.
importer RPi.GPIO som gpio
Deretter setter vi nummereringskonfigurasjonen for RPIs GPIO som vi vil bruke og deaktivere GPIO-advarsler for å tillate utførelse av fri flyt av koden.
gpio.setmode (gpio.BCM) gpio.setwarnings (False)
Vi setter deretter erklær GPIO-pinnene som LED og den digitale utgangen til hallføleren er koblet til i samsvar med valgt BCM-nummerering.
hallpin = 2 ledpin = 3
Deretter setter vi opp GPIO-pinnene som inngang eller utgang. Pinnen som LED-en er koblet til, er satt som utgang, og den som hallsensoren er koblet til, er satt som inngang.
gpio.setup (hallpin, gpio.IN) gpio.setup (ledpin, gpio.OUT)
Med det gjort, kan vi skrive den viktigste delen av koden, som er en stund løkke som stadig evaluerer utgangssignalet fra Hall sensor og slår på lampen når en magnet blir detektert og slår av lampen når en magnet ikke blir detektert.
mens True: hvis (gpio.input (hallpin) == False): gpio.output (ledpin, True) utskrift ("magnet oppdaget") annet: gpio.output (ledpin, False) utskrift ("magnetfelt ikke oppdaget")
Den komplette pythonkoden med demo-video er gitt på slutten av prosjektet.
Kopier og lagre koden, og avslutt redigeringsprogrammet etter at du har skrevet den inn;
CTRL + X etterfulgt av y .
Etter lagring, gå over tilkoblingene dine igjen og kjør python-skriptet ved hjelp av;
sudo python hallsensorcode.py
Når skriptet er i gang, lyser LED-en hver gang en magnet eller noe magnetisk bringes nær hallsensoren, som vist på bildet nedenfor.
Fra sivbrytere for et smart hjem til speedometers for en sykkel, det er flere superkule ting som kan bygges med denne veiledningen i bunnen. Del gjerne ethvert prosjekt du planlegger å bygge i kommentarfeltet nedenfor.
Alle sjekk våre forrige hallsensorbaserte prosjekter:
- DIY Speedometer ved hjelp av Arduino og Processing Android App
- Digital hastighetsmåler og kilometertellerkrets ved bruk av PIC Microcontroller
- Virtual Reality ved hjelp av Arduino og Processing
- Måling av magnetisk feltstyrke ved hjelp av Arduino