- Materiale necesare:
- Senzori de efect Hall:
- Schema și explicația circuitului:
- Senzor de efect Hall Cod Arduino:
- Senzorul de efect Arduino Hall funcționează:
Senzorii au fost întotdeauna o componentă vitală în orice proiect. Acestea sunt cele care convertesc datele de mediu în timp real în date digitale / variabile, astfel încât să poată fi procesate prin electronică. Există multe tipuri diferite de senzori disponibili pe piață și puteți selecta unul pe baza cerințelor dvs. În acest proiect vom învăța cum să folosim un senzor Hall, cunoscut și ca senzor de efect Hall, cu Arduino. Acest senzor este capabil să detecteze un magnet și, de asemenea, polul magnetului.
De ce să detectăm un magnet ?, s- ar putea să întrebați. Ei bine, există o mulțime de aplicații care folosesc practic senzorul de efect Hall și este posibil să nu le fi observat niciodată. O aplicație obișnuită a acestui senzor este măsurarea vitezei la biciclete sau la orice mașină rotativă. Acest senzor este, de asemenea, utilizat în motoarele BLDC pentru a detecta poziția magneților rotorului și pentru a declanșa bobinele statorului în consecință. Aplicațiile sunt nelimitate, așa că haideți să învățăm cum să interfață senzorul de efect Hall Arduino pentru a adăuga un alt instrument în arsenalul nostru. Iată câteva proiecte cu senzor Hall:
- Vitezometru DIY utilizând aplicația Android Arduino și Processing
- Vitezometru digital și circuit de kilometraj folosind microcontrolerul PIC
- Realitate virtuală folosind Arduino și Procesare
- Măsurarea puterii câmpului magnetic folosind Arduino
În acest tutorial vom folosi funcția de întrerupere a Arduino pentru a detecta magnetul lângă senzorul Hall și pentru a aprinde un LED. De cele mai multe ori senzorul Hall va fi utilizat numai cu întreruperi datorită aplicațiilor lor în care este necesară o viteză mare de citire și executare, deci să folosim întreruperi și în tutorialul nostru.
Materiale necesare:
- Senzor de efect Hall (orice versiune digitală)
- Arduino (Orice versiune)
- Rezistor 10k ohm și 1K ohm
- LED
- Conectarea firelor
Senzori de efect Hall:
Înainte de a ne scufunda în conexiuni, există câteva lucruri importante pe care ar trebui să le știți despre senzorii de efect Hall. Există, de fapt, două tipuri diferite de senzori Hall unul este senzorul Digital Hall și celălalt este senzorul Analog Hall. Senzorul digital Hall poate detecta doar dacă un magnet este prezent sau nu (0 sau 1), dar ieșirea unui senzor analog analog variază în funcție de câmpul magnetic din jurul magnetului, adică poate detecta cât de puternic sau cât de departe este magnetul. În acest proiect se va viza doar senzorii digitali Hall, deoarece aceștia sunt cei mai utilizați.
După cum sugerează și numele, senzorul Efect Hall funcționează cu principiul „Efect Hall”. Conform acestei legi „atunci când un conductor sau semiconductor cu curent care curge într-o direcție a fost introdus perpendicular pe un câmp magnetic, o tensiune ar putea fi măsurată în unghi drept cu calea curentului”. Folosind această tehnică, senzorul de sală va putea detecta prezența magnetului în jurul său. Destul de teorie să intrăm în hardware.
Schema și explicația circuitului:
Schema completă a circuitului pentru interfața senzorului Hall cu Arduino poate fi găsită mai jos.
După cum puteți vedea, diagrama circuitului senzorului de efect hall arduino este destul de simplă. Dar locul în care greșim în mod obișnuit este să aflăm numărul pinilor senzorilor de sală. Plasați citirile cu fața către dvs. și primul pin din stânga este Vcc, apoi Ground și respectiv Signal.
Vom folosi întreruperile așa cum am spus mai devreme, prin urmare pinul de ieșire al senzorului Hall este conectat la pinul 2 al Arduino. Pinul este conectat la un LED care va fi aprins când este detectat un magnet. Pur și simplu am făcut conexiunile pe un panou de calcul și a arătat oarecum așa mai jos odată finalizat.
Senzor de efect Hall Cod Arduino:
Codul Arduino complet este la doar câteva linii și poate fi găsit în partea de jos a acestei pagini, care pot fi încărcate direct pe Board - ul Arduino. Dacă doriți să aflați cum funcționează programul, citiți mai departe.
Avem o intrare, care este senzorul și o ieșire, care este un LED. Senzorul trebuie să fie conectat ca intrare de întrerupere. Deci, în interiorul funcției noastre de configurare , inițializăm acești pini și, de asemenea, facem Pinul 2 să funcționeze ca o întrerupere. Aici pinul 2 se numește senzor Hall_ și pinul 3 se numește LED .
void setup () {pinMode (LED, OUTPUT); // LED-ul este un pin pinMode de ieșire (Hall_sensor, INPUT_PULLUP); // Senzorul Hall este pinul de intrare attachInterrupt (digitalPinToInterrupt (Hall_sensor), toggle, CHANGE); // Pinul doi este pinul de întrerupere care va apela la funcția de comutare}
Când se detectează o întrerupere, funcția de comutare va fi apelată așa cum se menționează în linia de mai sus. Există mulți parametri de întrerupere precum Toggle , Change, Rise, Fall etc., dar în acest tutorial detectăm schimbarea ieșirii din senzorul Hall.
Acum, în funcția de comutare , folosim o variabilă numită „ stare ” care își va schimba starea la 0 dacă este deja 1 și la 1 dacă este deja zero. Astfel putem face LED-ul să se aprindă sau să se stingă.
void toggle () {state =! state; }
În cele din urmă, în funcția noastră de buclă , trebuie doar să controlăm LED-ul. Starea variabilă va fi modificată de fiecare dată când este detectat un magnet, prin urmare îl folosim pentru a determina dacă LED-ul ar trebui să rămână aprins sau oprit.
bucla void () {digitalWrite (LED, stare); }
Senzorul de efect Arduino Hall funcționează:
Odată ce sunteți pregătit pentru hardware și cod, încărcați codul pe Arduino. Am folosit o baterie de 9V pentru a alimenta întreaga configurație, puteți utiliza orice sursă de energie preferată. Acum apropiați magnetul de senzor și LED-ul dvs. va străluci și, dacă îl luați, se va stinge.
Notă: senzorul Hall este sensibil la pol, ceea ce înseamnă că o parte a senzorului poate detecta fie doar polul nord, fie numai polul sud și nu ambele. Deci, dacă aduceți un pol sud aproape de suprafața de detectare nordică, LED-ul dvs. nu va străluci.
Ceea ce se întâmplă de fapt în interior este că, atunci când apropiem magnetul de senzor, senzorul își schimbă starea. Această modificare este sesizată de pinul de întrerupere care va apela funcția de comutare în interiorul căreia schimbăm variabila „stare” de la 0 la 1. Prin urmare, LED-ul se va aprinde. Acum, când îndepărtăm magnetul de senzor, din nou ieșirea senzorului se va schimba. Această schimbare este din nou remarcată de declarația noastră de întrerupere și, prin urmare, variabila „stare” va fi modificată de la 1 la 0. Astfel LED-ul dacă este oprit. Același lucru se repetă de fiecare dată când aduceți un magnet aproape de senzor.
Video complet de lucru al proiectului pot fi găsite mai jos. Sper că ați înțeles proiectul și v-a plăcut să construiți ceva nou. În caz contrar, folosiți secțiunea de comentarii de mai jos sau forumurile pentru ajutor.