Capacitación Arduino · Sensor de lluvia

Sensor de agua
¿Está
lloviendo?

Sensor de agua y lluvia (T1592 / HW-038): mientras más mojadas sus pistas, más alto el valor. LED verde = seco, LED rojo = ¡lluvia! Simulado en Tinkercad y en OpenCircuits.

Entrada analógica Umbral Bloques + C++

El componente

Sensor de agua y lluvia (T1592 / HW-038)

Power−+S 10 pistas de cobreLED de encendidoTransistor el agua las une: más mojado,más corriente pasa el módulo tiene corriente amplifica la señal S − → GND+ → 5VS → A0
Es analógico: S entrega un voltaje que sube con el agua. En el Arduino: seco ≈ 0, gotas ≈ 200, muy mojado ≈ 700.
Sirve para lluvia (acostado bajo el cielo) o para nivel de agua (parado dentro de un vaso): mientras más alto el agua, más alto el valor.

Cómo funciona

Del agua en las pistas a un número

Lectura de A0 (0 a 1023) umbral 300 (en el código) lluvia se seca LED rojo LED verde LED verde
  1. Las gotas unen las pistas de cobre: pasa un poco de corriente.
  2. El transistor la amplifica y S sube.
  3. Arduino lo lee en A0 con analogRead.
  4. Si pasa de 300, el programa enciende el LED rojo (lluvia); si no, el verde.

Truco de simulación

Tinkercad no tiene el sensor de lluvia

En el kit real

Power−+S

En Tinkercad: lo reemplazamos

Parte del kitLa reemplazamos conArduino
Sensor de lluvia (pistas + S)Sensor de humedad del suelo (sí existe en Tinkercad)
también analógico: más agua = valor más alto
A0
UmbralEl código: if (agua > 300)—
AvisoLED verde (seco) y LED rojo (lluvia), con 220 ΩD4 · D6

Los dos tienen 3 pines (VCC, GND y la señal) y se conectan igual.

Diferencia: el sensor de Tinkercad llega a 1023 y el de lluvia real a unos 700. Con el umbral en 300 el programa funciona en los dos.

Paso 1 · Componentes

Búscalos en el panel de componentes de Tinkercad

Arduino Uno R3 ×1

Buscar: Arduino

Placa de pruebas pequeña ×1

Buscar: Placa de pruebas

Sensor de humedad del suelo ×1

Buscar: humedad. Hace de sensor de lluvia.

Resistencias 220 Ω ×2

Una para cada LED.

LED verde ×1

Seco.

LED rojo ×1

¡Lluvia!

Para cambiar el color de un LED, haz clic en él y edítalo en el cuadro de propiedades.

Paso 2 · Circuito

Así se ve en Tinkercad

Agua 0 % A0 0 Estado SECO

Paso 2 · Conexiones

Conexión por conexión

Alimentación
Arduino 5VRiel + inferior
Arduino GNDRiel − inferior
Sensor (fuera de la protoboard)
Sensor VCCRiel +
Sensor GNDRiel −
Sensor SIGArduino A0
El cable de la señal da la vuelta por la derecha del sensor y pasa bajo la protoboard hasta A0.
LED verde · seco
—LED cátodo / ánodo (fila e)Columna 3 / 4
—220 ΩColumna 4 → 8 (fila c)
Arduino D4Columna 8
Columna 3Riel −
LED rojo · lluvia
—LED cátodo / ánodo (fila e)Columna 10 / 11
—220 ΩColumna 11 → 15 (fila c)
Arduino D6Columna 15
Columna 10Riel −

Paso 3 · Código en bloques

Arrastra estos bloques · todo dentro de «siempre»

Antes de empezar

Variables → Crear variable: agua.

La lectura de A0 va dentro de «siempre»: así se revisa todo el tiempo.
Controlsiempre, si / si no
Entradaleer pin analógico A0
Matemáticascomparar ( > )
Variablesdefinir agua en, agua
Salidadefinir pin 4 / 6 en ALTA o BAJA

