// Definición de pines para el primer 74HC595
const int dataPin1 = 12; // Pin DS del primer 74HC595
const int latchPin1 = 11; // Pin ST_CP del primer 74HC595
const int clockPin1 = 13; // Pin SH_CP del primer 74HC595
// Definición de pines para el segundo 74HC595
const int dataPin2 = 4; // Pin DS del segundo 74HC595
const int latchPin2 = 3; // Pin ST_CP del segundo 74HC595
const int clockPin2 = 2; // Pin SH_CP del segundo 74HC595
// Números y sus correspondientes códigos para el display de 7 segmentos
byte numeros[10] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
void setup() {
// Configura los pines de datos, latch y reloj como salidas
pinMode(dataPin1, OUTPUT);
pinMode(latchPin1, OUTPUT);
pinMode(clockPin1, OUTPUT);
pinMode(dataPin2, OUTPUT);
pinMode(latchPin2, OUTPUT);
pinMode(clockPin2, OUTPUT);
}
void mostrarNumero(int numero) {
// Muestra el número en el primer display de 7 segmentos
digitalWrite(latchPin1, LOW);
shiftOut(dataPin1, clockPin1, MSBFIRST, numeros[numero]);
digitalWrite(latchPin1, HIGH);
// Muestra el número en el segundo display de 7 segmentos
digitalWrite(latchPin2, LOW);
shiftOut(dataPin2, clockPin2, MSBFIRST, numeros[numero]);
digitalWrite(latchPin2, HIGH);
}
void loop() {
// Muestra números del 0 al 9 en los displays de 7 segmentos
for (int i = 0; i < 10; i++) {
mostrarNumero(i);
delay(1000); // Espera 1 segundo
}
}