Sensor de nivel de agua para Arduino
Continuando con los sensores que podemos utilizar en acuapónicos, hidropónicos o sistemas automáticos de cuidado de plantas en exterior, vamos a explicar cómo utilizar un sensor de nivel de agua para controlar la cantidad de agua que tenemos en un depósito. Este mismo sensor también se puede utilizar para detectar si está lloviendo.
Especificaciones
Este sensor se alimenta a 5V o a 3,3V en los pines VCC y GND. El pin S nos dará un valor analógico comprendido entre VCC y GND. De manera que usaremos el pin S conectándolo como entrada analógica en Arduino, el valor que leamos será mayor en función de la superficie del sensor este cubierto de agua. Esto se debe a que el agua se comporta como un conductor, teniendo en cuenta que el agua que usemos en nuestros depósitos no será agua pura (H2O), ya que de por si el agua no es conductora. Pero rara vez usaremos este tipo de sensores para medir el nivel de agua en un deposito de agua pura.
Alimentación | 3,3V ~ 5V |
Corriente | < 20mA |
Rango de sensibilidad de Humedad | 10% ~ 90% |
Pines | +: VCC -: GND S: Señal Analógica |
Uso como nivel en un deposito
Para usarlo como detector de nivel en un deposito tendremos que instalar el sensor en el interior de dicho deposito a la altura en la que queramos controlar el nivel de agua. El sensor se tiene que posicionar de manera que las líneas paralelas del sensor estén perpendiculares al nivel de agua del deposito. El pin S nos dará un valor mayor a medida que el sensor se sumerge.
Uso como detector de lluvia
Para detectar si esta lloviendo con este sensor tendremos que posicionarlo horizontalmente de manera que lluvia caiga sobre el sensor, a medida que las gotas de lluvia caigan sobre el sensor se formará una película de agua sobre la superficie aumentando el valor del pin S, de esta forma podemos deducir si está lloviendo.
Código
En ambos casos podemos usar el mismo código, ya que simplemente se encargará de leer el valor analógico del pin S. Dependerá de nosotros interpretar las medidas que nos esté dando.
const int analogInPin = A0; int sensorValue = 0; void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(analogInPin); Serial.print("Sensor cubierto = " ); Serial.print(sensorValue*100/1024); Serial.println("%"); delay(1000); }