ARDUINO
Water sensor

ultimo aggiornamento 20 agosto 2016


JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Recati presso la JLCPCB, riceverai regali e coupon gratuiti
presso Maker Faire Rome il 18-20 ottobre


Indice

Descrizione

Il sensore Water Sensor è in grado di rilevare la presenza di acqua tramite la misurazione del livello di conduttività.
Il funzionamento è semplice, 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 quello in mio possesso) presenta una tensione d'uscita compreso tra 0 2,6V 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.

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

 

Caratteristiche

Tensione di funzionamento: DC3-5V
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 prodotto: 62 x 20 x 8 mm

Schema del circuito di prova

Per testare il sensore si utilizzano i seguenti componenti

Arduino Nano Water sensor
Cavetti per Breadboard di vari colori KY-016 3 color LED module

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.

Programma 
Schema circuito di prova

 

/*
  water_sensor_test.ino
  Il programma legge il valore analogico del sensore
  0 se il sensore è asciutto

  Sono utilizzati i seguenti pin
  Pin +5V         -> Alimentazione sensore
  Pin GND         -> GND sensore /led
  Pin Digitale 2  -> Led Rosso
  Pin Digitale 3  -> led Verde
  Pin Analogico 0 -> Segnale sensore

  Creato il 6/5/2017 da Adriano Gandolfo
  Sito web https://www.adrirobot.it
  Blog http://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
*/

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);
}

Filmato illustrativo

 

Un post condiviso da Adriano Gandolfo (@adrirobot) in data:

 

Elenco revisioni

07/05/2017

Emissione preliminare