Sensor de nivel de agua (Vídeo)

Este tipo de sensor es capaz de detectar con gran precisión la cantidad de agua que incide sobre él. Contiene una resistencia de 1M (un millón de Ω). La resistividad del dispositivo aumenta en caso de que el agua entre en contacto con sus bandas conductoras. Cuanto mayor sea la cantidad de agua, mayor resistividad se genera.

Requiere un voltaje de entrada de 5V y genera un voltaje de salida de entre 0 y 4,2V. Su temperatura de funcionamiento es de entre 10 y 30 ºC.

En la siguiente imagen podemos observar el aspecto de este sensor:

nivel agua

A la hora de programar en Arduino debemos tener en cuenta que se comporta de forma similar a un potenciómetro. Podéis repasar cómo usar un potenciómetro en nuestra entrada correspondiente. En este caso, usaremos el pin analógico 2 para recibir la información del sensor.

double valorAgua;

void setup() {
  Serial.begin(9600);
}

void loop() {
  valorAgua = analogRead(2); 
  //630 es el valor maximo que he visto que mostraba
  valorAgua = (valorAgua*100)/630; 

  //Tomar cualquier valor superior a 630 como un 100%
  if (valorAgua > 100)
    valorAgua = 100;

  Serial.print("Nivel de agua en %: ");
  Serial.println(valorAgua);

  delay(1000);
}

Tras leer el valor analógico en la variable valorAgua, realizamos una conversión a porcentaje. Para ello, multiplicamos el valor leído por 100. Posteriormente lo dividimos entre 630.

¿Y por qué 630 y no otro valor? Este número corresponde al valor máximo que obtengo al realizar pruebas, cuando la resistencia del sensor se encuentra totalmente sumergida en agua. Cuando vosotros hagáis pruebas posiblemente obtendréis otro valor. Reemplazadlo y ya tendréis vuestro máximo umbral.

Finalmente comprobamos si el valor calculado es mayor que 100, ya que podría darse el caso de obtener un valor puntual mayor a 630. Así, todo valor mayor a nuestro máximo pasará a ser el 100%.

Deja un comentario