// Pines conectados al display de 7 segmentos (common cathode)
const int a = 2;
const int b = 4;
const int c = 14;
const int d = 12;
const int e = 13;
const int f = 5;
const int g = 18;
// Estructura que almacena los patrones de segmentos
struct Segment {
bool a, b, c, d, e, f, g;
};
// Mapa de letras (para un display común cátodo, LOW = encendido)
Segment letras[] = {
// C
{1, 0, 0, 1, 1, 1, 0},
// A
{1, 1, 1, 0, 1, 1, 1},
// M (simulada)
{1, 0, 1, 1, 0, 1, 1},
// I
{0, 0, 0, 0, 1, 1, 0},
// L
{0, 0, 0, 1, 1, 1, 0},
// O
{1, 1, 1, 1, 1, 1, 0}
};
// Vector de pines
const int pines[] = {a, b, c, d, e, f, g};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(pines[i], OUTPUT);
digitalWrite(pines[i], HIGH); // Apaga todos los segmentos al inicio
}
}
void mostrarLetra(Segment letra) {
// Asigna cada segmento
digitalWrite(a, letra.a);
digitalWrite(b, letra.b);
digitalWrite(c, letra.c);
digitalWrite(d, letra.d);
digitalWrite(e, letra.e);
digitalWrite(f, letra.f);
digitalWrite(g, letra.g);
}
void apagarDisplay() {
for (int i = 0; i < 7; i++) {
digitalWrite(pines[i], HIGH);
}
}
void loop() {
// Mostrar el nombre “CAMILO”
for (int i = 0; i < 6; i++) {
mostrarLetra(letras[i]);
delay(1000); // Mostrar letra 1 segundo
apagarDisplay();
delay(300); // Pausa entre letras
}
}