- Potrebni materiali:
- Senzorji Hallovega učinka:
- Shema vezja in razlaga:
- Koda Arduino-senzorja Hall-ovega učinka:
- Deluje senzor učinka Arduino Hall:
Senzorji so bili vedno pomemben sestavni del katerega koli projekta. To so podatki, ki sproti spreminjajo podatke o okolju v realnem času v digitalne / spremenljive podatke, tako da jih lahko elektronika obdeluje. Na trgu je na voljo veliko različnih vrst senzorjev, ki jih lahko izberete glede na vaše potrebe. V tem projektu se bomo naučili, kako uporabljati Hallov senzor, znan tudi kot senzor Hallovega učinka, z Arduinom. Ta senzor je sposoben zaznati magnet in tudi pol magneta.
Zakaj zaznati magnet ?, se lahko vprašate. No, obstaja veliko aplikacij, ki praktično uporabljajo Hall Effect senzor in jih morda še nikoli nismo opazili. Ena najpogostejših aplikacij tega senzorja je merjenje hitrosti na kolesih ali katerih koli vrtljivih strojih. Ta senzor se uporablja tudi v BLDC motorjih, da zazna položaj rotorskih magnetov in ustrezno sproži statorske tuljave. Aplikacij je neskončno, zato se naučimo, kako vmesnik senzorja učinka Hall Arduino dodati še eno orodje v našem arzenalu. Tu je nekaj projektov s Hallovim senzorjem:
- DIY merilnik hitrosti z uporabo Arduino in obdelavo Android App
- Vezje digitalnega merilnika hitrosti in števca kilometrov z uporabo mikrokrmilnika PIC
- Navidezna resničnost z uporabo Arduina in obdelave
- Merjenje jakosti magnetnega polja z uporabo Arduina
V tej vadnici bomo uporabili funkcijo prekinitve Arduino za zaznavanje magneta v bližini Hallovega senzorja in žarjenje LED. Večinoma se bo Hall-ov senzor uporabljal samo s prekinitvami zaradi njihovih aplikacij, pri katerih je potrebna velika hitrost branja in izvrševanja, zato v naši vadnici uporabimo tudi prekinitve.
Potrebni materiali:
- Hall Effect Sensor (poljubna digitalna različica)
- Arduino (katera koli različica)
- 10k ohm in 1K ohm upor
- LED
- Povezovanje žic
Senzorji Hallovega učinka:
Preden se potopimo v povezave, morate vedeti nekaj pomembnih stvari o senzorjih Hall Effect. Dejansko obstajata dve različni tipi Hall-ovih senzorjev, eden je Digitalni Hallov senzor, drugi pa Analogni Hallov senzor. Digitalni Hallov senzor lahko zazna samo, če je magnet prisoten ali ne (0 ali 1), izhod analognega Hall senzorja pa se spreminja glede na magnetno polje okoli magneta, torej lahko zazna, kako močan ali kako daleč je magnet. V tem projektu bo namenjen samo digitalnim Hall senzorjem, saj so najpogosteje uporabljeni.
Kot že ime pove, senzor Hallovega učinka deluje po principu "Hallov efekt". Po tem zakonu "ko je bil prevodnik ali polprevodnik s tokom, ki teče v eno smer, pravokotno na magnetno polje, se je napetost lahko izmerila pravokotno na tokovno pot". S to tehniko bo dvoranski senzor lahko zaznal prisotnost magneta okoli sebe. Dovolj teorije, pojdimo v strojno opremo.
Shema vezja in razlaga:
Celoten diagram vezja za povezovanje Hallovega senzorja z Arduinom najdete spodaj.
Kot lahko vidite, je diagram vezja arduino senzorja Hall-a precej preprost. Ampak mesto, kjer pogosto delamo napake, je ugotoviti številke pinov dvoranskih senzorjev. Odčitke postavite proti sebi in prvi zatič na levi je Vcc in nato ozemljitev oziroma signal.
Uporabili bomo prekinitve, kot smo že povedali, zato je izhodni zatič Hallovega senzorja povezan s pinom 2 Arduina. Zatič je povezan z LED, ki se vklopi, ko zazna magnet. Preprosto sem vzpostavil povezave na plošči in izgledalo je nekako takole spodaj, ko sem bil dokončan.
Koda Arduino-senzorja Hall-ovega učinka:
Popolna Arduino koda je le nekaj vrstic in ga je mogoče najti na dnu te strani, ki jih je mogoče neposredno naložili na svoj Arduino sveta. Če želite vedeti, kako program deluje, preberite naprej.
Imamo en vhod, to je senzor in en izhod, ki je LED. Senzor mora biti povezan kot prekinitveni vhod. Torej v naši nastavitveni funkciji te zatiče inicializiramo in tudi Pin 2 deluje kot prekinitev. Tu se pin 2 imenuje Hall_sensor, pin 3 pa LED .
void setup () {pinMode (LED, IZHOD); // LED je izhodni pin pinMode (Hall_sensor, INPUT_PULLUP); // Hallov senzor je vhodni pin pinInterrupt (digitalPinToInterrupt (Hall_sensor), preklop, SPREMENI); // Pin dva je prekinitveni pin, ki bo poklical funkcijo preklopa}
Ko je zaznana prekinitev, se pokliče preklopna funkcija, kot je navedeno v zgornji vrstici. Obstaja veliko parametrov prekinitev, kot so preklop , sprememba, dvig, padec itd., Toda v tej vadnici zaznavamo spremembo izhoda iz Hallovega senzorja.
Zdaj znotraj funkcije preklapljanja uporabljamo spremenljivko, imenovano " stanje ", ki bo samo spremenila svoje stanje na 0, če je že 1, in na 1, če je že nič. Na ta način lahko LED vklopimo ali izklopimo.
void toggle () {stanje =! stanje; }
Končno znotraj naše funkcije zanke moramo le nadzorovati LED. Spremenljivo stanje se bo spremenilo vsakič, ko zazna magnet, zato ga uporabimo za določitev, ali naj LED ostane prižgana ali izključena.
void loop () {digitalWrite (LED, stanje); }
Deluje senzor učinka Arduino Hall:
Ko ste pripravljeni na svojo strojno opremo in kodo, jo preprosto naložite v Arduino. Za napajanje celotne naprave sem uporabil 9V baterijo, ki jo lahko uporabite kateri koli zaželen vir energije. Zdaj približajte magnet senzorju in vaša LED bo zasvetila in če jo vzamete, se ugasne.
Opomba: Hallov senzor je občutljiv na pol, kar pomeni, da lahko ena stran senzorja zazna samo severni pol ali samo južni pol in ne obojega. Torej, če južni pol približate severni površini zaznavanja, vaša LED ne bo svetila.
Kaj se dejansko zgodi znotraj, ko magnet približamo senzorju, senzor spremeni svoje stanje. To spremembo zazna prekinitveni zatič, ki pokliče preklopno funkcijo, znotraj katere spremenljivko "stanje" spremenimo z 0 na 1. Zato se bo LED prižgala. Zdaj, ko magnet odmaknemo od senzorja, se bo spet spremenil izhod senzorja. To spremembo znova opazimo z našo izjavo o prekinitvah, zato bo spremenljivka "stanje" spremenjena z 1 na 0. Tako LED, če je izklopljena. Enako se ponovi vsakič, ko magnet približate senzorju.
Celoten delovni video projekta lahko najdete spodaj. Upam, da ste projekt razumeli in uživali v gradnji nečesa novega. Če drugače prosimo, za pomoč uporabite spodnji odsek za komentarje ali forume.