Vediamo come usare un interruttore reed, meglio conosciuti con il temine inglese reed switches. Sono dei minuscoli interruttori che si attivano (e chiudono quindi il circuito) con un campo magnetico nelle vicinanze.
In questo articolo vedremo come collegare gli interruttori reed switch ad Arduino e ad accendere un led.
Vediamo subito un breve video sul funzionamento.
Questi interruttori reed sono molto economici e vengono utilizzati in diversi ambiti, i più comuni sono appunto gli allarmi da finestra e i contachilometri per le biciclette.
Nel primo caso l’interruttore reed è collegato ad un circuito dell’antifurto ed è posizionato sullo stipite della finestra, il magnete è invece incollato sul vetro. Se il magnete viene spostato (ad esempio aprendo la finestra), ecco che anche il circuito viene aperto e scatta l’allarme.
Nei contachilometri della bicicletta invece viene posizionato un magnete su uno dei raggi della ruota anteriore mentre sulla forcella un interruttore di tipo reed conta i giri che la ruota compie.
Gli interruttori reed si trovano sia in forma di vetro con due steli metallici alle estremità, sia completamente avvolti in un case plastico (vedere il video), il ché garantisce ovviamente più resistenza.
Se siete dei curiosoni vi rimando alla pagine di Wikipedia.
I collegamenti.
N.B. Potete usare la 5v o la 3.3v indifferentemente.
Ecco lo sketch da caricare. Passando un magnete vicino all’interruttore reed questo si chiuderà e il nostro Arduino illuminerà il led interno posto in corrispondenza del pin 13.
Vediamo ora, riga per riga, il nostro sketch.
#define reedPin 8 #define led 13 int reedState = 0; void setup() { pinMode(led, OUTPUT); pinMode(reedPin, INPUT); Serial.begin(9600); } void loop() { reedState = digitalRead(reedPin); if (reedState == HIGH){ Serial.println("reed ON"); digitalWrite(led, HIGH); } else{ Serial.println("reed OFF"); digitalWrite(led, LOW); } delay(500); }
1 – Definiamo che ogni volta che la parola reedPin equivalga pari pari al numero 8
2 – Facciamo la stessa cosa per la parola led e il numero 13
3 – Dichiariamo una variabile intera di nome reedState e la inizializziamo a zero
8 – Attraverso la funzione pinMode indichiamo che il pin del led sarà un pin di output
9 – Indichiamo che il reedPin sarà invece un pin di input
11 – Metodo dell’oggetto Serial necessario per avviare una comunicazione via seriale
16 – Leggiamo lo stato del reedPin e lo salviamo all’interno della variabile reedState
18 – Se la variabile reedState è HIGH (e quindi l’interruttore reed è attivato) esegui i codice fra le graffe
19 – Stampa a monitor del messaggio reed ON tramite il metodo println dell’oggetto Serial
20 – Accensione del led interno
22 – Se la condizione della riga 18 non è vera allora viene eseguito il codice fra queste graffe
23 – Stampa a monitor del messaggio reed OFF tramite il metodo println dell’oggetto Serial
24 – Spegnimento del led interno
27 – Piccolo ritardo di mezzo secondo tra un ciclo e il successivo
Come al solito spero che anche questo tutorial sia stato d’aiuto a qualcuno, grazie per avermi letto. Rimango a disposizione per domande o chiarimenti.
Grazie,
Alessandro
Poco prima di Natale ho avuto la fortuna di poter partecipare a un evento chiamato…
Armando quel giorno era particolarmente stanco. Tutto, per quanto andasse bene, sembrava metterlo sotto pressione.…
Armando guardò l’orologio e vide il proprio riflesso sul quadrante bianco. Il riflesso però non…
I muri sono muri, lo sono sempre, anche quando le porte sono aperte. Era la…
Pochi di noi riflettono sull’esistenza nella nostra società del carcere. Il carcere è la concretizzazione…
Spesso intraprendiamo delle conversazioni e delle chiacchierate piuttosto inconsapevolmente. Voglio dire che non siamo molto…
View Comments
Ho il frigo con la luce a led ma nn si accende più sarà il Reed sul bordo porta nn vi sono interruttori cosa sarà
Ciao Renato, non saprei se usano dei reed. Potrebbero anche avere dei sensori a pulsante nella parte superiore o inferiore. Dovresti riuscire a vederlo nel caso. Fammi sapere.
Ciao vorrei sapere se su questo progetto interruttore reed magnetico è possibile far scattare il relè dopo che abbia contatto un x numero di volte il magnete?
esempio su un asse rotante con un magnete ,attivare il relè dopo 10 giri?
e se possibile avere un esempio di codice?
grazie...
Ciao Sandro, certo che è possibile! Purtroppo al momento non riesco ad aiutarti scrivendo il codice... a grandi linee dovresti creare una variabile che aumenti di uno ad ogni passaggio, ad ogni ciclo effetti un controllo sulla variabile e quando è a 10 attivi il relay.