Hallsensorer är sensorer som producerar en elektrisk signal vid utgången när den kommer i kontakt med ett magnetfält. Det analoga värdet på den elektriska signalen vid sensorns utgång är en funktion av magnetfältets styrka. Hallsensorer finns överallt dessa dagar, de används av olika skäl och i alla typer av enheter från mobiltelefoner till switchar, för mätning av hastighet, position och avstånd i bilar och andra fordonsindustribaserade produkter. Denna mångsidighet i hallsensorn gör dem till ett måste för tillverkare och elingenjörer, det är därför jag idag kommer att visa oss hur man använder en Hall-sensor i ett Raspberry Pi-baserat projekt.
Du kan när som helst kolla in våra andra Hall Sensor-baserade projekt, inklusive gränssnitt mellan hallsensorer och Arduino.
Nödvändiga komponenter
Följande komponenter / delar krävs för att bygga detta projekt;
- Hallon pi 2 eller 3
- SD-kort (minst 8 GB)
- Hall-effektsensor
- Bygeltrådar
- Brödbrädor
- LAN-kabel
- Kraftkälla
Några valfria delar som kan användas inkluderar:
- Övervaka
- Tangentbord och mus
- HDMI-kabel
- Wi-Fi-dongel
Denna handledning kommer att baseras på Raspbian stretch OS, så för att fortsätta som vanligt antar jag att du är bekant med att ställa in Raspberry Pi med Raspbian stretch OS, och du vet hur man SSH i hallon pi med hjälp av en terminal programvara som kitt. Om du har problem med något av detta finns det massor av Raspberry Pi-handledning på den här webbplatsen som kan hjälpa till.
För de som kommer att installera Raspbian stretch OS för första gången är en fråga jag har upptäckt, de flesta har, att komma in i Raspberry Pi via ssh. Det bör noteras att ssh ursprungligen är inaktiverat i operativsystemet och du behöver antingen en bildskärm för att aktivera det, eller under raspberry pis konfigurationsalternativ eller så skapar du en tom fil med namnet ssh med din Windows- eller Linux-dator och kopierar den tomma filen till rotkatalogen på SD-kortet. Du måste sätta in SD-vagnen i SDD-kortplatsen på din dator för att kopiera till den.
Att använda den andra metoden är mer lämplig för dem som kör pi i huvudlöst läge. När alla delar är klara kan vi sedan fortsätta bygga.
Kretsschema:
För att använda Hall-effektsensor med Raspberry Pi, anslut komponenterna enligt schemat nedan.
Hall-sensorn som används för denna handledning kan ge både analoga och digitala värden vid utgången. Men för att förenkla handledningen bestämde jag mig för att använda det digitala värdet för att använda den analoga utgången kommer att kräva anslutning av en ADC till Raspberry Pi.
Pythonkod och arbetsförklaring:
Den Python Kod för detta Hall Sensor projekt är mycket enkel, allt vi behöver göra är att läsa utsignalen från hallen sensor och slå på eller av lysdioden i enlighet därmed. Lysdioden ska tändas om magneten detekteras och den annars ska stängas av.
Slå på din Raspberry Pi och SSH med kitt (om den är ansluten i huvudlöst läge som jag). Som vanligt med de flesta av mina projekt skapar jag en katalog i hemkatalogen där allt om varje projekt lagras så för det här projektet skapar vi en katalog som heter hall . Observera att detta bara är en personlig preferens att hålla saker organiserade.
Skapa katalogen med;
mkdir hallsensor
Byt katalog till den nya katalogen som just skapats och öppna en redigerare för att skapa python-skriptet med;
cd hallsensor
följd av;
nano hallsensorcode.py
När redaktören öppnar skriver vi in koden för projektet. Jag kommer att göra en kort uppdelning av koden för att visa nyckelbegrepp, och den fullständiga pythonkoden kommer att göras tillgänglig efter det.
Vi startar koden genom att importera RPI.GPIO-biblioteket som gör att vi kan skriva python-skript för att interagera med hallon pi GPIO-stiften.
importera RPi.GPIO som gpio
Därefter ställer vi in numreringskonfigurationen för RPis GPIO som vi vill använda och inaktivera GPIO-varningar för att möjliggöra fritt flöde av koden.
gpio.setmode (gpio.BCM) gpio.setwarnings (False)
Vi ställer sedan in deklarera GPIO-stift till vilka lysdioden och den digitala utgången från hallsensorn är ansluten i enlighet med den valda BCM-numreringen.
hallpin = 2 ledpin = 3
Därefter ställer vi in GPIO-stiften som ingång eller utgång. Stiftet som lysdioden är ansluten till är inställd som utgång och den som hallsensorn är ansluten till som ingång.
gpio.setup (hallpin, gpio.IN) gpio.setup (ledpin, gpio.OUT)
Med det gjort, vi skriver huvuddelen av koden, som är en stund slinga som ständigt utvärderar utdata från hallen sensorn och slår på LED om en magnet upptäcks och släcks lysdioden när en magnet inte detekteras.
medan True: if (gpio.input (hallpin) == False): gpio.output (ledpin, True) print ("magnet detekterad") annat: gpio.output (ledpin, False) print ("magnetiskt fält upptäcks inte")
Den kompletta pythonkoden med demo-video ges i slutet av projektet.
Kopiera och spara koden och avsluta redigeraren efter att ha skrivit in den med;
CTRL + X följt av y .
Efter att du har sparat går du igenom dina anslutningar igen och kör python-skriptet med;
sudo python hallsensorcode.py
När skriptet är igång, närhelst en magnet eller något magnetiskt kommer nära hallsensorn, tänds lysdioden som visas i bilden nedan.
Från reed-omkopplare för ett smart hem till hastighetsmätare för en cykel, det finns flera supercoola saker som kan byggas med denna handledning i basen. Dela gärna alla projekt du planerar att bygga i kommentarsektionen nedan.
Alla kolla våra tidigare hallsensorbaserade projekt:
- DIY Speedometer med Arduino och Processing Android App
- Digital hastighetsmätare och vägmätarkrets med PIC-mikrokontroller
- Virtual Reality med Arduino och Processing
- Mätning av magnetisk fältstyrka med Arduino