Este proyecto utiliza un Arduino para controlar un display de 7 segmentos de cátodo común, mostrando una secuencia de números del 0 al 9. Cada segmento del display está conectado a un pin específico en el Arduino, que activa los segmentos correspondientes para formar los dígitos. El display muestra cada número por un segundo antes de pasar al siguiente, creando una secuencia numérica continua visible en el display. Esta implementación es ideal para aprender sobre el control de displays de 7 segmentos y la programación de microcontroladores.
/*
Creado: Luis Alvarez (edualv1723@gmail.com)
https://alvelectronics.com
*/
const int SEGMENT_A = 2;
const int SEGMENT_B = 3;
const int SEGMENT_C = 4;
const int SEGMENT_D = 5;
const int SEGMENT_E = 6;
const int SEGMENT_F = 7;
const int SEGMENT_G = 8;
// Definición de los patrones de cada dígito (0-9) para un display de cátodo común
const byte DIGIT_PATTERNS[10] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
void setup() {
// Configurar los pines de los segmentos como salidas
pinMode(SEGMENT_A, OUTPUT);
pinMode(SEGMENT_B, OUTPUT);
pinMode(SEGMENT_C, OUTPUT);
pinMode(SEGMENT_D, OUTPUT);
pinMode(SEGMENT_E, OUTPUT);
pinMode(SEGMENT_F, OUTPUT);
pinMode(SEGMENT_G, OUTPUT);
}
void loop() {
for (int number = 0; number < 10; number++) {
displayNumber(number);
delay(1000); // Mostrar cada dígito durante 1 segundo
}
}
void displayNumber(int number) {
// Configurar los pines de los segmentos según el patrón del dígito
byte pattern = DIGIT_PATTERNS[number];
digitalWrite(SEGMENT_A, bitRead(pattern, 0));
digitalWrite(SEGMENT_B, bitRead(pattern, 1));
digitalWrite(SEGMENT_C, bitRead(pattern, 2));
digitalWrite(SEGMENT_D, bitRead(pattern, 3));
digitalWrite(SEGMENT_E, bitRead(pattern, 4));
digitalWrite(SEGMENT_F, bitRead(pattern, 5));
digitalWrite(SEGMENT_G, bitRead(pattern, 6));
}