Indholdsfortegnelse:

Arduino Hall -effektsensor med afbrydelser: 4 trin
Arduino Hall -effektsensor med afbrydelser: 4 trin

Video: Arduino Hall -effektsensor med afbrydelser: 4 trin

Video: Arduino Hall -effektsensor med afbrydelser: 4 trin
Video: Amazing arduino project 2024, November
Anonim
Image
Image
Hvad er en hall -effektsensor?
Hvad er en hall -effektsensor?

Hej allesammen, I dag viser jeg dig, hvordan du kan forbinde en hall -effektsensor til en Arduino og bruge den med en afbrydelse.

Værktøjer og materialer, der bruges i videoen (tilknyttede links): Arduino Uno:

Hall -effekt sensorer:

Assorterede modstande:

Trin 1: Hvad er en hall -effektsensor?

Hvad er en hall -effektsensor?
Hvad er en hall -effektsensor?
Hvad er en hall -effektsensor?
Hvad er en hall -effektsensor?
Hvad er en hall -effektsensor?
Hvad er en hall -effektsensor?

En Hall -effektføler er en enhed, der bruges til at måle størrelsen af et magnetfelt. Dens udgangsspænding er direkte proportional med magnetfeltstyrken gennem den.

Hall -effekt sensorer bruges til nærhedsføling, positionering, hastighedsregistrering og aktuelle sensing applikationer.

Den, jeg skal arbejde med i dag, er mærket som 3144, som er en hall -effektafbryder, der primært bruges til høje temperaturer og bilapplikationer. Dens output er som standard høj og går lavt en gang i nærvær af et magnetfelt.

Sensoren har 3 ben, VCC, jord og output. Du kan identificere dem i den rækkefølge, hvis du holder sensoren med etiketterne mod dig. VCC er til venstre, og output er på højre side. For at forhindre spændingsdrift bruges en 10k modstand mellem VCC og udgangen i en pull-up konfiguration.

Trin 2: Hvad er en afbrydelse?

Hvad er en afbrydelse?
Hvad er en afbrydelse?
Hvad er en afbrydelse?
Hvad er en afbrydelse?

For at forbinde sensoren på Arduino bruger vi en enkel, men meget kraftfuld funktion kaldet Interrupt. Et afbrydelsesjob er at sikre, at processoren reagerer hurtigt på vigtige begivenheder. Når et bestemt signal opdages, afbryder en afbrydelse (som navnet antyder), hvad processoren laver, og udfører en kode, der er designet til at reagere på, hvilken ekstern stimulus, der tilføres Arduino. Når koden er pakket ind, går processoren tilbage til, hvad den oprindeligt gjorde, som om intet skete!

Det fantastiske ved dette er, at det strukturerer dit system til hurtigt og effektivt at reagere på vigtige begivenheder, der ikke er lette at forudse i software. Bedst af alt frigør det din processor til at gøre andre ting, mens den venter på, at en begivenhed skal dukke op.

Arduino Uno har to ben, som vi kan bruge som afbrydelser, pin 2 og 3. Funktionen, som vi bruger til at registrere stiften som en afbrydelse, kaldes attachInterrupt, hvor vi som en første parameter sender den pin, der skal bruges, den anden parameter er navnet på den funktion, som vi vil kalde, når et afbrydelse er registreret, og som en tredje parameter sender vi i den tilstand, hvor vi vil have afbrydelsen til at fungere. Der er et link i videobeskrivelsen til den fulde reference til denne funktion.

Trin 3: Forbindelser og kode

Forbindelser og kode
Forbindelser og kode
Forbindelser og kode
Forbindelser og kode
Forbindelser og kode
Forbindelser og kode

I vores eksempel forbinder vi hall -effektsensoren til pin 2 på Arduino. I begyndelsen af skitsen definerer vi variablerne for pin -nummeret på den indbyggede LED, interrupt -pin samt en byte -variabel, som vi vil bruge til at ændre gennem interrupten. Det er afgørende, at vi markerer denne som flygtig, så kompilatoren kan vide, at den ændres uden for hovedprogrammets gennemstrømning.

I opsætningsfunktionen angiver vi først tilstande på de ben, der bruges, og derefter vedhæfter vi afbrydelsen som tidligere forklaret. En anden funktion, vi bruger her, er digitalPinToInterrupt, som som navnet antyder, oversætter pin -nummeret til interrupt -nummeret.

I hovedmetoden skriver vi bare tilstandsvariablen på LED -stiften og tilføjer en meget lille forsinkelse, så processoren kan få tid til at fungere korrekt.

Hvor vi vedhæftede afbrydelsen, specificerede vi blink som den anden parameter, og dette er funktionsnavnet, der skal kaldes. Indenfor vender vi bare om statens værdi.

Den tredje parameter i attachIntertupt -funktionen er den tilstand, den fungerer på. Når vi har det som CHANGE, vil blinkfunktionen blive udført hver gang afbrydelsestilstanden ændres, så vil det blive kaldt en gang, når vi får magneten tæt på sensoren og udløses igen, når vi fjerner den. På denne måde er LED'en tændt, mens vi holder magneten tæt på sensoren.

Hvis vi nu ændrer tilstanden til RISING, udløses blinkfunktionen først, når en stigende kant af signalet er set på afbryderstiften. Nu hver gang vi bringer magneten tæt på sensoren, slukker eller tænder LED'en, så vi lavede stort set en magnetisk switch.

Den sidste tilstand, vi vil prøve, er LAV. Med den, når magneten er tæt, vil blinkfunktionen konstant blive udløst, og LED'en blinker, idet tilstanden er inverteret hele tiden. Når vi fjerner magneten, er det virkelig uforudsigeligt, hvordan staten ender, da dette afhænger af timingen. Denne tilstand er imidlertid virkelig nyttig, hvis vi har brug for at vide, hvor længe der blev trykket på en knap, da vi kan bruge timingfunktioner til at bestemme det.

Trin 4: Yderligere handlinger

Yderligere handlinger
Yderligere handlinger

Afbrydelser er en enkel måde at gøre dit system mere lydhørt over for tidfølsomme opgaver. De har også den ekstra fordel at frigøre din hoved `loop ()` for at fokusere på en primær opgave i systemet. (Jeg finder ud af, at dette har en tendens til at gøre min kode lidt mere organiseret, når jeg bruger dem - det er lettere at se, hvad hoveddelen af koden var designet til, mens afbrydelserne håndterer periodiske begivenheder.) Eksemplet vist her er næsten det mest grundlæggende sag til brug af en afbrydelse - du kan bruge dem til at læse en I2C -enhed, sende eller modtage trådløse data eller endda starte eller stoppe en motor.

Hvis du har en interessant brug af en interrupt eller en hall effects -sensor, skal du sørge for at give mig besked i kommentarerne, like og del denne Instructable, og glem ikke at abonnere på min YouTube -kanal for flere fantastiske tutorials og projekter i fremtid.

Skål og tak fordi du så med!

Anbefalede: