#define SERIAL_BAUDRATE 115200 // etiqueta o macro para fijar la velocidad del puerto serie
// Estructura de datos para modelar EL ARRAY DE LUCES LED
struct strLED{
int8_t id; // identificador de LED
int8_t pin; // propiedad que contiene numero de terminal
int16_t timeON; // propiedad del tiempo que permanece de encendido
int16_t timeOFF; // propiedad del tiempo que permanece en espera cuando se apaga
// funciones declaradas en el cuerpo de la struct. Forma parte de la misma
void csetup();
void encender();
void apagar();
};
// Se definen externamente de la struct para no repetir en memoria su definicion
// configuracion del terminal en la funcion setup(). COMPLETAR CODIGO
void strLED::csetup(){
pinMode( pin, OUTPUT );
Serial.printf("\n Configurado pin[ %i ] -> OUTPUT", pin );
}
void strLED::encender(){
// XXXXX () completar la funcion para escribir en el PIN de salida LED. vER EN AYUDA-> REFERENCIAS
digitalWrite (pin, HIGH);
Serial.printf("\n Encendido pin[ %i] -> ON", pin);
delay(timeON);
}
void strLED::apagar(){
digitalWrite (pin, LOW);
Serial.printf("\n Encendido pin[ %i] -> OFF", pin);
delay(timeOFF);
}
strLED ledPrueba[5];
void setup() {
Serial.begin( 115200);
ledPrueba[0] = {0, 32, 1000, 500};
ledPrueba[1] = {1, 33, 2000, 500};
ledPrueba[2] = {2, 25, 1500, 500};
ledPrueba[3] = {3, 26, 1200, 500};
ledPrueba[4] = {4, 27, 3000, 500};
int i = 0;
// Bucle for que itera en el array desde el elemento 0 al 4 ( total 5 elementos)
for ( i = 0; i <= 4; i++){
ledPrueba[i].csetup();
}
}
void loop() {
// comienza de nuevo
int i=0;
// Bucle for que itera en el array desde el elemento 0 al 4 ( total 5 elementos)
for ( i=0; i < 5; i++){
ledPrueba[i].encender();// enciende y espera
ledPrueba[i].apagar(); // apaga y espera
}
}