Bună ziua băieți, bine ați venit la tutorialul de astăzi. Astăzi vom vedea cum să folosim un senzor cu efect Hall cu Arduino.
Un senzor cu efect Hall este un senzor care își variază ieșirea în funcție de prezența sau absența unui câmp magnetic. Acest lucru înseamnă că semnalul de ieșire produs de un senzor cu efect Hall este o funcție de densitatea câmpului magnetic din jurul său. Atunci când densitatea fluxului magnetic din jurul său depășește o anumită valoare de prag prestabilită, senzorul o detectează și generează o tensiune de ieșire numită uneori tensiune Hall pentru a indica prezența câmpului magnetic.
Senzorii cu efect Hall devin foarte populari datorită versatilității lor și sunt utilizați în multe aplicații diferite. Una dintre aplicațiile populare ale senzorilor cu efect Hall este în sistemele auto, unde sunt utilizați pentru a detecta poziția, a măsura distanța și viteza. Aceștia sunt, de asemenea, utilizați în dispozitive moderne, cum ar fi smartphone-urile și computerele și, de asemenea, sunt utilizați în diferite tipuri de întrerupătoare în care prezența unui câmp magnetic este utilizată pentru a activa sau dezactiva un circuit.
Senzorii cu efect de hal produc ieșiri fie analogice, fie digitale, în funcție de senzorul respectiv. Oricare ar fi tipul, aceștia vin de obicei într-un pachet cu trei pini, cu un pin pentru a reprezenta semnalul și ceilalți doi pentru a asigura alimentarea senzorului. Acest lucru ușurează conectarea la orice microcontroler.
Pentru tutorialul de astăzi, vom demonstra cum funcționează senzorul cu efect Hall prin conectarea acestuia alături de un LED la un Arduino. Arduino va fi programat astfel încât atunci când un magnet este adus aproape de senzorul cu efect hall, LED-ul se aprinde, iar când magnetul este îndepărtat, acesta se stinge.
Componente necesare
Pentru a construi acest proiect sunt necesare următoarele componente.
- Senzor cu efect Hall
- Cheap Arduino Uno
- Breadboard mini
- LED
- Cercete
- Magneți
Ca de obicei, componentele exacte folosite pentru acest tutorial pot fi cumpărate prin intermediul link-urilor atașate la fiecare dintre componentele enumerate mai sus.
Schematică
Schema pentru acest proiect este una simplă, deoarece tot ce trebuie să facem este să conectăm cei trei pini ai senzorului Hall și un LED la Arduino. Conectați componentele așa cum se arată în schemele de mai jos.
Conexiunea este descrisă în continuare mai jos pentru a fi mai ușor de urmărit.
Senzor de hală – Arduino
VCC - 5VGND - GNDSIG - D2
LED-ul poate fi conectat direct la Arduino cu piciorul pozitiv în pinul 13 al Arduino și celălalt picior conectat la pinul de masă fără o rezistență, deoarece Arduino are o rezistență internă atașată la pinul 13.
Cu schemele realizate, putem trece la codul pentru acest proiect.
Cod
Codul pentru acest proiect este foarte simplu, tot ceea ce vrem să facem, așa cum am menționat mai devreme, este să verificăm dacă este detectat un câmp magnetic și, dacă da, să aprindem LED-ul, dacă nu, îl stingem.
Pentru a face o scurtă explicație a codului pentru acest proiect, primul lucru pe care îl facem este să declarăm pinii Arduino la care este conectat senzorul nostru Hall și LED-ul, după care creăm o variabilă „state” care va stoca valoarea de la senzorul Hall.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;
În continuare, trecem la funcția void setup unde declarăm modul pinilor pentru pinii Arduino la care sunt conectate LED-ul și senzorul Hall.
void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }
În continuare este funcția void loop, sarcina de aici este aceeași ca și cum am dori să folosim un buton pentru a controla un LED cu un Arduino între ele. Citim ieșirea senzorului Hall și o stocăm într-o variabilă numită state. Când valoarea este LOW, aprindem LED-ul, HIGH, iar când valoarea este high, aprindem LED-ul Low. Configurația senzorului dvs. hall poate fi diferită, deoarece senzorul poate deveni ridicat atunci când este detectat un câmp magnetic. Acest lucru ar trebui confirmat pe fișa tehnică a senzorului.
void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Codul complet pentru acest proiect este prezentat mai jos și, de asemenea, disponibil pentru descărcare în secțiunea de descărcare de la sfârșitul acestui tutorial.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Demo
Copiați codul și încărcați-l pe placa dumneavoastră Arduino. Ar trebui să vedeți comutarea LED-ului atunci când un magnet este adus aproape de el, așa cum se arată în imaginea de mai jos.