Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

El sensor de nivel de agua es una herramienta útil y versátil que nos permite controlar y monitorear los niveles de líquido en diferentes aplicaciones, desde sistemas de riego automatizados hasta alarmas de inundaciones. En este artículo te explicaremos cómo funciona este dispositivo y cómo puedes conectarlo fácilmente a Arduino para crear proyectos innovadores y funcionales. ¡Sigue leyendo para descubrir todo lo que necesitas saber sobre el sensor de nivel de agua y su integración con Arduino!

Si alguna vez explotó un calentador de agua o intentó construir dispositivos electrónicos sumergibles, sabe lo importante que es detectar la presencia de agua.

¡Este sensor de nivel de agua te permite hacer exactamente eso! Puede medir niveles de agua, monitorear un pozo de sumidero, detectar precipitaciones y detectar fugas.

Echemos un vistazo más de cerca a este sensor.

Descripción general del hardware

El sensor tiene diez trazas de cobre expuestas, cinco de las cuales son trazas de energía y las cinco restantes son trazas de detección. Estas pistas están entrelazadas de tal manera que hay una pista de detección entre cada dos pistas de potencia.

Normalmente, las vías eléctricas y sensoriales no están conectadas, pero cuando se sumergen en agua se unen.

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

Hay un LED de encendido en la placa que se enciende cuando la placa está encendida.

¿Cómo funciona un sensor de nivel de agua?

Operar el sensor de nivel de agua es bastante simple.

Las trazas de corriente y de medida forman una resistencia variable (similar a un potenciómetro) cuyo valor de resistencia varía según su exposición al agua.

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

Esta resistencia varía inversamente con la profundidad de inmersión del sensor en agua:

  • Cuanta más agua esté sumergida el sensor, mejor será la conductividad y menor la resistencia.
  • Cuanta menos agua esté sumergida el sensor, peor será la conductividad y mayor será la resistencia.

El sensor produce un voltaje de salida proporcional a la resistencia; Midiendo este voltaje, se puede determinar el nivel del agua.

Asignación de pines del sensor de nivel de agua

El sensor de nivel de agua es extremadamente fácil de usar y solo requiere tres pines para conectarse.

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

S (señal) es un pin de salida analógica que se conecta a una de las entradas analógicas de su Arduino.

+ (CCV) El pin suministra energía al sensor. Se recomienda alimentar el sensor de 3,3V a 5V. Tenga en cuenta que la salida analógica puede variar dependiendo del voltaje suministrado al sensor.

– (TIERRA) es el pin de tierra.

Cableado de un sensor de nivel de agua a un Arduino

Conectemos el sensor de nivel de agua al Arduino.

Primero, conecte el pin + (VCC) del módulo a 5V en el Arduino y el pin – (GND) a tierra.

Un problema conocido con estos sensores es que tienen una vida útil más corta debido a la exposición constante a la humedad. Además, la tasa de corrosión se acelerará significativamente si el sensor se alimenta constantemente mientras está sumergido en agua.

Para evitar esto, se recomienda encender el sensor únicamente durante la medición.

Una manera fácil de hacer esto es conectar el pin de alimentación del sensor a un pin digital en un Arduino y configurarlo en ALTO o BAJO según sea necesario. Entonces conectamos el pin + (VCC) al pin digital n.° 7 del Arduino.

Finalmente, conecte el pin S (señal) al pin A0 ADC del Arduino.

El cableado se muestra en la siguiente imagen.

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

Ejemplo básico de Arduino

Después de construir el circuito, sube el siguiente boceto a tu Arduino.

// Sensor pins
#define sensorPower 7
#define sensorPin A0

// Value for storing water level
int val = 0;

void setup() {
	// Set D7 as an OUTPUT
	pinMode(sensorPower, OUTPUT);
	
	// Set to LOW so no power flows through the sensor
	digitalWrite(sensorPower, LOW);
	
	Serial.begin(9600);
}

void loop() {
	//get the reading from the function below and print it
	int level = readSensor();
	
	Serial.print("Water level: ");
	Serial.println(level);
	
	delay(1000);
}

//This is a function used to get the reading
int readSensor() {
	digitalWrite(sensorPower, HIGH);	// Turn the sensor ON
	delay(10);							// wait 10 milliseconds
	val = analogRead(sensorPin);		// Read the analog value form sensor
	digitalWrite(sensorPower, LOW);		// Turn the sensor OFF
	return val;							// send current reading
}

Después de cargar el boceto, abra la ventana Serial Monitor para ver el resultado. Cuando el sensor está seco, genera un valor de 0; Sin embargo, cuando el sensor se sumerge en agua, el rendimiento aumenta gradualmente.

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

Este sensor no debe estar completamente sumergido. Por lo tanto, durante la instalación, asegúrese de que sólo las pistas conductoras expuestas en la placa de circuito entren en contacto con el agua.

Explicación del código:

El boceto comienza indicando los pines de Arduino a los que están conectados los pines + (VCC) y S (señal) del sensor.

#define sensorPower 7
#define sensorPin A0

Luego definimos una variable val para guardar el nivel de agua actual.

int val = 0;

En la sección Configuración, primero configuramos el conector de alimentación del sensor para que se comporte como una salida y luego lo configuramos en nivel bajo para mantener inicialmente el sensor apagado. También establecemos comunicación serial.

pinMode(sensorPower, OUTPUT);
digitalWrite(sensorPower, LOW);
Serial.begin(9600);

En la sección de bucle llamamos al readSensor() Llame a la función personalizada una vez por segundo e imprima el resultado.

Serial.print("Water level: ");
Serial.println(readSensor());
delay(1000);

El readSensor() La función personalizada simplemente enciende el sensor, espera 10 milisegundos, lee el valor analógico del sensor, lo apaga y devuelve el valor analógico.

int readSensor() {
	digitalWrite(sensorPower, HIGH);
	delay(10);
	val = analogRead(sensorPin);
	digitalWrite(sensorPower, LOW);
	return val;
}

Encontrar los umbrales

Para estimar el nivel del agua, registre los valores de la salida de su sensor cuando el sensor esté completamente seco, parcialmente sumergido y completamente sumergido en agua.

Simplemente ejecute el boceto de arriba y tome sus lecturas.

Ten en cuenta que tu sensor puede ser más o menos sensible dependiendo del tipo de agua que utilices. Como sabrás, el agua pura no es conductora; Son los minerales e impurezas del agua los que la hacen conductora.

Cuando ejecute el boceto, debería ver medidas similares a las siguientes:

  • cuando el sensor está seco (0)
  • cuando el sensor está parcialmente sumergido en agua (~420)
  • cuando el sensor está completamente sumergido en agua (~520)
Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

Esta prueba puede requerir algunos intentos. Una vez que tenga las métricas, puede utilizarlas como umbral para desencadenar una acción.

Proyecto Arduino – Indicador de nivel de agua

Para nuestro próximo ejemplo, construiremos un indicador de nivel de agua simple que enciende LED según el nivel del agua.

alambrado

Reutilizaremos el circuito del ejemplo anterior. Esta vez sólo necesitamos agregar algunos LED.

Conecte tres LED con resistencias de 220 ohmios a los pines digitales n.° 2, n.° 3 y n.° 4.

Conecte su circuito como se muestra a continuación:

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

código arduino

Después de construir el circuito, sube el siguiente boceto a tu Arduino.

Este boceto define dos variables: lowerThreshold Y upperThreshold. Estas variables representan nuestros umbrales.

Si la salida cae por debajo del umbral inferior, se enciende el LED rojo, si supera el umbral superior, se enciende el LED verde y, si está en algún punto intermedio, se enciende el LED amarillo.

/* Change these values based on your calibration values */
int lowerThreshold = 420;
int upperThreshold = 520;

// Sensor pins
#define sensorPower 7
#define sensorPin A0

// Value for storing water level
int val = 0;

// Declare pins to which LEDs are connected
int redLED = 2;
int yellowLED = 3;
int greenLED = 4;

void setup() {
	Serial.begin(9600);
	pinMode(sensorPower, OUTPUT);
	digitalWrite(sensorPower, LOW);
	
	// Set LED pins as an OUTPUT
	pinMode(redLED, OUTPUT);
	pinMode(yellowLED, OUTPUT);
	pinMode(greenLED, OUTPUT);

	// Initially turn off all LEDs
	digitalWrite(redLED, LOW);
	digitalWrite(yellowLED, LOW);
	digitalWrite(greenLED, LOW);
}

