Sensor de humedad


 

🔧 Componentes principales

Un sensor de humedad del suelo típico para Arduino tiene dos partes:

  1. Sonda: Dos pines metálicos que se insertan en la tierra.

  2. Módulo de control: Se conecta a la sonda y al Arduino; convierte la señal analógica o digital que Arduino puede leer.


🧪 ¿Cómo mide la humedad?

La sonda mide la conductividad eléctrica del suelo:

  • Cuando el suelo está húmedo, conduce electricidad mejor.

  • Cuando el suelo está seco, conduce peor.

El sensor envía una señal al Arduino según cuánta electricidad fluye entre las dos puntas metálicas.


📤 Tipos de señal de salida

  1. Salida analógica (A0):

    • Entrega un valor entre 0 y 1023 que representa el nivel de humedad.

    • Más alto = más seco (o depende del sensor, revisa la documentación).

  2. Salida digital (D0):

    • Entrega 1 o 0 según un umbral que tú ajustas con un potenciómetro en el módulo.

    • Por ejemplo: 1 si está seco, 0 si está húmedo.


🔌 Conexión a Arduino

Pines del módulo:

  • VCC → 5V en Arduino

  • GND → GND en Arduino

  • A0 → Entrada analógica (ej. A0 en Arduino)

  • D0 → Entrada digital (opcional)



Código

int humedad = 0; //Variable para almacenar la humedad
void setup()
{
  //Configuramos los leds
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  Serial.begin(9600); //Iniciamos la comunicación serial
}
void loop()
{
  humedad = analogRead(A5); //Leemos el valor del sensor
Serial.println("humedad=");
  Serial.println(humedad); //Mostramos por pantalla
  //Con este for apagamos los leds despues de cada lectura
  //de esta forma conseguimos el efecto barrido
  for (int x=9; x<=13; x++)
  {
  digitalWrite(x, LOW);
  }  
  //Según el valor de la humedad, encendemos el led que corresponde
  if (humedad < 200)
  {
    digitalWrite(13, HIGH);
  } 
  else {
    if (humedad < 400) 
    {
      digitalWrite(12, HIGH);
    } 
    else {
      if (humedad < 600)
      {
        digitalWrite(11, HIGH);
      } 
      else {
        if (humedad < 800) 
        {
          digitalWrite(10, HIGH);
        } 
        else {
          digitalWrite(9, HIGH);
        }
      }
    }
  }
  delay(100); // Esperamos antes de una nueva lectura
}

No hay comentarios:

Publicar un comentario