Kazalo:

Senzor učinka Arduino Hall s prekinitvami: 4 koraki
Senzor učinka Arduino Hall s prekinitvami: 4 koraki

Video: Senzor učinka Arduino Hall s prekinitvami: 4 koraki

Video: Senzor učinka Arduino Hall s prekinitvami: 4 koraki
Video: Как использовать датчик переменного/постоянного тока Allegro ACS712 с Arduino 2024, Julij
Anonim
Image
Image
Kaj je Hall -ov senzor?
Kaj je Hall -ov senzor?

Zdravo vsi, Danes vam bom pokazal, kako lahko senzor Hallovega učinka povežete z Arduinom in ga uporabite s prekinitvijo.

Orodja in materiali, uporabljeni v videoposnetku (partnerske povezave): Arduino Uno:

Senzorji Hallovih učinkov:

Različni upori:

1. korak: Kaj je Hall -ov senzor?

Kaj je senzor Hall učinka?
Kaj je senzor Hall učinka?
Kaj je senzor Hall učinka?
Kaj je senzor Hall učinka?
Kaj je Hall -ov senzor?
Kaj je Hall -ov senzor?

Hall -ov senzor je naprava, ki se uporablja za merjenje velikosti magnetnega polja. Njegova izhodna napetost je neposredno sorazmerna z jakostjo magnetnega polja skozi to.

Hall -ovi senzorji se uporabljajo za zaznavanje bližine, pozicioniranje, zaznavanje hitrosti in zaznavanje toka.

Tisti, s katerim bom danes delal, je označen kot 3144, ki je stikalo z učinkom Hall -a, ki se uporablja predvsem za visokotemperaturne in avtomobilske aplikacije. Njegov izhod je privzeto visok in se enkrat zniža v prisotnosti magnetnega polja.

Senzor ima 3 zatiče, VCC, ozemljitev in izhod. Prepoznate jih lahko v tem vrstnem redu, če držite senzor z nalepkami proti sebi. VCC je na levi, izhod pa na desni strani. Za preprečitev kakršnega koli premika napetosti se med VCC in izhodom v vlečni konfiguraciji uporablja 10k upor.

2. korak: Kaj je prekinitev?

Kaj je prekinitev?
Kaj je prekinitev?
Kaj je prekinitev?
Kaj je prekinitev?

Za priključitev senzorja na Arduino bomo uporabili preprosto, a zelo zmogljivo funkcijo, imenovano Interrupt. Naloga prekinitve je zagotoviti, da se procesor hitro odzove na pomembne dogodke. Ko zaznamo določen signal, prekinitev (kot že ime pove) prekine vse, kar procesor počne, in izvede neko kodo, namenjeno odzivanju na kakršen koli zunanji dražljaj, ki se napaja v Arduino. Ko se koda zaključi, se procesor vrne k temu, kar je prvotno počel, kot da se ni nič zgodilo!

Pri tem je super to, da sistem strukturira tako, da se hitro in učinkovito odzove na pomembne dogodke, ki jih programska oprema ni težko predvideti. Najboljše od vsega je, da osvobodi vaš procesor za opravljanje drugih stvari, medtem ko čaka na pojav dogodka.

Arduino Uno ima dva zatiča, ki ju lahko uporabimo kot prekinitve, pin 2 in 3. Funkcija, ki jo uporabljamo za registracijo zatiča kot prekinitve, se imenuje attachInterrupt, kjer kot prvi parameter pošljemo pin, ki ga je treba uporabiti, je drugi parameter ime funkcije, ki jo želimo poklicati, ko zazna prekinitev, in kot tretji parameter pošljemo v načinu, v katerem želimo, da prekinitev deluje. V opisu videoposnetka je povezava do celotne reference za to funkcijo.

3. korak: Povezave in koda

Povezave in koda
Povezave in koda
Povezave in koda
Povezave in koda
Povezave in koda
Povezave in koda

V našem primeru senzor Hallovih učinkov povežemo z nožico 2 na Arduinu. Na začetku skice določimo spremenljivke za številko pina vgrajene LED, prekinitveni pin in bajtno spremenljivko, ki jo bomo uporabili za spreminjanje prek prekinitve. Ključno je, da to označimo kot nestanovitno, da bo prevajalnik vedel, da se spreminja zunaj glavnega toka programa skozi prekinitev.

V nastavitveni funkciji najprej določimo načine na uporabljenih zatičih, nato pa prekinitev pripnemo, kot je bilo že pojasnjeno. Druga funkcija, ki jo uporabljamo tukaj, je digitalPinToInterrupt, ki kot že ime pove, številko pin prevede v številko prekinitve.

Pri glavni metodi samo zapišemo spremenljivko stanja na LED zatič in dodamo zelo majhno zamudo, da ima procesor dovolj časa za pravilno delovanje.

Kjer smo priložili prekinitev, smo kot drugi parameter podali utripanje in to je ime funkcije, ki jo je treba poklicati. V notranjosti samo obrnemo državno vrednost.

Tretji parameter funkcije attachIntertupt je način, v katerem deluje. Ko ga imamo kot CHANGE, se bo funkcija utripanja izvajala vsakič, ko se spremeni stanje prekinitve, zato jo bomo enkrat poklicali, ko magnet približamo senzorju, in znova sprožili, ko ga odstranimo. Na ta način sveti LED, medtem ko magnet držimo blizu senzorja.

Če način spremenimo v RISING, se bo funkcija utripanja sprožila šele, ko bo na prekinitvenem zatiču viden naraščajoči rob signala. Zdaj, ko magnet približamo senzorju, se LED -dioda bodisi izklopi ali prižge, zato smo v bistvu naredili magnetno stikalo.

Končni način, ki ga bomo poskusili, je NIZKA. Ko je magnet blizu, se bo funkcija utripanja nenehno sprožala in LED bo utripala, pri čemer bo stanje ves čas obrnjeno. Ko odstranimo magnet, je res nepredvidljivo, kako se bo stanje končalo, saj je to odvisno od časa. Vendar je ta način zelo koristen, če moramo vedeti, kako dolgo je bil pritisnjen gumb, saj lahko to določimo s funkcijami za merjenje časa.

4. korak: Nadaljnji ukrepi

Nadaljnji ukrepi
Nadaljnji ukrepi

Prekinitve so preprost način, da naredite sistem bolj odziven na časovno občutljiva opravila. Prav tako imajo dodatno prednost, da osvobodijo vašo glavno `zanko () ', da se osredotočijo na nekaj primarnih nalog v sistemu. (Ugotavljam, da je zaradi tega moja koda nekoliko bolj organizirana, ko jih uporabljam - lažje je videti, čemu je bil namenjen glavni del kode, medtem ko prekinitve obravnavajo periodične dogodke.) Primer, prikazan tukaj, je skoraj najbolj osnovni primer uporabe prekinitve - uporabite jih lahko za branje naprave I2C, pošiljanje ali sprejemanje brezžičnih podatkov ali celo zagon ali ustavitev motorja.

Če imate zanimivo uporabo senzorja za prekinitve ali halne učinke, mi to sporočite v komentarjih, všečkajte in delite ta Instructable ter se ne pozabite naročiti na moj YouTube kanal za več čudovitih vaj in projektov v prihodnost.

Na zdravje in hvala za ogled!

Priporočena: