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.

[code language=»cpp»]

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

[/code]

Contador 7 Segmentos "Cuantex"
Contador 7 Segmentos «Cuantex», estructura. Fuente: http://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

[code language=»cpp»]

// 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
}
[/code]

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.

[code language=»cpp»]

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

[/code]

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)».

[code language=»cpp»]

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
}
[/code]

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:

[code language=»cpp»]

// 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++;
}
}
[/code]

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.

[code language=»cpp»]
// 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;
}

[/code]

Contador 0 a 99 «7 Segmentos Cuantex»

Contador 7 Segmentos "Cuantex", Cableado.
Contador 7 Segmentos «Cuantex», Cableado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *