// Tabla de decodificación para los dígitos HEX (0–F)
byte deco_dato[] = {
0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78,
0x00, 0x10, 0x08, 0x03, 0x46, 0x21, 0x06, 0x0E
};
// Pines del display (en orden de bit 0 → bit 6)
const int segmentos[] = {2, 3, 4, 5, 6, 7, 8}; // D2–D8 → a–g
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentos[i], OUTPUT);
digitalWrite(segmentos[i], HIGH);
}
}
void loop() {
static byte indice = 0;
byte valor = deco_dato[indice];
// Enviar bits a los pines
for (int i = 0; i < 7; i++) {
bool bit_val = bitRead(valor, i);
digitalWrite(segmentos[i], bit_val ? HIGH : LOW); //operador ternario ?
}
delay(500);
// Incrementar índice
indice = (indice == 15) ? 0 : indice + 1;
}
//bitRead() -> Función para leer el estado de un bit en la n posición de la variable x: