
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 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]

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»

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»
