Innehållsförteckning:

Arduino Hall Effect Sensor med avbrott: 4 steg
Arduino Hall Effect Sensor med avbrott: 4 steg

Video: Arduino Hall Effect Sensor med avbrott: 4 steg

Video: Arduino Hall Effect Sensor med avbrott: 4 steg
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Juli
Anonim
Image
Image
Vad är en hall -effektsensor?
Vad är en hall -effektsensor?

Hej allihopa, Idag visar jag dig hur du kan ansluta en hall -effektsensor till en Arduino och använda den med ett avbrott.

Verktyg och material som används i videon (anslutna länkar): Arduino Uno:

Hall -effektsensorer:

Blandade resistorer:

Steg 1: Vad är en Hall Effect Sensor?

Vad är en hall -effektsensor?
Vad är en hall -effektsensor?
Vad är en hall -effektsensor?
Vad är en hall -effektsensor?
Vad är en hall -effektsensor?
Vad är en hall -effektsensor?

En Hall -effektsensor är en enhet som används för att mäta storleken på ett magnetfält. Dess utspänning är direkt proportionell mot magnetfältstyrkan genom den.

Hall -effektsensorer används för närhetsavkänning, positionering, hastighetsdetektering och strömavkänning.

Den jag kommer att arbeta med idag är märkt som 3144 som är en hall -effektbrytare som främst används för hög temperatur och fordonsapplikationer. Dess effekt är hög som standard och blir låg en gång i närvaro av ett magnetfält.

Sensorn har 3 stift, VCC, jord och utgång. Du kan identifiera dem i den ordningen om du håller sensorn med etiketterna mot dig. VCC är till vänster och utmatningen är på höger sida. För att förhindra spänningsavvikelse används ett 10k-motstånd mellan VCC och utgången i en pull-up-konfiguration.

Steg 2: Vad är ett avbrott?

Vad är ett avbrott?
Vad är ett avbrott?
Vad är ett avbrott?
Vad är ett avbrott?

För att ansluta sensorn på Arduino kommer vi att använda en enkel, men mycket kraftfull funktion som heter Interrupt. Ett avbrottsjobb är att se till att processorn reagerar snabbt på viktiga händelser. När en viss signal detekteras, avbryter ett avbrott (som namnet antyder) vad processorn gör och exekverar någon kod som är utformad för att reagera på vilken yttre stimulans som matas till Arduino. När koden har slutförts går processorn tillbaka till vad den ursprungligen gjorde som om ingenting hände!

Det fantastiska med det här är att det strukturerar ditt system för att reagera snabbt och effektivt på viktiga händelser som inte är lätta att förutse i programvara. Bäst av allt, det frigör din processor för att göra andra saker medan den väntar på att ett event ska dyka upp.

Arduino Uno har två stift som vi kan använda som avbrott, stift 2 och 3. Funktionen som vi använder för att registrera stiftet som ett avbrott kallas attachInterrupt där som en första parameter vi skickar in stiftet som ska användas, den andra parametern är namnet på funktionen som vi vill anropa när ett avbrott upptäcks och som en tredje parameter skickar vi i det läge där vi vill att avbrottet ska fungera. Det finns en länk i videobeskrivningen till den fullständiga referensen för denna funktion.

Steg 3: Anslutningar och kod

Anslutningar och kod
Anslutningar och kod
Anslutningar och kod
Anslutningar och kod
Anslutningar och kod
Anslutningar och kod

I vårt exempel ansluter vi hall -effektsensorn till stift 2 på Arduino. I början av skissen definierar vi variablerna för stiftnumret på den inbyggda lysdioden, avbrottsstiftet samt en bytevariabel som vi kommer att använda för att ändra genom avbrottet. Det är avgörande att vi markerar den här som flyktig så att kompilatorn kan veta att den modifieras utanför huvudprogrammets flöde genom avbrottet.

I installationsfunktionen anger vi först lägena på stiften som används och sedan bifogar vi avbrottet som tidigare förklarats. En annan funktion som vi använder här är digitalPinToInterrupt som, som namnet antyder, översätter pin -numret till interrupt -numret.

I huvudmetoden skriver vi bara tillståndsvariabeln på LED -stiftet och lägger till en mycket liten fördröjning så att processorn kan hinna fungera korrekt.

Där vi kopplade avbrottet specificerade vi blinkning som den andra parametern och detta är funktionsnamnet som ska kallas. Inuti vänder vi bara på statens värde.

Den tredje parametern för funktionen attachIntertupt är det läge i vilket den fungerar. När vi har det som CHANGE kommer blinkfunktionen att utföras varje gång avbrottstillståndet ändras så det kommer att ringas en gång när vi får magneten nära sensorn och aktiveras igen när vi tar bort den. På så sätt lyser lysdioden medan vi håller magneten nära sensorn.

Om vi nu ändrar läget till RISING, utlöses blinkfunktionen först när en stigande kant av signalen syns på avbrottsstiftet. Nu varje gång vi för magneten nära sensorn slocknar eller tänds lysdioden så att vi i princip gjorde en magnetbrytare.

Det sista läget som vi ska försöka är LÅGT. Med den, när magneten är nära, kommer blinkfunktionen att utlösas konstant och lysdioden kommer att flimra, med dess tillstånd inverterat hela tiden. När vi tar bort magneten är det verkligen oförutsägbart hur staten kommer att hamna eftersom detta beror på tidpunkten. Men det här läget är verkligen användbart om vi behöver veta hur länge en knapp har tryckts in eftersom vi kan använda tidsfunktioner för att bestämma det.

Steg 4: Ytterligare åtgärder

Ytterligare åtgärder
Ytterligare åtgärder

Avbrott är ett enkelt sätt att göra ditt system mer mottagligt för tidskänsliga uppgifter. De har också den extra fördelen att frigöra din huvudsakliga `loop ()` för att fokusera på någon primär uppgift i systemet. (Jag tycker att detta tenderar att göra min kod lite mer organiserad när jag använder dem - det är lättare att se vad huvuddelen av kod var avsedd för, medan avbrotten hanterar periodiska händelser.) Exemplet som visas här är nästan det mest grundläggande fall för att använda ett avbrott - du kan använda dem för att läsa en I2C -enhet, skicka eller ta emot trådlös data eller till och med starta eller stoppa en motor.

Om du har en intressant användning av ett avbrott eller en hall -effektsensor, var noga med att meddela mig i kommentarerna, gilla och dela denna instruerbara, och glöm inte att prenumerera på min YouTube -kanal för fler fantastiska handledning och projekt i framtida.

Skål och tack för att du tittade!

Rekommenderad: