3er Parcial, práctica 3: Uso del bucle for en c.

Objetivo:

Familiarizarse con el uso del bucle for en Arduino y comprender su funcionalidad a través de un ejemplo práctico.

Materiales necesarios:

Instrucciones:

Cableado:

  1. Conecta los el display de 7 segmentos de cátodo común en los pines 2, 3, 4, 5, 6, 7 y 8 según se especifica en el código.
  2. Conecta el Buzzer al pin 10.
  3. Conecta el Motor al pin 9.
  4. Conecta un LED al pin 13.

Subir el código:

Copia el código proporcionado en el IDE de Arduino y súbelo al Arduino.

Observación:

Antes de ejecutar el código, revisa la lógica de funcionamiento del mismo y comprende cómo se utiliza el bucle for en diferentes partes del programa.

Ejecución:

Al ejecutar el código, observa cómo el bucle for se utiliza en diferentes contextos:

Esquema de Conexiones:

Conecta los componentes según el esquema de conexiones siguiente:

conexión arduino

Código:





const int A = 2;
const int B = 3;
const int C = 4;
const int D = 5;
const int E = 6;
const int F = 7;
const int G = 8;
const int MOTOR_PIN = 9; // Pin del motor

const int LED_PIN = 13; // Pin del LED
const int BUZZER_PIN = 10; // Pin del buzzer

const int N = 7;
const int SEGMENTOS[N] = {A, B, C, D, E, F, G};

/*CÁTODO COMÚN*/
const int DIGITOS[10][N] = {
/*0*/ {1, 1, 1, 1, 1, 1, 0},
/*1*/ {0, 1, 1, 0, 0, 0, 0},
/*2*/ {1, 1, 0, 1, 1, 0, 1},
/*3*/ {1, 1, 1, 1, 0, 0, 1},
/*4*/ {0, 1, 1, 0, 0, 1, 1},
/*5*/ {1, 0, 1, 1, 0, 1, 1},
/*6*/ {1, 0, 1, 1, 1, 1, 1},
/*7*/ {1, 1, 1, 0, 0, 0, 0},
/*8*/ {1, 1, 1, 1, 1, 1, 1},
/*9*/ {1, 1, 1, 1, 0, 1, 1}
};
const int OFF = LOW;

void setup()
{
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(MOTOR_PIN, OUTPUT);

  for (int i = 0; i < N; i++) {
    pinMode(SEGMENTOS[i], OUTPUT);
    digitalWrite(SEGMENTOS[i], OFF); // apagar
  }
}

void print(int d)
{
  for (int i = 0; i < N; i++) {
    digitalWrite(SEGMENTOS[i], DIGITOS[d][i]);
  }
}

void loop()
{
  for (int i = 0; i < 10; i++) {
    if (i >= 5) { // Si el número es mayor o igual a 5
      digitalWrite(MOTOR_PIN, HIGH); // Encender el motor
    } else {
      digitalWrite(MOTOR_PIN, LOW); // Apagar el motor
    }

    if (i % 2 == 0) { // Números pares
      digitalWrite(LED_PIN, HIGH);
    } else { // Números impares
      digitalWrite(BUZZER_PIN, HIGH);
      delay(100); // Duración del sonido del buzzer
      digitalWrite(BUZZER_PIN, LOW);
    }
    print(i);
    delay(1000); // esperar 1000 milisegundos
    digitalWrite(LED_PIN, LOW);
  }
}


        

Modificaciónes:

1. Modifica el código para que empiece el conteo de 9 a 0.

2. Cambia el encendido del motor para que sea en la segunda parte de la numeración.

3. Agrega un LED que encienda mientras funciona el motor.

Conclusiones: