Sencillo detector de líquidos

En este post, vamos a ver como realizar la detección de niveles de líquidos con Arduino. En primer lugar, verá información sobre el sensor de nivel de agua y, a continuación, aprenderá a usar este módulo con algunos ejemplos prácticos.

Estos son los componentes hw y sw que necesitaremos:

Componentes de hardware
Arduino UNO R3 ×1
Sensor de nivel de agua ElectroPeak ×1
ElectroPeak Jumpers×1
ElectroPeak Buzzer×1
Aplicaciones de software y servicios en línea
ElectroPeak Arduino IDE

¿Qué es la detección de nivel de agua?

La detección del nivel de líquido o, en otras palabras, la medición del nivel de líquido en tanques profundos o agua en los embalses se realiza con el fin de controlar la profundidad del agua y evitar que se desborde en la industria. En aplicaciones domésticas también se puede utilizar, por ejemplo, para detectar el nivel de agua dentro de los acuarios. El propósito de la medición del nivel es determinar el nivel de líquido en cualquier momento y hacer el funcionamiento requerido en consecuencia.

Hay diferentes maneras de medir el nivel de líquido. Algunos sensores calculan la profundidad del líquido de acuerdo con la presión causada por la gravedad específica del líquido y la distancia vertical a la superficie. Algunos otros emiten ondas ultrasónicas desde un transductor que también detecta y mide las ondas reflejadas para calcular la profundidad del líquido.

El sensor que utilizamos en este tutorial es compatible con Arduino y funciona sobre la base de mediciones de resistencia, pronto descubrirá cómo funciona.

Cómo funciona el sensor de nivel de agua

Este módulo, que es uno de los módulos más utilizados para detectar el nivel de líquido, funciona sobre la base del cambio de resistencia. En este módulo, hay líneas paralelas de conductividad que están conectadas al suelo y son de hecho el camino de la corriente eléctrica. El agua es un buen conductor por lo que cuando estas líneas están en el agua, serán de cortocircuito, y la resistencia del módulo disminuye.

Al fijar el módulo en el recipiente líquido, la resistencia variable se establece en un valor específico basado en el nivel del agua. El módulo mide esta resistencia analógica y la envía a Arduino. Arduino utiliza este valor directamente o convirtiendo este valor en una cantidad digital.

Este sensor de nivel de agua tiene 3 pines. 2 de ellos son para potencia (+), que se conectan a la +5V, y tierra (-), que se conectan al terminal de tierra del Arduino. El otro pin (S), es el pin de salida analógica.

Sensor de nivel de agua de interconexión con Arduino

No necesita ninguna biblioteca específica para usar este sensor. Sólo tiene que leer el valor analógico del pin de salida y calcular el nivel de líquido en consecuencia.

Circuito

Código

Cargue el siguiente código en la placa Arduino y abra la ventana del monitor serie. Coloque el sensor en agua y podrá ver los resultados en la ventana del monitor serie.

/* Water level sensor
*  by Hanie Kiani
*  https://electropeak.com/learn/   
*/
const int analogInPin = A0; 
int sensorValue = 0;
void setup() {
Serial.begin(9600); 
}
void loop() {
sensorValue = analogRead(analogInPin); 
Serial.print("Sensor = " ); 
Serial.print(sensorValue*100/1024); 
Serial.println("%");
delay(1000); 
} 

Utilice el sensor de nivel de líquido como detector de lluvia

También puede utilizar el sensor de nivel de agua para detectar la lluvia con un zumbador. Para detectar si está lloviendo, coloque el sensor horizontalmente para que las gotas de lluvia puedan caer sobre el sensor y aumentar el valor del pin S.

Cuando el sensor empiece a mojarse, el zumbador comenzará a pitarse cada pocos segundos. Y cuando el módulo se moja por completo, el zumbador advierte con un sonido más fuerte y seguirá pitando sin parar.

Circuito

Código

/* 
  * Rain Detector with Water level sensor
*  by Hanie kiani
*  https://electropeak.com/learn/   
*/
const int sensorMin = 0;     // sensor minimum
const int sensorMax = 1024;  // sensor maximum
const int buzzer = 9;
void setup() {
 Serial.begin(9600);  
 pinMode(buzzer, OUTPUT);
}
void loop() {
int sensorReading = analogRead(A0);
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
 // range value:
 switch (range) {
case 0:    // Sensor is wet
   Serial.println("ٌWet!");
   tone(buzzer, 5000); 
   break;
case 1:    // Sensor getting wet
   Serial.println(" Warning");
    tone(buzzer, 1000 , 5); 
   break;
case 2:    // Sensor dry 
   Serial.println("Dry");
   noTone(buzzer);  
   break;
 }
 delay(10);  // delay between reads
}  

La función map()divide el rango delsensor 0 a 1024 en 3 secciones.

tone(buzzer, 5000);

La función tone() envía una señal PWM en el pasador del zumbador para que el zumbador haga un sonido.

El primer argumento especifica el pin de salida y el segundo determina la frecuencia PWM. También puede tener un tercer argumento de pie para la duración de la señal.

Deja una respuesta