Contador 7 Segmentos Cuantex

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

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.

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.