Práctica: Uso de combinación de estructuras de control en C en arduino.

Objetivo:

Aprender el uso de estructuras de control anidadas para el manejo y uso de diferentes elementos

Materiales:

Procedimiento:

Cargar el código:

Cargue el código proporcionado en su placa Arduino Uno. .

Esquema de Conexiones:

conexión arduino




// Definición de las constantes que representan los segmentos de un display de 7 segmentos
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;

// Definición de los pines para los elementos externos
const int LED2 = 12;
const int LED3 = 11;
const int BUZZER = 10;
const int MOTOR = 13;
const int RELE = 9;

// Número de segmentos en el display de 7 segmentos
const int N = 7;
// Definición de los segmentos que forman los dígitos en el display
const int SEGMENTOS[N] = {A, B, C, D, E, F, G};

// Definición de los patrones para los dígitos del 0 al 9 en el display de 7 segmentos
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; // Define el estado apagado como LOW

void setup()
{
    // Configura los pines como salida
    pinMode(LED2, OUTPUT);
    pinMode(LED3, OUTPUT);
    pinMode(BUZZER, OUTPUT);
    pinMode(MOTOR, OUTPUT);
    pinMode(RELE, OUTPUT);

    // Configura los pines de los segmentos como salida y los apaga
    for (int i = 0; i < N; i++)
    {
        pinMode(SEGMENTOS[i], OUTPUT);
        digitalWrite(SEGMENTOS[i], OFF); // apagar
    }
}

// Función para mostrar un dígito en el display
void print(int d)
{
    for (int i = 0; i < N; i++)
    {
        digitalWrite(SEGMENTOS[i], DIGITOS[d][i]);
    }
}

void loop()
{
    int count = 0;
    while (true)
    {
        // Muestra los dígitos del 0 al 9 en el display
        for (int i = 0; i < 10; i++)
        {
            print(i);
            delay(500); // esperar 500 milisegundos
        }
        count++;
        if (count >= 5 && count < 8)
        {
            // Activa LED2, el zumbador y desactiva el relé y el motor
            digitalWrite(LED2, HIGH);
            digitalWrite(LED3, LOW);
            digitalWrite(BUZZER, HIGH);
            digitalWrite(RELE, LOW);
            digitalWrite(MOTOR, LOW);
        }
        else if (count >= 8 || count == 0)
        {
            // Desactiva LED2, LED3, el zumbador y el motor, activa el relé y apaga los segmentos del display
            digitalWrite(LED2, LOW);
            digitalWrite(LED3, LOW);
            digitalWrite(BUZZER, LOW);
            digitalWrite(MOTOR, LOW);
            digitalWrite(RELE, HIGH);
            for (int i = 0; i < N; i++)
            {
                digitalWrite(SEGMENTOS[i], OFF); 
            }
            count = 0;
        }
        else
        {
            // Activa LED3 y el motor, desactiva el zumbador y el relé
            digitalWrite(LED3, HIGH);
            digitalWrite(BUZZER, LOW);
            digitalWrite(MOTOR, HIGH);
            digitalWrite(RELE, HIGH);
        }
    }
}


        

Modificación

Cambiar el código para que se tenga funcionando el motor y el foco al mismo tiempo, y en combinación con los LEDs y buzzer (lo contrario).