Il sensore Water Sensor , oppure sensore di livello d’acqua è in grado di rilevare la presenza di acqua tramite la misurazione del livello di conduttività.
Indice
Principio di funzionamento
Il funzionamento del water sensor utilizzabile come sensore di livello è semplice, e si basa sulla conduttività.
E’ del tutto simile ad un altro sensore,“Soil Moisture Sensor” ovvero sensore di umidità del terreno entrambi si basano sulla conduttività. Vedere articolo Soil moisture sensor – Sensore umidità del terreno.
Quando l’acqua mette in conduzione le piste alternativamente connesse alla tensione positiva e in parti connesse alla linea GND permettono alla corrente di fluire tra le due piste.
Questo valore viene elaborato elettronicamente nel sensore e trasmesso sotto forma di un segnale analogico ad un ingresso analogico della scheda.
In questo caso la scheda, non misura la tensione elettrica come tale, ma converte il segnale analogico presente in ingresso in un valore numerico.
Dato che il sensore (almeno il modello esaminato ) presenta una tensione d’uscita compreso tra 0 e 2,6 V si leggeranno valori compresi tra 0 e 550 circa. Un led presente sul sensore segnala la presenza della tensione di alimentazione.
Il Water Sensor è dotato di alta sensibilità e bassi consumi e trova il suo utilizzo in diverse applicazioni di tipo didattico, come ad esempio il rilevamento di pioggia, la ricerca di dispersione di liquido o il rilevamento del livello di liquido in un contenitore.
Caratteristiche
Tensione di funzionamento: | 3-5V DC |
Corrente di funzionamento: | meno di 20mA |
Tensione d'uscita: | 0÷2.6V (con il sensore completamente immerso in acqua) |
Sensore Tipo: | Analogico |
Area di rilevamento: | 40 x 16 mm |
Processo di produzione: | FR4 HASL doppia faccia |
temperatura di funzionamento: | 10 °C-30 °C |
Umidità: | 10% -90% senza condensa |
Dimensioni del sensore: | 62 x 20 x 8 mm |
Schema elettrico del sensore
Lo schema elettrico del sensore è molto semplice, nel circuito è visibile il led Power la cui accessione segnala la presenza della tensione di alimentazione.
Sia lo schema elettrico che il PCB può essere scaricato dal mio account presso OSHWLab, utilizzando questo link
Lo schema e il relativo PCB sono stati realizzati con il programma EasyEDA: un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provatelo è gratuito!
Dove trovare il sensore
Il sensore di livello dell’acqua si può essere trovato presso il sito Homotix, codice prodotto HMTWASEN, ricordate di inserire il codice “ADRIROBOT” per ottenere uno sconto del 3%.
Il sensore si può trovare anche presso il sito Techmaker codice prodotto SE482048, ricordate di inserire il codice “ADRIROBOT” per ottenere uno sconto del 3%.
Questo sensore si trova tra l’altro all’interno del Kit Keyestudio 37 in 1 Starter Kit per BBC micro:bit, il codice del sensore è Ks0048
Il Kit può essere acquistato presso Amazon, o AliExpress. Il codice dell’articolo è ks0361
Acquisto presso Amazon | Acquisto presso AliExpress |
Schema del circuito di prova
Per testare il sensore si utilizzano i seguenti componenti
Shield per Arduino Nano | Scheda Arduino Nano |
Water sensor | KY-016 3 color LED module |
Cavi colorati F-F | |
I pin utilizzati sono i seguenti
Pin +5V | Alimentazione sensore |
Pin GND | GND sensore e KY-016 |
Pin Analogico 0 | Uscita sensore |
Pin Digitale 2 | Led colore rosso |
Pin Digitale 3 | Led colore verde |
Programma di prova
Il programma è molto semplice, il sensore è collegato al pin Analogico A0.
Se non è immerso in acqua il valore in uscita sarà 0, man mano che il sensore viene immerso il valore della conducibilità aumenta come aumenta il valore della tensione in uscita.
Con il valore letto sotto la soglia impostata, viene acceso il led Verde, al di sopra viene acceso il led Rosso.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
int sensore = 0; // Pin analogico a cui è collegato il sensore int rosso = 2; //Pin a cui è collegato il led rosso int verde = 3; //Pin a cui è collegato il led verde int soglia = 200; // Imposta valore soglia void setup() { // Inizializza la comunicazione seriale Serial.begin(9600); pinMode (rosso, OUTPUT); // Imposta il pin 2 lede rosso come uscita. pinMode (verde, OUTPUT); // Imposta il pin 3 lede verde come uscita. digitalWrite(verde, HIGH); //Accende led verde } void loop() { // Lettura valore del sensore int lettura = analogRead(sensore); // Scruttura del valore letto Serial.println(lettura); if (lettura >= soglia) { digitalWrite(verde, LOW); //Spegne led verde digitalWrite(rosso, HIGH); //Accende led rosso } else { digitalWrite(verde, HIGH); //Accende led verde digitalWrite(rosso, LOW); //Spegne led rosso } // Pausa tra le letture delay(100); } |