// Definición de pines
const int pulsadorPin = 25; // Cambia el número de pin según la conexión física
const int displayPines[7] = {22, 21, 19, 18, 17, 16, 15}; // Cambia los pines según la conexión física
void setup() {
// Inicialización de pines
pinMode(pulsadorPin, INPUT);
for (int i = 0; i < 7; i++) {
pinMode(displayPines[i], OUTPUT);
}
// Inicialización de puerto serie para depuración
Serial.begin(9600);
}
void loop() {
// Espera a que se presione el pulsador
while (digitalRead(pulsadorPin) == HIGH) {
// No hacer nada mientras el pulsador no esté presionado
}
// Genera un número aleatorio del 1 al 6
int numeroAleatorio = random(1, 7);
// Muestra el número en el display de 7 segmentos
mostrarNumero(numeroAleatorio);
// Espera a que se libere el pulsador
while (digitalRead(pulsadorPin) == LOW) {
// No hacer nada mientras el pulsador esté presionado
}
// Apaga el display después de soltar el pulsador
apagarDisplay();
}
void mostrarNumero(int numero) {
// Mapa de correspondencia para mostrar números en el display de 7 segmentos
byte digitos[10] = {B0110000, B0110000, B1101101, B1111001, B0110011, B1011011, B1011111};
// Apaga el display antes de mostrar un nuevo número
apagarDisplay();
// Muestra el número en el display
for (int i = 0; i < 7; i++) {
if (bitRead(digitos[numero], i)) {
digitalWrite(displayPines[i], HIGH);
}
}
}
void apagarDisplay() {
// Apaga todos los segmentos del display
for (int i = 0; i < 7; i++) {
digitalWrite(displayPines[i], LOW);
}
}