Arduino - Sensor de lluvia

El sensor de lluvia es capaz de detectar y medir el nivel de lluvia o nieve. El sensor de lluvia proporciona dos salidas: una salida digital (LOW/HIGH) y una salida analógica.

En este tutorial, aprenderemos a usar un Arduino y un sensor de lluvia para detectar y medir la lluvia. Específicamente, cubriremos lo siguiente:

sensor de lluvia para Arduino

Después, puedes modificar el código para activar un motor o una alarma cuando detecte lluvia o nieve.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor de Lluvia
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de lluvia

El sensor de lluvia puede utilizarse para detectar la presencia de lluvia o para medir el nivel de agua que cae con la lluvia. El sensor de lluvia ofrece dos opciones a través de un pin de salida digital y un pin de salida analógica.

El sensor de lluvia incluye dos partes:

  • La placa de detección
  • El módulo electrónico
Esquema de pines del sensor de lluvia
image source: diyables.io

La almohadilla de detección

La placa de detección se coloca en el exterior y puede exponerse a la lluvia y la nieve (p. ej., el techo). La placa de detección tiene una serie de pistas de cobre expuestas, divididas en dos grupos: pistas de alimentación y pistas de detección. Estas pistas de alimentación y pistas de detección no están conectadas entre sí a menos que estén puenteadas por agua o nieve. No hay diferencias entre las pistas de alimentación y de detección. Puedes elegir una como pista de alimentación y la otra será la pista de detección.

El módulo electrónico

El módulo electrónico del sensor de lluvia convierte la señal de la placa de detección en un valor analógico o digital que puede ser leído por Arduino. Incluye cuatro pines:

  • Pin VCC: Debe conectarse a VCC (3,3 V a 5 V).
  • Pin GND: Debe conectarse a GND (0 V).
  • Pin DO: Es un pin de salida digital. Está en alto si no se detecta la lluvia y en bajo si se detecta. El valor umbral para la detección de lluvia se puede ajustar mediante un potenciómetro incorporado.
  • Pin AO: Es un pin de salida analógica. El valor de salida disminuye a medida que aumenta el agua en la almohadilla de detección, y aumenta a medida que disminuye el agua en la almohadilla de detección.

Además, tiene dos indicadores LED:

  • Un indicador PWR-LED para la alimentación.
  • Un indicador DO-LED para el estado de lluvia en el pin DO: se enciende cuando hay lluvia.

Cómo funciona

Para el pin DO:

  • El módulo tiene un potenciómetro integrado para ajustar el umbral de sensibilidad.
  • Cuando la intensidad está por encima del umbral, se detecta la lluvia, el pin de salida del sensor está en LOW y el LED DO está encendido.
  • Cuando la intensidad está por debajo del umbral, la lluvia no se detecta, el pin de salida del sensor está en HIGH y el LED DO está apagado.

Para el pin AO:

  • Cuánta más agua haya en la almohadilla de detección, menor será el valor leído desde el pin AO.
  • Cuánta menos agua haya en la almohadilla de detección, mayor será el valor leído desde el pin AO.

Tenga en cuenta que el potenciómetro no afecta al valor del pin AO.

Diagrama de Cableado

Como se mencionó anteriormente, el pin VCC del sensor debe conectarse a 3.3V o 5V. Si conectamos este pin directamente al pin de 3.3V o 5V de Arduino, la vida útil del sensor se acortará debido a la corrosión electroquímica. La mejor forma es conectar el pin VCC del sensor de lluvia a un pin de salida de Arduino; podemos programar ese pin para alimentar el sensor de lluvia solo cuando se esté leyendo. Esto puede minimizar el impacto de la corrosión electroquímica.

Ya que el módulo del sensor de lluvia tiene dos salidas, puedes elegir usar una o ambas, dependiendo de lo que necesites.

  • El diagrama de cableado entre Arduino y el sensor de lluvia cuando se usa solo DO.
Diagrama de cableado del sensor de lluvia para Arduino

This image is created using Fritzing. Click to enlarge image

  • El diagrama de cableado entre Arduino y el sensor de lluvia cuando se utiliza solo AO.
Diagrama de cableado para la detección de lluvia con Arduino

This image is created using Fritzing. Click to enlarge image

  • El diagrama de cableado entre Arduino y el sensor de lluvia cuando se utilizan tanto AO como DO.
Diagrama de cableado del detector de lluvia para Arduino

This image is created using Fritzing. Click to enlarge image

Código de Arduino - Leer el valor del pin de salida digital

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-rain-sensor */ #define POWER_PIN 3 // The Arduino pin that provides the power to the rain sensor #define DO_PIN 4 // The Arduino's pin connected to DO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código al Arduino
  • Vierte un poco de agua sobre el sensor de lluvia
  • Consulta el resultado en el Monitor Serial.
COM6
Send
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Tenga en cuenta que si nota que el LED permanece encendido de forma constante o se apaga incluso cuando el sensor está expuesto a la lluvia, puede ajustar el potenciómetro para afinar la sensibilidad del sensor.

Código de Arduino - Leer el valor del pin AO

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-rain-sensor */ #define POWER_PIN 3 // The Arduino pin that provides the power to the rain sensor #define AO_PIN A0 // Arduino's pin connected to AO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rainValue = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rainValue); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Upload en Arduino IDE para subir el código al Arduino
  • Echa un poco de agua al sensor de lluvia
  • Ver el resultado en el Monitor Serial.
COM6
Send
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

Referencias de funciones

※ 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!