Innehållsförteckning:
- Steg 1: Vad är en Hall Effect Sensor?
- Steg 2: Vad är ett avbrott?
- Steg 3: Anslutningar och kod
- Steg 4: Ytterligare åtgärder
Video: Arduino Hall Effect Sensor med avbrott: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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?
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?
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
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
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:
STM32CubeMX -knappen avbryter med avbrott: 5 steg
STM32CubeMX Button Debounce With Interrupt: Hej, i den här självstudien kommer jag att försöka ge min enkla lösning för att förhindra knappstopp vilket är en mycket allvarlig fråga. På internet finns det många videor att erbjuda lösning på detta problem, men inga av dem för externt avbrott. Knappen i alla dessa videor
Hur man bygger din egen vindmätare med hjälp av Reed Switches, Hall Effect Sensor och några rester på Nodemcu - Del 2 - Programvara: 5 steg (med bilder)
Hur man bygger din egen vindmätare med hjälp av Reed Switches, Hall Effect Sensor och några rester på Nodemcu - Del 2 - Programvara: Introduktion Detta är uppföljaren till det första inlägget " Hur man bygger din egen vindmätare med Reed Switches, Hall Effect Sensor och några rester på Nodemcu - Del 1 - Hårdvara " - där jag visar hur man monterar vindhastighet och riktningsmätning
Hur man bygger en egen vindmätare med hjälp av Reed Switches, Hall Effect Sensor och några rester på Nodemcu. - Del 1 - Hårdvara: 8 steg (med bilder)
Hur man bygger en egen vindmätare med hjälp av Reed Switches, Hall Effect Sensor och några rester på Nodemcu. - Del 1 - Hårdvara: Introduktion Sedan jag började med studierna av Arduino och Maker -kulturen har jag gärna byggt användbara enheter med skräp- och skrotdelar som flasklock, bitar av PVC, dryckburkar, etc. Jag älskar att ge en sekund liv för någon bit eller någon kompis
Arduino tongenerator utan bibliotek eller seriella funktioner (med avbrott): 10 steg
Arduino Tone Generator With No Library or Serial Functions (With Interrupts): Det här är inte något jag normalt skulle göra instruktioner om, jag föredrar mitt metallarbete, men eftersom jag är elingenjör och måste gå en klass om mikrokontroller ( Embedded Systems Design), jag trodde att jag skulle göra en instruerbar på en av mina sidor
Hall Effect Sensor på Arduino med Fidget Spinner: 3 steg (med bilder)
Hall Effect Sensor på Arduino Använda Fidget Spinner: Abstrakt I detta projekt förklarar jag om hur hall effect sensor fungerar för att mäta fidget spinner hastighet med arduino board. fungerar: -En Hall-effektsensor är en givare som varierar sin utspänning som svar på ett magnetfält. Hall effekt