Arduino UNO R4 - Sensor de agua

Este tutorial nos enseñará cómo usar un sensor de agua con Arduino UNO R4. Un sensor de agua puede detectar si hay una fuga de agua, medir la cantidad de lluvia, verificar si un tanque se está desbordando o comprobar el nivel de agua. En detalle, aprenderemos:

Arduino UNO R4 y módulo de sensor de agua

Acerca del sensor de nivel de agua

Esquema de pines del sensor de nivel de agua

El sensor de nivel de agua incluye tres pines:

  • Pin S (Señal): Este pin es una salida analógica. Conéctelo a una entrada analógica en su Arduino UNO R4.
  • Pin + (VCC): Este pin alimenta el sensor. Utilice 3.3 V a 5 V para alimentarlo.
  • Pin - (GND): Esta es una conexión a tierra.
Pinout del sensor de agua

※ Nota:

La salida del pin de señal del sensor cambia en función del voltaje aplicado al pin VCC.

Cómo funciona un sensor de nivel de agua

Cuanto más agua haya, mayor será la tensión de salida en el pin de señal.

Veamos más de cerca.

Esta sección se dedica al conocimiento profundo. NO se preocupe si no lo entiende. Omita esta sección si lo abruma y vuelva otro día. Continúe leyendo con las siguientes secciones.

El sensor incluye diez líneas de cobre que puedes ver. Tiene cinco líneas de alimentación y cinco líneas de sensor. Estas líneas están dispuestas una al lado de la otra, alternando una línea de sensor entre cada dos líneas de alimentación. Normalmente, estas líneas no se tocan entre sí, pero si el sensor se coloca en agua, el agua conecta las líneas.

Las pistas funcionan como una resistencia variable (similar a un potenciómetro) que cambia su resistencia en función del nivel de agua.

  • El cambio en la resistencia muestra qué tan lejos está la parte superior del sensor de la superficie del agua.
  • La resistencia disminuye a medida que el nivel del agua aumenta.
  • Cuanto más sumergido esté el sensor, mejor conduce la electricidad, lo que hace que la resistencia sea menor.
  • Cuanto menos sumergido esté el sensor, peor conduce la electricidad, lo que hace que la resistencia sea mayor.
  • El sensor proporciona un voltaje de salida en función de la resistencia.

Podemos determinar el nivel de agua midiendo el voltaje.

Diagrama de Cableado

Para alimentar el sensor, conecte el pin VCC del sensor al pin 5V del Arduino UNO R4 y el pin GND al pin GND del Arduino.

Sin embargo, no es recomendable alimentar siempre el sensor en un entorno húmedo, ya que esto puede hacer que el sensor se oxide rápidamente, reduciendo su vida útil. Para evitarlo, sugerimos alimentar el sensor solo cuando necesites leer sus datos. Puedes hacer esto conectando el pin VCC del sensor a un pin digital de un Arduino UNO R4. Configura el pin del Arduino en HIGH para leer el sensor y luego configúralo en LOW cuando hayas terminado.

Diagrama de cableado del sensor de agua Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Código Arduino UNO R4 - Lectura del valor del sensor de agua

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // The Arduino UNO R4 pin connected to the VCC pin of water sensor to control the power #define SIGNAL_PIN A0 // The Arduino UNO R4 pin connected to the signal pin of water sensor int value = 0; // Variable for storing the value read from the sensor void setup() { Serial.begin(9600); // Start serial communication at 9600 baud pinMode(POWER_PIN, OUTPUT); // Set POWER_PIN as an output digitalWrite(POWER_PIN, LOW); // Initially set the POWER_PIN LOW to turn the sensor off } void loop() { digitalWrite(POWER_PIN, HIGH); // Set POWER_PIN HIGH to power the sensor delay(10); // Allow sensor time to stabilize (10ms delay) value = analogRead(SIGNAL_PIN); // Read the value from the sensor digitalWrite(POWER_PIN, LOW); // Set POWER_PIN LOW to turn off the sensor Serial.print("Sensor value: "); // Print the sensor value to Serial Monitor Serial.println(value); // Display the sensor value delay(1000); // Wait for 1 second before reading again }

Pasos R\u00e1pidos

Sigue estas instrucciones paso a paso:

  • Si es la primera vez que usa el Arduino UNO R4 WiFi/Minima, consulte el tutorial sobre configurar el entorno para Arduino UNO R4 WiFi/Minima en el IDE de Arduino.
  • Conecte el sensor de agua al Arduino UNO R4 de acuerdo con el diagrama proporcionado.
  • Conecte la placa Arduino UNO R4 a su computadora utilizando un cable USB.
  • Inicie el IDE de Arduino en su computadora.
  • Seleccione la placa Arduino UNO R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Copie el código proporcionado y ábralo en el IDE de Arduino.
  • Presione el botón Upload en el IDE de Arduino para enviar el código al Arduino UNO R4.
  • Descienda gradualmente el sensor en el agua (utilice un vaso de agua).
  • Verifique el resultado en el Monitor Serial. Muestra un valor de 0 cuando el sensor no está en contacto con nada.
