Este sensor de nivel resistivo de agua para Arduino es ideal para monitorear el nivel de líquidos en tiempo real. Diseñado para facilitar proyectos de monitoreo y control, el sensor se conecta fácilmente al Arduino o cualquier otro controlador con entradas analógicas con solo tres pines: VCC, GND y Señal. Al colocarlo en agua, el sensor emite un valor analógico (voltaje como fracción del voltaje de alimentación) que indica la profundidad relativa del líquido. Se recomienda energizar sólo al momento de usar para evitar corrosión por galvanización.
Características Técnicas
- Tipo de sensor: Resistivo
- Compatibilidad: Arduino y otros microcontroladores
- Salida: Señal analógica que se puede visualizar en una pantalla LCD o consola serial
- Voltaje de operación: 3.3V a 5V
- Dimensiones: 6.8 x 2 cm (aproximadas)
- Conectores: 3 pines (VCC, GND, Señal)
- Rango de detección: Dependiente de la pureza del agua
- Microcontroladores compatibles directamente: Arduino, ESP32, Microbit. Raspberry requiere un ADC para la lectura analógica.
Aplicaciones comunes:
- Proyectos de monitoreo de agua: Ideal para monitorear el nivel de agua en sistemas de recolección y almacenamiento.
- Sistemas de riego inteligente: Permite medir niveles en tiempo real para optimizar el uso de agua en agricultura.
- Detección de fugas: Se puede usar para monitorear bandejas de drenaje en calentadores de agua o detectar fugas en áreas como sótanos.
- Automatización de espacios vacacionales: Detecta posibles filtraciones cerca de inodoros o bajo los fregaderos, alertando de problemas de humedad en hogares desocupados.
Ejemplo básico de código para leer el sensor con Arduino
// Pines del sensor
#define sensorPower 7
#define sensorPin A0
// Variable para almacenar el nivel de agua
int val = 0;
void setup() {
// Configurar D7 como SALIDA
pinMode(sensorPower, OUTPUT);
// Configurar en BAJO para que no fluya corriente a través del sensor
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
void loop() {
// Obtener la lectura de la función de abajo y mostrarla
int level = readSensor();
Serial.print("Nivel de agua: ");
Serial.println(level);
delay(1000);
}
// Esta es una función usada para obtener la lectura
int readSensor() {
digitalWrite(sensorPower, HIGH); // Encender el sensor
delay(10); // Esperar 10 milisegundos
val = analogRead(sensorPin); // Leer el valor analógico del sensor
digitalWrite(sensorPower, LOW); // Apagar el sensor
return val; // devolver la lectura actual
}