Contador 7 Segmentos Cuantex 2 displays

publicado en: Tutoriales | 0
Contador 7 Segmentos Cuantex
Contador 7 Segmentos Cuantex

Contador 7 Segmentos Cuantex

Para este proyecto vamos a necesitar el Contador 7 Segmentos Cuantex, un Arduino y ya sea un juego de jumpers Hembra-Macho, o un protoboard con juego de jumpers Macho-Macho, y la practica es realizar un contador de 0 a 9 y posterior de 0 a 99.

La estructura del Display, Contador 7 Segmentos Cuantex:

Contador 7 Segmentos "Cuantex"
Contador 7 Segmentos “Cuantex”, Estructura.



Contador 0 a 9 7 Segmentos Cuantex

Como se puede apreciar mas adelante el programa consta de 3 secciones, al pasarlo al ID de Arduino van uno seguido el otro.

Sección 1:

Se declaran las 2 Salidas de control y las 7 Salidas de A,B,C,D,E,F,G correspondientes a los 7 Segmentos, Contador 7 Segmentos Cuantex.

nota: se evitan los pines 0 y 1 por la comunicación Serial TX,RX.


void setup() {
   Serial.begin(9600);
   pinMode(10, OUTPUT);
   pinMode(9, OUTPUT);
   pinMode(8, OUTPUT);
   pinMode(7, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(2, OUTPUT);
}

// Función del display
void display (int A, int B, int C, 
       int D, int E, int F, int G)
{
   digitalWrite (10,A); 
   digitalWrite (9,B); 
   digitalWrite (8,C); 
   digitalWrite (7,D);
   digitalWrite (6,E);
   digitalWrite (5,F);
   digitalWrite (4,G);
 delay(10); 
}

Contador 7 Segmentos "Cuantex"
Contador 7 Segmentos “Cuantex”, estructura. Fuente: https://2.bp.blogspot.com/-9arg5_6mFO0/VTWXTv9htSI/AAAAAAAAHe0/J70HPOIHSG8/s1600/7seg1.gif

Sección 2/3:

Tenemos una Función “display(0,0,0,0,0,0,0)” 7 segmentos. 0 —> display (1,1,1,1,1,1,0); 0 sección apagada o un 8 —> display (1,1,1,1,1,1,1); 1 sección encendida


// Funicion de Numero en 7 Segmentos
void numero(int n){ 
   if (n==0){ display (1,1,1,1,1,1,0); } //0
   if (n==1){ display (0,1,1,0,0,0,0); } //1
   if (n==2){ display (1,1,0,1,1,0,1); } //2
   if (n==3){ display (1,1,1,1,0,0,1); } //3
   if (n==4){ display (0,1,1,0,0,1,1); } //4
   if (n==5){ display (1,0,1,1,0,1,1); } //5
   if (n==6){ display (1,0,1,1,1,1,1); } //6
   if (n==7){ display (1,1,1,0,0,0,0); } //7
   if (n==8){ display (1,1,1,1,1,1,1); } //8
   if (n==9){ display (1,1,1,0,0,1,1); } //9
}

Sección 3/3:

Tenemos una Función “numero(#)” para 0 a 9, así llegamos al programa general donde queremos hacer un contador 0 a 9, generamos la variable unidad inicia en “cero” y por cada turno aumenta 1, al llegar al 9 sale del while y inicia en “cero” nuevamente.


// Programa general donde hacemos un Contador de 0 a 9 
void loop(){
    pinMode(3,1); pinMode(2,0);
 
    int unidades = 0;
    while(unidades<=9){
       numero(unidades); //10+10 milis por turno
       unidades++;
       delay(290); //10+290=300
    }
    unidades = 0; 
}

NOTA:

por el momento para una sola unidad K0 es el único activo. pinMode(3,1); —> que esta activando a K0, pinMode(2,0); —> que esta des activando a K1.

 


CONECTANDO LOS DISPLAYS EN SERIE

Contador 0 a 99 “7 Segmentos Cuantex”

Contador 7 Segmentos "Cuantex", Cableado.
Contador 7 Segmentos “Cuantex”, Cableado.

Como se puede apreciar el programa consta de 3 secciones, al pasarlo al ID de Arduino van uno seguido el otro.

Sección 1/3:

Se declaran las 2 Salidas de control y las 7 Salidas de A,B,C,D,E,F,G correspondientes a los 7 Segmentos, Contador 7 Segmentos Cuantex. La función antes vista “display (A,B,C,D,E,F,G);” y la función antes vista “numero(0-9)”.


void setup() {
   Serial.begin(9600);
   pinMode(10, OUTPUT);
   pinMode(9, OUTPUT);
   pinMode(8, OUTPUT);
   pinMode(7, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(2, OUTPUT);
}

// Función del display
void display (int A, int B, int C, 
       int D, int E, int F, int G)
{
   digitalWrite (10,A); 
   digitalWrite (9,B); 
   digitalWrite (8,C); 
   digitalWrite (7,D);
   digitalWrite (6,E);
   digitalWrite (5,F);
   digitalWrite (4,G);
 delay(10); 
}

// Funicion de Numero en 7 Segmentos
void numero(int n){ 
   if (n==0){ display (1,1,1,1,1,1,0); } //0
   if (n==1){ display (0,1,1,0,0,0,0); } //1
   if (n==2){ display (1,1,0,1,1,0,1); } //2
   if (n==3){ display (1,1,1,1,0,0,1); } //3
   if (n==4){ display (0,1,1,0,0,1,1); } //4
   if (n==5){ display (1,0,1,1,0,1,1); } //5
   if (n==6){ display (1,0,1,1,1,1,1); } //6
   if (n==7){ display (1,1,1,0,0,0,0); } //7
   if (n==8){ display (1,1,1,1,1,1,1); } //8
   if (n==9){ display (1,1,1,0,0,1,1); } //9
}

Sección 2/3:

Este es el truco para switchear entre Decenas e Unidades, en la función “display” se esconde un arma secreta, delay(10); ya que el ojo humano no puede apreciar cambios de 10 milisegundos, switcheamos entre activar y desactivar los Segmentos:


// Funcion salto entre Decimal y Unidad
 void Decimal(int des, int lapso){
    int conteo=0;
    while (conteo<=lapso){
        digitalWrite (3,0); // Que esta des activando a K0,
        digitalWrite (2,1); // Que esta activando a K1,
            numero(des);      // Mostrar Decenas

        digitalWrite (3,1); // Que esta activando a K0,
        digitalWrite (2,0); // Que esta des activando a K1,
             numero(uni);     // Mostrar Unidades</pre>
<pre>        conteo++; 
    }
} 

Sección 3/3:

Haciendo uso de la Función “Decimal(decenas, unidades, 10);”, así llegamos al programa general donde queremos, hacer un contador 0 a 99, asi generamos la variable unidad y decenas inicia en “cero” y por cada turno aumenta 1++; al llegar al 9 sale del while e inicia en “cero” nuevamente.

// Programa general donde hacemos un Contador de 0 a 99 
void loop(){

 int unidades = 0;
 int decenas =0;

 while (decenas<=9){
    while(unidades<=9){
       Decimal(decenas, unidades, 10); 
       //10+10 milis por turno
       unidades++;
    }
    unidades = 0;
    decenas++; 
 } 
 decenas=0;
} 

Contador 0 a 99 “7 Segmentos Cuantex”

Contador 7 Segmentos "Cuantex", Cableado.
Contador 7 Segmentos “Cuantex”, Cableado.

Dejar una opinión