Innholdsfortegnelse:

Arduino Hall -effektsensor med avbrudd: 4 trinn
Arduino Hall -effektsensor med avbrudd: 4 trinn

Video: Arduino Hall -effektsensor med avbrudd: 4 trinn

Video: Arduino Hall -effektsensor med avbrudd: 4 trinn
Video: VL53L1X Лазерный дистанционный датчик времени полета 400 см 2024, Juli
Anonim
Image
Image
Hva er en hall -effektsensor?
Hva er en hall -effektsensor?

Hei alle sammen, I dag skal jeg vise deg hvordan du kan koble en hall -effektsensor til en Arduino og bruke den med en avbrudd.

Verktøy og materialer som brukes i videoen (tilknyttede lenker): Arduino Uno:

Hall -effekt sensorer:

Assorterte motstander:

Trinn 1: Hva er en hall -effektsensor?

Hva er en hall -effektsensor?
Hva er en hall -effektsensor?
Hva er en hall -effektsensor?
Hva er en hall -effektsensor?
Hva er en hall -effektsensor?
Hva er en hall -effektsensor?

En Hall -effektsensor er en enhet som brukes til å måle størrelsen på et magnetfelt. Utgangsspenningen er direkte proporsjonal med magnetfeltstyrken gjennom den.

Hall -effektsensorer brukes til nærhetsmåling, posisjonering, hastighetsdeteksjon og gjeldende registreringsapplikasjoner.

Den jeg skal jobbe med i dag er merket som 3144, som er en hall -effektbryter som hovedsakelig brukes til applikasjoner med høy temperatur og bil. Utgangen er høy som standard og går lav en gang i nærvær av et magnetfelt.

Sensoren har 3 pinner, VCC, jord og utgang. Du kan identifisere dem i den rekkefølgen hvis du holder sensoren med etikettene mot deg. VCC er til venstre, og utgangen er på høyre side. For å forhindre spenningsavvik, brukes en 10k motstand mellom VCC og utgangen i en opptrekkskonfigurasjon.

Trinn 2: Hva er et avbrudd?

Hva er et avbrudd?
Hva er et avbrudd?
Hva er et avbrudd?
Hva er et avbrudd?

For å koble sensoren på Arduino, bruker vi en enkel, men veldig kraftig funksjon som heter Interrupt. En avbruddsjobb er å sørge for at prosessoren reagerer raskt på viktige hendelser. Når et bestemt signal oppdages, avbryter et avbrudd (som navnet antyder) det prosessoren gjør, og utfører en kode som er designet for å reagere på hvilken som helst ekstern stimulans som mates til Arduino. Når koden er pakket opp, går prosessoren tilbake til det den opprinnelig gjorde som om ingenting skjedde!

Det som er fantastisk med dette er at det strukturerer systemet ditt for å reagere raskt og effektivt på viktige hendelser som det ikke er lett å forutse i programvare. Best av alt, det frigjør prosessoren din for å gjøre andre ting mens den venter på at et arrangement skal dukke opp.

Arduino Uno har to pins som vi kan bruke som Interrupts, pin 2 og 3. Funksjonen som vi bruker til å registrere pin som interrupt kalles attachInterrupt hvor den første parameteren vi sender inn pinnen som skal brukes, er den andre parameteren navnet på funksjonen som vi vil kalle når en avbrudd er oppdaget, og som en tredje parameter sender vi i modusen der vi vil at avbruddet skal fungere. Det er en lenke i videobeskrivelsen til hele referansen for denne funksjonen.

Trinn 3: Tilkoblinger og kode

Tilkoblinger og kode
Tilkoblinger og kode
Tilkoblinger og kode
Tilkoblinger og kode
Tilkoblinger og kode
Tilkoblinger og kode

I vårt eksempel kobler vi hall -effektsensoren til pin 2 på Arduino. I begynnelsen av skissen definerer vi variablene for pin -nummeret til den innebygde LED -en, interrupt -pin og en byte -variabel som vi vil bruke til å endre gjennom interrupt. Det er avgjørende at vi markerer denne som flyktig, slik at kompilatoren kan vite at den blir modifisert utenfor hovedprogramflyten gjennom avbruddet.

I oppsettfunksjonen spesifiserer vi først modusene på pinnene som brukes, og deretter legger vi til avbruddet som tidligere forklart. En annen funksjon vi bruker her er digitalPinToInterrupt som, som navnet tilsier, oversetter pin -nummeret til interrupt -nummeret.

I hovedmetoden skriver vi bare tilstandsvariabelen på LED -pinnen og legger til en veldig liten forsinkelse slik at prosessoren kan få tid til å fungere skikkelig.

Der vi festet interrupt, spesifiserte vi blink som den andre parameteren, og dette er funksjonsnavnet som skal kalles. Innvendig inverterer vi bare statens verdi.

Den tredje parameteren i attachIntertupt -funksjonen er modusen den fungerer på. Når vi har den som ENDRE, vil blinkfunksjonen bli utført hver gang avbruddstilstanden endres, så vil den bli ringt opp en gang vi får magneten nær sensoren og utløses igjen når vi fjerner den. På denne måten lyser LED -en mens vi holder magneten nær sensoren.

Hvis vi nå endrer modus til RISING, vil blinkfunksjonen bare utløses når en stigende kant av signalet er sett på avbruddspinnen. Hver gang vi bringer magneten nær sensoren, slår LED -en seg enten av eller på, så vi har i utgangspunktet laget en magnetisk bryter.

Den siste modusen vi skal prøve er LAV. Med den, når magneten er i nærheten, vil blinkfunksjonen konstant bli utløst og LED -en vil blinke, og tilstanden er invertert hele tiden. Når vi fjerner magneten, er det virkelig uforutsigbart hvordan staten vil ende opp, da dette er avhengig av timingen. Imidlertid er denne modusen veldig nyttig hvis vi trenger å vite hvor lenge en knapp ble trykket, ettersom vi kan bruke tidsfunksjoner for å bestemme det.

Trinn 4: Ytterligere handlinger

Ytterligere handlinger
Ytterligere handlinger

Avbrudd er en enkel måte å gjøre systemet mer lydhør for tidssensitive oppgaver. De har også den ekstra fordelen med å frigjøre hoved `loop ()` for å fokusere på en hovedoppgave i systemet. (Jeg finner ut at dette har en tendens til å gjøre koden min litt mer organisert når jeg bruker dem - det er lettere å se hva hoveddelen av koden ble designet for, mens avbruddene håndterer periodiske hendelser.) Eksemplet som vises her er omtrent det mest grunnleggende sak for bruk av avbrudd - du kan bruke dem til å lese en I2C -enhet, sende eller motta trådløse data, eller til og med starte eller stoppe en motor.

Hvis du har en interessant bruk av en avbrudds- eller en hall -effektsensor, må du gi meg beskjed i kommentarene, like og dele denne instruksen, og ikke glem å abonnere på YouTube -kanalen min for flere fantastiske opplæringsprogrammer og prosjekter i framtid.

Hei og takk for at du så på!

Anbefalt: