/*
Andrés Eduardo Zúñiga López
Display de 7 segmentos, ESP32 y secuencia de dígitos según nombre
ANDRES
Descomponer ANDRES en A=1, N=14, D=4, R=18, E=5, s=19
Secuencia deseada 1, 1, 4, 4, 1, 8, 5, 1, 9
*/
#include <Arduino.h>
//Pines del display A 22, B 23, C 32, D 33, E 25, F 21, G 19
const int segmentPins[] = {22, 23, 32, 33, 25, 21, 19};
// Define los patrones para los dígitos 0-9 en el display de 7 segmentos
const byte digitPatterns[] = {
0b11000000, // 0
0b11111001, // 1
0b10100100, // 2
0b10110000, // 3
0b10011001, // 4
0b10010010, // 5
0b10000010, // 6
0b11111000, // 7
0b10000000, // 8
0b10010000, // 9
};
void setup() {
// Configura los pines de los segmentos como salidas. Son 7 segmentos
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
/*Inicio ANDRES. Una vez mostrado el número, apaga el display
para que la secuencia sea legible*/
void loop() {
// Muestra el número 1
displayNumber(1);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 1
displayNumber(1);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 4
displayNumber(4);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 4
displayNumber(4);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 1
displayNumber(1);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 8
displayNumber(8);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 5
displayNumber(5);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 1
displayNumber(1);
delay(1000);
turnOffDisplay();
delay(1000);
// Muestra el número 9
displayNumber(9);
delay(1000);
turnOffDisplay();
delay(10000); //Se apaga más tiempo el display para volver a iniciar
}
void displayNumber(int number) {
if (number >= 0 && number <= 9) {
// Enciende los segmentos correspondientes para mostrar el número
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], bitRead(digitPatterns[number], i));
}
}
}
void turnOffDisplay() {
// Apaga todos los segmentos para volver a iniciar
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], HIGH);
}
}