Paso 3 · Código C++

El mismo programa en texto

// C++ code
//
int agua = 0;

void setup()
{
  pinMode(A0, INPUT);
  pinMode(6, OUTPUT);
  pinMode(4, OUTPUT);
}
En Tinkercad: Código → Bloques → Texto. Acepta el aviso, borra lo que haya y pega.
void loop()
{
  agua = analogRead(A0);
  if (agua > 300) {
    digitalWrite(6, HIGH);
    digitalWrite(4, LOW);
  } else {
    digitalWrite(6, LOW);
    digitalWrite(4, HIGH);
  }
  delay(10); // Delay a little bit to improve simulation performance
}

Paso 4 · Simular

¡A probar!

  1. Pulsa Iniciar simulación: con el sensor seco se enciende el LED verde.
  2. Haz clic en el sensor: aparece su control de humedad. Súbelo sobre 30 %: se enciende el LED rojo.
  3. Bájalo (se seca): vuelve el verde.
  4. Cambia el 300 del bloque para que reaccione con más o menos agua.

Si algo no funciona

Siempre verdeLa señal no llega a A0 o falta VCC del sensor.
Siempre rojoEl umbral está muy bajo (por ejemplo 0).
No cambia nuncaLa lectura debe estar dentro de «siempre».
Ningún LED enciendeRevisa la orientación (pata doblada = ánodo).

Paso 5 · Kit real

Del simulador al sensor real

Cambia el sensor de Tinkercad por el de lluvia

Sensor de lluviaArduino
−GND
+5V
SA0

El código no cambia: sigue leyendo A0 y comparando con 300. Los LEDs y sus 220 Ω se quedan.

Para probarlo

  1. Con el sensor seco, mira el valor en el Monitor serie (reto 1): debe estar cerca de 0.
  2. Moja las pistas con unas gotas o un dedo húmedo: el valor sube y se enciende el rojo.
  3. Sécalo con papel: vuelve el verde.

Moja solo las pistas, nunca la parte con los componentes. Con el tiempo el cobre se oxida: en proyectos reales se alimenta solo al medir.

Alternativa · OpenCircuits

En OpenCircuits está el sensor de lluvia

Power−+S
Agua 0 % S (A0) 0 Estado SECO Iniciar.bat → SensoresSensor de lluvia T1592 · Lluvia

El bloque nuevo

El bloque verde de la categoría T1592 lee el sensor y compara en un paso: «¿está lloviendo? (nivel mayor que 300)». No hace falta variable.

T1592T1592 pin A0: ¿está lloviendo? (nivel mayor que 300)
Controlsiempre, si / si no
Salidadefinir pin 4 / 6 en ALTA o BAJA

En la categoría también están «nivel de agua (0 a 700)» y «mostrar nivel de agua» (Monitor serie).

// C++ code
//
void setup()
{
  pinMode(6, OUTPUT);
  pinMode(4, OUTPUT);
}
void loop()
{
  if (analogRead(A0) > 300) {
    digitalWrite(6, HIGH);
    digitalWrite(4, LOW);
  } else {
    digitalWrite(6, LOW);
    digitalWrite(4, HIGH);
  }
  delay(10); // Delay a little bit to improve simulation performance
}
Este texto lo escribe OpenCircuits a partir de los bloques. Es el programa del kit real: lee S con analogRead(A0).

Para seguir

Retos

1 · Valor en pantalla

Muestra el nivel de agua en el Monitor serie. Pista: Serial.println(agua).

2 · Tres niveles

Agrega un LED amarillo: seco, unas gotas (100 a 300) y lluvia fuerte.

3 · Nivel de un vaso

Pon el sensor de pie en un vaso y muestra el nivel en la LCD I2C.

4 · Cerrar la ventana

Si llueve, un servo gira 90° (cierra una ventana de cartón) y suena el buzzer.

← → para avanzar · + − acercar el circuito · F pantalla completa