COM6
Send
Sensor value: 0 Sensor value: 0 Sensor value: 0 Sensor value: 25 Sensor value: 97 Sensor value: 284 Sensor value: 428 Sensor value: 435 Sensor value: 441 Sensor value: 455 Sensor value: 467 Sensor value: 521 Sensor value: 528 Sensor value: 553
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

El sensor no debe estar completamente sumergido en agua; solo las partes expuestas de la placa de circuito pueden tocar el agua. Por favor, instálelo con cuidado.

Cómo Detectar Fugas de Agua

Para determinar si hay fuga de agua, lluvia o desbordamiento del tanque, simplemente comparamos la lectura con un límite establecido. Establecemos este límite durante el paso de calibración de este tutorial.

Código de Arduino UNO R4 - Detección de fugas de agua

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // The Arduino UNO R4 pin connected to the VCC pin of water sensor to control the power #define SIGNAL_PIN A0 // The Arduino UNO R4 pin connected to the signal pin of water sensor #define THRESHOLD 300 int value = 0; // Initialize variable to store the value read from the sensor void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Set the power pin as an output digitalWrite(POWER_PIN, LOW); // Initially turn off the power } void loop() { digitalWrite(POWER_PIN, HIGH); // Enable power to the sensor delay(10); // Allow some time for the sensor to stabilize value = analogRead(SIGNAL_PIN); // Read the sensor output digitalWrite(POWER_PIN, LOW); // Disable power to the sensor if (value > THRESHOLD) { // Check if the sensor output exceeds the threshold Serial.print("The water is dedected"); // Send a message to the serial monitor } }

Cómo medir el nivel de agua

Para dividir el nivel más alto de agua en diferentes etapas y verificar la etapa actual, utilice la técnica del código que se muestra a continuación. Recuerde que el nivel más alto de agua coincide con la altura del sensor. Este código divide la altura máxima en 4 etapas.

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // The Arduino UNO R4 pin connected to the VCC pin of water sensor to control the power #define SIGNAL_PIN A0 // The Arduino UNO R4 pin connected to the signal pin of water sensor #define SENSOR_MIN 0 // Minimum value for sensor #define SENSOR_MAX 521 // Maximum value for sensor int value = 0; // Holds the current sensor value int level = 0; // Holds the water level indicator void setup() { Serial.begin(9600); // Initialize serial communication pinMode(POWER_PIN, OUTPUT); // Set the power pin as output digitalWrite(POWER_PIN, LOW); // Initially turn off the sensor } void loop() { digitalWrite(POWER_PIN, HIGH); // Activate the sensor delay(10); // Wait for the sensor to stabilize value = analogRead(SIGNAL_PIN); // Read the sensor output digitalWrite(POWER_PIN, LOW); // Deactivate the sensor level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // Map sensor values to 0-4 scale Serial.print("Water level: "); // Print the label Serial.println(level); // Print the mapped water level delay(1000); // Wait one second before repeating }

※ Nota:

  • SENSOR_MIN y SENSOR_MAX se establecen durante el proceso de calibración.
  • El método de mapeo anterior podría no ser preciso, pero funciona bien para muchos usos. Para mejorar la precisión, mida los valores umbrales para cada nivel como se explica en la sección de calibración.

Calibración del sensor de nivel de agua

La salida del sensor se ve afectada por el nivel de agua y por cuán conductiva es el agua. El agua pura no conduce electricidad. Sin embargo, el agua con minerales e impurezas sí conduce electricidad. Cuanto mayor sea la conductividad del agua, más sensible se vuelve el sensor. Además, el valor de salida cambia con diferentes voltajes aplicados al pin VCC del sensor.

Para obtener lecturas precisas del sensor de agua, sugerimos calibrarlo para el tipo específico de agua que estará monitoreando.

Antes de establecer el límite para una acción, primero mida el valor real del sensor realizando una prueba.

Cómo realizar la prueba:

  • Utiliza el dibujo proporcionado para leer el valor del sensor.
  • Coloca el sensor en el agua hasta el nivel deseado.
  • Registra el valor mostrado en el Monitor Serial.
  • Establece este valor como el límite para activar una acción.

Esta prueba podría necesitar algunos intentos para hacerlo bien.

La prueba también puede ayudar a descubrir:

  • Valor mínimo del sensor cuando está fuera del agua.
  • Valor máximo del sensor cuando está completamente en el agua.
  • Un valor umbral para detectar fugas de agua.
  • Valores umbrales para cada nivel de su escala.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!