KY-024

Misurare l’Effetto Hall con il sensore KY-024 usando Arduino UNO

L’Effetto Hall è un fenomeno fisico tramite il quale si osserva come un campo elettromagnetico influisca sulla differenza di potenziale di conduttore o un semiconduttore quando esso è attraversato da corrente elettrica. Nel kit 37-in-1 anche abbiamo già avuto modo di esaminare con altri sensori (che potete acquistare a questo LINK), troviamo il sensore ad Effetto Hall KY-024. Esso è un modulo sulla cui sommità troviamo il vero e proprio sensore (49E) e un potenziometro con cui regolare la sensibilità.

Componenti

Abbiamo testato il sensore KY-024 collegandolo ad Arduino UNO che stamperà i risultati su un Display LCD 16×02 (16 colonne e 2 righe) dotato di adattatore I2C. Sfrutteremo questa interfaccia per usare il meno possibile jumper e ottenere un collegamento semplice e pulito. A tal proposito, in basso la lista delle componenti che andiamo ad adoperare.

Lista componenti Amazon:

Lista componenti Aliexpress:



Collegamenti

Il sensore KY-024 è dotato sia di connessione digitale che analogica, oltre ai due pin per alimentarlo. Utilizzeremo il collegamento analogico per connetterlo al pin A0 di Arduino UNO, mentre il Display LCD verrà connesso ai pin SDA e SCL presenti sulla linea dei pin digitali. In alternativa, potremo usare i pin analogici A4 e A5. Potete eseguire i collegamenti come riportato nello schema sottostante. Per alimentare il Display LCD useremo i 5V, mentre il sensore KY-024 potrà essere alimentato dai 3,3V o dai 5V. Se alimentiamo Arduino con un PowerBank da 5V, possiamo usare anche il pin VIN.

KY-024

Codice

Per far funzionare il sensore KY-024 non abbiamo necessità di librerie. Per il progetto però che abbiamo utilizzato per far funzionare questo sensore, useremo un Display LCD con adattatore I2C e, proprio per questo motivo, ci servirà la librerie LiquidCrystal_I2C.h. Per poter scaricare lo sketch cliccate QUI.


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

int analog_value;
float halleffect;

Iniziamo includendo la libreria Wire.h per l’interfaccia I2C e la libreria LiquidCrystal_I2C per il display. Nel passo successivo creiamo l’oggetto lcd e impostiamo la porta per la connessione. Ricordate che non tutti i display LCD I2C dispongono della stessa porta e che la vostra potrebbe essere diversa. Dichiariamo poi due variabili, una intera per ospitare i valori analogici prelevati dal pin A0, una a virgola mobile per effettuare il calcolo per la differenza di potenziale.


void setup() {

Serial.begin(9600);
lcd.begin(16,2);

}

void loop() {
analog_value = analogRead (A0);
halleffect = analog_value * (5.0 / 1023);

Serial.print(analog_value);
Serial.print("\t");
Serial.println(halleffect);

lcd.setCursor(0, 0);
lcd.print("Effetto Hall: ");

lcd.setCursor(0,1);
lcd.print("V: ");
lcd.print(halleffect);
lcd.print(" ");

delay (500);

}

Nel VOID SETUP avviamo sia il monitor seriale e il display, mentre nel VOID LOOP iniziamo con rilevare il segnale dal pin analogico e poi calcoliamo la differenza di potenziale, moltiplicando il valore analogico per il rapporto tra 5 e 1023. Questo passaggio è importante perché sappiamo che i valori analogici sono compresi in un range tra 0 e 1023 e che tale intervalla rappresenta gli 0V e i 5V, ossia la tensione di lavoro di Arduino UNO. Così facendo ricaviamo la tensione che attraversa il sensore KY-024. Stampiamo il tutto sia su monitor seriale che su Display LCD.



Una volta caricato lo sketch su Arduino UNO il sistema rileverà una differenza di potenziale di circa 1,71V, valore comunque relativo al livello di sensibilità selezionata sul potenziometro del sensore (in questo caso al minimo); basterà avvicinare un magnete al sensore per registrare la variazione del potenziale elettrico. In base al polo magnetico della calamita noteremo un abbassamento o un aumento.