- Materiali richiesti:
- Sensori ad effetto hall:
- Schema del circuito e spiegazione:
- Codice Arduino sensore effetto hall:
- Sensore ad effetto Hall Arduino in funzione:
I sensori sono sempre stati una componente vitale in qualsiasi progetto. Questi sono quelli che convertono i dati ambientali in tempo reale in dati digitali / variabili in modo che possano essere elaborati dall'elettronica. Esistono molti tipi diversi di sensori disponibili sul mercato ed è possibile selezionarne uno in base alle proprie esigenze. In questo progetto impareremo come utilizzare un sensore Hall aka sensore effetto Hall con Arduino. Questo sensore è in grado di rilevare un magnete e anche il polo del magnete.
Perché rilevare un magnete ?, potresti chiedere. Bene, ci sono molte applicazioni che utilizzano praticamente il sensore ad effetto Hall e forse non le avremmo mai notate. Un'applicazione comune di questo sensore è misurare la velocità nelle biciclette o in qualsiasi macchina rotante. Questo sensore viene utilizzato anche nei motori BLDC per rilevare la posizione dei magneti del rotore e attivare di conseguenza le bobine dello statore. Le applicazioni sono infinite, quindi impariamo come interfacciare il sensore ad effetto Hall Arduino per aggiungere un altro strumento nel nostro arsenale. Ecco alcuni progetti con sensore Hall:
- Tachimetro fai-da-te utilizzando Arduino e l'elaborazione dell'app Android
- Contachilometri digitale e circuito contachilometri utilizzando microcontrollore PIC
- Realtà virtuale utilizzando Arduino e Processing
- Misurazione della forza del campo magnetico utilizzando Arduino
In questo tutorial useremo la funzione interrupt di Arduino per rilevare il magnete vicino al sensore Hall e illuminare un LED. Il più delle volte il sensore Hall verrà utilizzato solo con gli interrupt a causa delle loro applicazioni in cui è richiesta un'elevata velocità di lettura ed esecuzione, quindi utilizziamo anche gli interrupt nel nostro tutorial.
Materiali richiesti:
- Sensore effetto hall (qualsiasi versione digitale)
- Arduino (qualsiasi versione)
- Resistore da 10k ohm e 1K ohm
- GUIDATO
- Collegamento dei cavi
Sensori ad effetto hall:
Prima di immergerci nelle connessioni, ci sono alcune cose importanti che dovresti sapere sui sensori a effetto Hall. In realtà ci sono due diversi tipi di sensori Hall, uno è un sensore Hall digitale e l'altro è un sensore Hall analogico. Il sensore Hall digitale può rilevare solo se un magnete è presente o meno (0 o 1), ma l'uscita di un sensore Hall analogico varia in base al campo magnetico attorno al magnete, ovvero può rilevare quanto è forte o quanto è lontano il magnete. In questo progetto si punterà solo sui sensori digitali di Hall in quanto sono quelli più comunemente utilizzati.
Come suggerisce il nome, il sensore ad effetto Hall funziona con il principio dell '"effetto Hall". Secondo questa legge "quando un conduttore o semiconduttore con corrente che scorre in una direzione veniva introdotto perpendicolare a un campo magnetico, si poteva misurare una tensione ad angolo retto rispetto al percorso della corrente". Utilizzando questa tecnica, il sensore di hall sarà in grado di rilevare la presenza di un magnete attorno ad esso. Basta con la teoria entriamo nell'hardware.
Schema del circuito e spiegazione:
Di seguito è riportato lo schema circuitale completo per l' interfacciamento del sensore Hall con Arduino.
Come puoi vedere, lo schema del circuito arduino del sensore effetto hall è piuttosto semplice. Ma il punto in cui comunemente commettiamo errori è capire il numero di pin dei sensori di hall. Posiziona le letture di fronte a te e il primo pin alla tua sinistra è il Vcc e poi Ground e Signal rispettivamente.
Useremo gli interrupt come detto in precedenza, quindi il pin di uscita del sensore Hall è collegato al pin 2 di Arduino. Il Pin è collegato a un LED che si accende quando viene rilevato un magnete. Ho semplicemente effettuato i collegamenti su una breadboard e una volta completato sembrava un po 'come questo.
Codice Arduino sensore effetto hall:
Il codice Arduino completo è di poche righe e si trova in fondo a questa pagina che può essere caricato direttamente sulla tua scheda Arduino. Se vuoi sapere come funziona il programma leggi oltre.
Abbiamo un ingresso, che è il sensore e un'uscita che è un LED. Il sensore deve essere collegato come ingresso di interrupt. Quindi, all'interno della nostra funzione di configurazione , inizializziamo questi pin e facciamo anche in modo che il Pin 2 funzioni come interruzione. Qui il pin 2 è chiamato Hall_sensor e il pin 3 è chiamato LED .
void setup () {pinMode (LED, OUTPUT); // LED è un pin di uscita pinMode (Hall_sensor, INPUT_PULLUP); // Il sensore Hall è il pin di ingresso attachInterrupt (digitalPinToInterrupt (Hall_sensor), toggle, CHANGE); // Il secondo pin è il pin di interruzione che chiamerà la funzione di commutazione}
Quando viene rilevato un interrupt, la funzione toggle verrà chiamata come indicato nella riga precedente. Ci sono molti parametri di interrupt come Toggle , Change, Rise, Fall ecc. Ma in questo tutorial stiamo rilevando il cambiamento di output dal sensore Hall.
Ora all'interno della funzione toggle , usiamo una variabile chiamata " state " che cambierà semplicemente il suo stato a 0 se già 1 e a 1 se già zero. In questo modo possiamo accendere o spegnere il LED.
void toggle () {state =! state; }
Infine all'interno della nostra funzione loop , non ci resta che controllare il LED. Lo stato della variabile verrà modificato ogni volta che viene rilevato un magnete, quindi lo utilizziamo per determinare se il LED deve rimanere acceso o spento.
void loop () {digitalWrite (LED, state); }
Sensore ad effetto Hall Arduino in funzione:
Una volta che sei pronto con l'hardware e il codice, carica il codice su Arduino. Ho usato una batteria da 9V per alimentare l'intero set-up è possibile utilizzare qualsiasi fonte di alimentazione preferibile. Ora avvicina il magnete al sensore e il tuo LED si illuminerà e se lo togli si spegnerà.
Nota: il sensore Hall è sensibile al polo, il che significa che un lato del sensore può rilevare solo il polo nord o solo il polo sud e non entrambi. Quindi, se avvicini un polo sud alla superficie di rilevamento nord, il LED non si illuminerà.
Ciò che effettivamente accade all'interno è che quando avviciniamo il magnete al sensore, il sensore cambia il suo stato. Questa variazione viene rilevata dal pin di interrupt che chiamerà la funzione toggle all'interno della quale cambiamo la variabile “state” da 0 a 1. Quindi il LED si accenderà. Ora, quando allontaniamo il magnete dal sensore, di nuovo l'uscita del sensore cambierà. Questo cambiamento viene nuovamente notato dalla nostra dichiarazione di interrupt e quindi la variabile "state" verrà cambiata da 1 a 0. Quindi il LED se spento. Lo stesso si ripete ogni volta che avvicini un magnete al sensore.
Di seguito è riportato il video completo di lavoro del progetto. Spero che tu abbia capito il progetto e ti sia piaciuto costruire qualcosa di nuovo. In caso contrario, si prega gentilmente di utilizzare la sezione commenti qui sotto o il forum per chiedere aiuto.