Ciao ragazzi, benvenuti al tutorial di oggi. Oggi vedremo come utilizzare un sensore a effetto Hall con Arduino.
Un sensore a effetto Hall è un sensore che varia la sua uscita in base alla presenza o assenza di un campo magnetico. Ciò significa che il segnale di uscita prodotto da un sensore a effetto Hall è una funzione della densità del campo magnetico intorno ad esso. Quando la densità del flusso magnetico intorno ad esso supera un certo valore di soglia preimpostato, il sensore lo rileva e genera una tensione di uscita a volte chiamata tensione di Hall per indicare la presenza del campo magnetico.
I sensori Hall stanno diventando molto popolari grazie alla loro versatilità e sono usati in molte applicazioni diverse. Una delle applicazioni popolari dei sensori a effetto Hall è nei sistemi automobilistici dove sono usati per rilevare la posizione, misurare la distanza e la velocità. Sono anche usati in dispositivi moderni come smartphone e computer e anche usati in diversi tipi di interruttori dove la presenza di un campo magnetico è usata per attivare o disattivare un circuito.
I sensori di Hall producono un’uscita analogica o digitale a seconda del particolare sensore. Qualunque sia il tipo, di solito sono disponibili in un pacchetto a tre pin con un pin per rappresentare il segnale e gli altri due per fornire alimentazione al sensore. Questo rende facile la connessione a qualsiasi microcontrollore.
Per il tutorial di oggi, dimostreremo come funziona il sensore a effetto Hall collegandolo insieme a un LED a un Arduino. L’Arduino sarà programmato in modo tale che quando un magnete viene avvicinato al sensore ad effetto Hall, il LED si accende e quando il magnete viene rimosso, si spegne.
Componenti necessari
I seguenti componenti sono necessari per costruire questo progetto.
- Sensore ad effetto Hall
- Cheap Arduino Uno
- Breadboard mini
- LED
- Fili
- Magneti
Come al solito, i componenti esatti utilizzati per questo tutorial possono essere acquistati tramite i link allegati a ciascuno dei componenti elencati sopra.
Schematica
Lo schema di questo progetto è semplice, dato che tutto quello che dobbiamo fare è collegare i tre pin del sensore di Hall e un LED ad Arduino. Collegare i componenti come mostrato nello schema qui sotto.
Il collegamento è ulteriormente descritto di seguito per renderlo facile da seguire.
Sensore di sala – Arduino
VCC - 5VGND - GNDSIG - D2
Il LED può essere collegato direttamente ad Arduino con la gamba positiva nel pin 13 di Arduino e l’altra gamba collegata al pin di terra senza una resistenza perché Arduino ha una resistenza interna collegata al pin 13.
Con lo schema fatto, possiamo procedere al codice per questo progetto.
Codice
Il codice per questo progetto è davvero semplice, tutto quello che vogliamo fare come detto prima è controllare se un campo magnetico viene rilevato e se sì, accendere il LED se no, spegniamo il LED.
Per fare una breve spiegazione del codice di questo progetto, la prima cosa che facciamo è dichiarare i pin di Arduino a cui è collegato il nostro sensore di Hall e il LED, dopo di che creiamo una variabile “state” che memorizzerà il valore dal sensore di Hall.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;
Prossimo, passiamo alla funzione void setup dove dichiariamo la modalità dei pin di Arduino a cui sono collegati il LED e il sensore Hall.
void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }
Prossimo è la funzione void loop, il compito qui è lo stesso che se volessimo usare un pulsante per controllare un LED con un Arduino in mezzo. Leggiamo l’uscita del sensore di Hall e la memorizziamo in una variabile chiamata state. Quando il valore è BASSO, accendiamo il LED, ALTO e quando il valore è alto, accendiamo il LED Basso. La configurazione del vostro sensore di Hall potrebbe essere diversa, in quanto il sensore potrebbe diventare alto quando viene rilevato un campo magnetico. Questo dovrebbe essere confermato sulla scheda tecnica del sensore.
void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Il codice completo per questo progetto è mostrato qui sotto ed è anche disponibile per il download nella sezione download alla fine di questo 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
Copiate il codice e caricatelo sulla vostra scheda Arduino. Dovresti vedere l’interruttore LED quando un magnete viene avvicinato come mostrato nell’immagine qui sotto.