void loop() {
	int level = readSensor();

	if (level == 0) {
		Serial.println("Water Level: Empty");
		digitalWrite(redLED, LOW);
		digitalWrite(yellowLED, LOW);
		digitalWrite(greenLED, LOW);
	}
	else if (level > 0 && level <= lowerThreshold) {
		Serial.println("Water Level: Low");
		digitalWrite(redLED, HIGH);
		digitalWrite(yellowLED, LOW);
		digitalWrite(greenLED, LOW);
	}
	else if (level > lowerThreshold && level <= upperThreshold) {
		Serial.println("Water Level: Medium");
		digitalWrite(redLED, LOW);
		digitalWrite(yellowLED, HIGH);
		digitalWrite(greenLED, LOW);
	}
	else if (level > upperThreshold) {
		Serial.println("Water Level: High");
		digitalWrite(redLED, LOW);
		digitalWrite(yellowLED, LOW);
		digitalWrite(greenLED, HIGH);
	}
	delay(1000);
}

//This is a function used to get the reading
int readSensor() {
	digitalWrite(sensorPower, HIGH);
	delay(10);
	val = analogRead(sensorPin);
	digitalWrite(sensorPower, LOW);
	return val;
}
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino

Si alguna vez has tenido un calentador de agua explotar o has intentado construir electrónicos sumergibles, sabes lo importante que es detectar la presencia de agua. ¡Eso es exactamente lo que este Sensor de Nivel de Agua te permite hacer! Puede medir el nivel de agua, monitorear un pozo de sumidero, detectar la lluvia y las filtraciones.

Descripción del Hardware

El sensor tiene diez trazas de cobre expuestas, cinco de las cuales son trazas de alimentación y las otras cinco son trazas de sensor. Estas trazas están entrelazadas de forma que hay una traza de sensor entre cada dos trazas de alimentación. Normalmente, las trazas de alimentación y sensor no están conectadas, pero cuando se sumergen en agua, se conectan.

Hay un LED de energía en la placa, que se iluminará cuando la placa esté alimentada.

¿Cómo funciona un Sensor de Nivel de Agua?

La operación del sensor de nivel de agua es bastante simple. Las trazas de alimentación y sensor forman una resistencia variable (similar a un potenciómetro) cuya resistencia varía según cuánto estén expuestas al agua.

Esta resistencia varía de forma inversa con la profundidad de inmersión del sensor en agua:

  • Cuanto más agua esté sumergido el sensor, mejor será la conductividad y más baja será la resistencia.
  • Cuanto menos agua esté sumergido el sensor, peor será la conductividad y más alta será la resistencia.

El sensor genera un voltaje de salida proporcional a la resistencia; midiendo este voltaje, se puede determinar el nivel de agua.

Esquema de pines del Sensor de Nivel de Agua

El sensor de nivel de agua es extremadamente fácil de usar y solo requiere tres pines para conectarse.

  • S (Señal) es un pin de salida analógica que se conectará a una de las entradas analógicas de tu Arduino.
  • + (VCC) proporciona alimentación al sensor. Se recomienda que el sensor se alimente desde 3.3V a 5V. Ten en cuenta que la salida analógica variará según la tensión suministrada al sensor.
  • – (GND) es el pin de tierra.

Cómo conectar un Sensor de Nivel de Agua a Arduino

Vamos a conectar el sensor de nivel de agua al Arduino. Para empezar, conecta el pin + (VCC) del módulo a 5V en el Arduino y el pin – (GND) a tierra.

Un problema conocido con estos sensores es que tienen una vida útil más corta porque están constantemente expuestos a la humedad. Además, aplicar constantemente energía al sensor mientras está sumergido en agua acelera significativamente la tasa de corrosión.

Para evitar esto, se recomienda encender el sensor solo cuando se toman lecturas. Una forma sencilla de hacer esto es conectar el pin de alimentación del sensor a un pin digital en un Arduino y establecerlo en ALTO o BAJO según sea necesario. Entonces, conectaremos el pin + (VCC) al pin digital #7 del Arduino.

Finalmente, conecta el pin S (Señal) al pin A0 del ADC del Arduino. El esquema de conexión se muestra en la siguiente imagen.

Continúa leyendo aquí.

5 comentarios en «Cómo funciona el sensor de nivel de agua y cómo conectarlo a Arduino»

Deja un comentario