Descripción de la imagen

Contador del 0 al 9

Descripción

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.

Materiales necesarios:

Instrucciones:

  1. Conectar las resistencias como se ven el esquema
  2. Revisar la disposición de los pines y conectar correctamente cada resistencia con su pin correspondiente. (La programación es solo display cátodo común)
  3. Programar el Arduino teniendo los estados lógicos de las salidas digitales (Se recomienda crear Arrays y funciones)
  4. Establecer un tiempo de retardo (por lo menos de 500ms)
  5. Alimentar el Arduino y comprueba su funcionamiento.

Esquema de conexión

Código de Ejemplo (para Arduino IDE):

Copied

/*
  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));
}

      
Whatsapp