Tarea 3 - Grupo 3 I&P2024-1

De Casiopea



TítuloTarea 3 - Grupo 3 I&P2024-1
AsignaturaInteracción y Performatividad
Del CursoInteracción y Performatividad 2024-1
CarrerasDiseño
3
Alumno(s)Angelica Andueza, Fernanda Farías, Emilia Sporman, Belen Briones

Arduino de humedad

Aaarduino humedad.png

Arduino en uso en tinkerkad

Si el nivel de humedad está bajo 200, se prende el led rojo.
Si el nivel de humedad está entre 200 y 400, se prende el led naranjo.
Si el nivel de humedad está entre 400 y 600, se prende el led amarillo.
Si el nivel de humedad está entre 600 y 800, se prende el led verde.
Si el nivel de humedad está sobre 800, se prende el led azul.

Ejemplo de video en uso

Código


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

void setup()
{
  pinMode(A0, OUTPUT);
  pinMode(A1, INPUT);
  Serial.begin(9600);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
}

void loop()
{
  // Apply power to the soil moisture sensor
  digitalWrite(A0, HIGH);
  delay(10); // Wait for 10 millisecond(s)
  moisture = analogRead(A1);
  // Turn off the sensor to reduce metal corrosion
  // over time
  digitalWrite(A0, LOW);
  Serial.println(moisture);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);
  if (moisture < 200) {
    digitalWrite(12, HIGH);
  } else {
    if (moisture < 400) {
      digitalWrite(11, HIGH);
    } else {
      if (moisture < 600) {
        digitalWrite(10, HIGH);
      } else {
        if (moisture < 800) {
          digitalWrite(9, HIGH);
        } else {
          digitalWrite(8, HIGH);
        }
      }
    }
  }
  delay(100); // Wait for 100 millisecond(s)
}

Explicación código

Este código es un programa en C++ diseñado para un microcontrolador, posiblemente Arduino, que controla un sensor de humedad del suelo y activa diferentes salidas dependiendo del nivel de humedad detectado. La explicación línea por línea:

  • int moisture = 0;: Declara una variable llamada moisture de tipo entero e inicializa su valor en 0. Esta variable se utilizará para almacenar el valor de lectura del sensor de humedad.


  • void setup() { ... }: Esta es una función especial en Arduino que se ejecuta una vez al inicio del programa para realizar configuraciones iniciales.


  • pinMode(A0, OUTPUT);: Configura el pin A0 como una salida. Este pin probablemente está conectado al control de encendido/apagado del sensor de humedad.


  • pinMode(A1, INPUT);: Configura el pin A1 como una entrada. Este pin está conectado al sensor de humedad y se utilizará para leer su valor analógico.


  • Serial.begin(9600);: Inicia la comunicación serial a una velocidad de 9600 baudios. Esto permite enviar datos desde el Arduino a una computadora para su visualización y depuración.


  • pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT);: Configura los pines 8, 9, 10, 11 y 12 como salidas. Estos pines probablemente están conectados a dispositivos que se activarán en función del nivel de humedad.


  • void loop() { ... }: Esta es otra función especial en Arduino que se ejecuta continuamente después de que setup() haya terminado.


  • digitalWrite(A0, HIGH);: Aplica alimentación al sensor de humedad estableciendo el pin A0 en alto.


  • delay(10);: Espera 10 milisegundos para que el sensor se estabilice.


  • moisture = analogRead(A1);: Lee el valor analógico del pin A1, que está conectado al sensor de humedad, y lo almacena en la variable moisture.


  • digitalWrite(A0, LOW);: Apaga el sensor de humedad estableciendo el pin A0 en bajo para reducir la corrosión de los metales.


  • Serial.println(moisture);: Imprime el valor de humedad en el monitor serial.


  • digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW);: Apaga todas las salidas conectadas a los pines 8, 9, 10, 11 y 12. El bloque condicional if-else que sigue compara el valor de humedad (moisture) con ciertos umbrales y enciende una salida correspondiente según el nivel de humedad detectado.


  • delay(100);: Espera 100 milisegundos antes de volver a iniciar el bucle. Esto ayuda a mantener una velocidad de muestreo controlada del sensor de humedad.