- Material som krävs:
- Hall-effektsensorer:
- Kretsschema och förklaring:
- Hall Effect Sensor Arduino-kod:
- Arduino Hall Effect Sensor fungerar:
Sensorer har alltid varit en viktig komponent i alla projekt. Det är de som konverterar miljödata i realtid till digital / variabel data så att den kan bearbetas av elektronik. Det finns många olika typer av sensorer tillgängliga på marknaden och du kan välja en baserat på dina behov. I detta projekt lär vi oss hur man använder en Hall-sensor aka Hall-effekt-sensor med Arduino. Denna sensor kan upptäcka en magnet och även magnetens pol.
Varför upptäcka en magnet ?, kan du fråga. Det finns många applikationer som praktiskt taget använder Hall Effect-sensorn och vi har kanske aldrig märkt dem. En vanlig tillämpning av denna sensor är att mäta hastigheten i cyklar eller andra roterande maskiner. Denna sensor används också i BLDC-motorer för att känna av rotormagneternas läge och utlösa statorspolarna därefter. Applikationerna är oändliga, så låt oss lära oss att Interface Hall-effektsensor Arduino för att lägga till ett annat verktyg i vår arsenal. Här är några projekt med Hall-sensor:
- 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
I denna handledning kommer vi att använda Arduinos avbrottsfunktion för att upptäcka magneten nära Hall-sensorn och lysa en LED. För det mesta kommer Hall-sensorn endast att användas med Interrupts på grund av deras applikationer där hög läs- och exekveringshastighet krävs, låt oss därför också använda interrupt i vår tutorial.
Material som krävs:
- Hall-effektsensor (vilken digital verison som helst)
- Arduino (valfri version)
- 10k ohm och 1K ohm motstånd
- LED
- Anslutande ledningar
Hall-effektsensorer:
Innan vi dyker in i anslutningarna finns det några viktiga saker du bör veta om Hall Effect-sensorer. Det finns faktiskt två olika typer av Hall-sensorer, en är Digital Hall-sensor och den andra är Analog Hall-sensor. Den digitala Hall-sensorn kan bara detektera om en magnet finns eller inte (0 eller 1) men en analog hallsensor varierar beroende på magnetfältet runt magneten, det kan detektera hur stark eller hur långt magneten är. I detta projekt kommer endast att rikta mot de digitala Hall-sensorerna för de är de mest använda.
Som namnet antyder fungerar Hall Effect-sensorn med principen "Hall-effekt". Enligt denna lag "när en ledare eller halvledare med ström som flyter i en riktning infördes vinkelrätt mot ett magnetfält kunde en spänning mätas i rät vinkel mot strömbanan". Med denna teknik kommer hallsensorn att kunna upptäcka närvaron av magnet runt den. Tillräckligt med teori låt oss gå in i hårdvara.
Kretsschema och förklaring:
Det fullständiga kretsschemat för gränssnitt mellan Hall-sensorn och Arduino finns nedan.
Som du kan se är kretsschemat för halleffektsensor arduino ganska enkelt. Men den plats där vi vanligtvis gör misstag är att räkna ut stiftnummer på hallsensorer. Placera avläsningarna mot dig och den första stiftet till vänster är Vcc respektive Ground respektive Signal.
Vi kommer att använda avbrott som sagt tidigare, därför är utgångsstiftet till Hall-sensorn ansluten till stift 2 på Arduino. Stiftet är anslutet till en lysdiod som tänds när en magnet upptäcks. Jag har helt enkelt gjort anslutningarna på en brädbräda och det såg ut så här nedan när de var färdiga.
Hall Effect Sensor Arduino-kod:
Den kompletta Arduino-koden är bara några rader och den finns längst ner på den här sidan som kan laddas upp direkt till ditt Arduino-kort. Om du vill veta hur programmet fungerar läs vidare.
Vi har en ingång, som är sensorn och en utgång som är en LED. Sensorn måste anslutas som en avbrottsingång. Så inuti vår installationsfunktion initialiserar vi dessa stift och gör också att stift 2 fungerar som ett avbrott. Här kallas stift 2 Hall_sensor och stift 3 kallas LED .
ogiltig installation () {pinMode (LED, OUTPUT); // LED är en utgångs pinMode (Hall_sensor, INPUT_PULLUP); // Hall-sensorn är ingångsstift attachInterrupt (digitalPinToInterrupt (Hall_sensor), växla, CHANGE); // Stift två är avbrottsstift som kommer att ringa växlingsfunktion}
När det upptäcks ett avbrott kommer växlingsfunktionen att anropas som nämnts i ovanstående rad. Det finns många avbrottsparametrar som Toggle , Change, Rise, Fall etc. men i denna handledning upptäcker vi förändringen av utdata från Hall-sensorn.
Nu inne i växlingsfunktionen, använder vi en variabel som kallas ” tillstånd ”, som just kommer att ändra sitt tillstånd till 0 om redan en och en om den redan noll. På det här sättet kan vi få lysdioden att tändas eller stängas av.
void toggle () {state =! state; }
Äntligen inuti vår loopfunktion måste vi bara styra lysdioden. Det variabla tillståndet kommer att ändras varje gång en magnet detekteras, därför använder vi den för att avgöra om lysdioden ska vara på eller av.
void loop () {digitalWrite (LED, state); }
Arduino Hall Effect Sensor fungerar:
När du är klar med din hårdvara och kod laddar du bara upp koden till Arduino. Jag har använt ett 9V batteri för att driva hela installationen. Du kan använda vilken som helst föredragen strömkälla. För nu magneten nära sensorn så lyser din LED och om du tar bort den stängs den av.
Obs! Hallsensorn är polskänslig, vilket innebär att ena sidan av sensorn antingen kan upptäcka endast nordpolen eller endast sydpolen och inte båda. Så om du tar en sydpol nära den nordliga avkänningsytan lyser inte din LED.
Det som faktiskt händer inuti är att när vi tar magneten nära sensorn ändrar sensorn sitt tillstånd. Denna förändring känns av avbrottsstiftet som kommer att ringa växelfunktionen inom vilken vi ändrar variabeln "tillstånd" från 0 till 1. Därför tänds lysdioden. Nu, när vi flyttar magneten bort från sensorn, ändras sensorns utgång igen. Denna förändring märks igen av vårt avbrottsuttalande och därför kommer variabeln "tillstånd" att ändras från 1 till 0. Således lysdioden om den är avstängd. Samma upprepas varje gång du tar en magnet nära sensorn.
Den fullständiga arbetsvideon för projektet finns nedan. Hoppas att du förstod projektet och tyckte om att bygga något nytt. Använd annars kommentarsektionen nedan eller forumen för hjälp.