Introducción
El marcador en un estadio,una calculadora son algunos ejemplos de donde podemos encontrar tablero de segmentos para números. En este ejemplo revisamos una manera muy simple de contar desde 0 a 9999. Debemos tener en cuenta que el display puede usar 7 pines diferentes para cada segmento, además un pin adicional par el punto y cuatro pines para seleccionar el dígito. Para que entiendas un poco mas de como funciona un display 7 segmentos de 4 dígitos, puedes acceder a este link donde encontraras una imagen relacionada con el display usado en este ejemplo, recuerda que en tu caso podría ser uno diferente, recomendamos ver el datasheet
Pasos a seguir:
Código:
//7 Segmentos de display int a = 12; //Cada segmento del display se indica por medio de una letra a la cual int b = 8; // se le asignara un pin de nuestro Picaro int c = 4; int d = 6; int e = 7; int f = 11; int g = 3; // digitos de Display int dg1 = 2; // Por medio de estos pines seleccionaremos cual de los 4 dígitos queremos activar. int dg2 = 9; int dg3 = 10; int dg4 = 13; //Punto int dp=5; // Se declara que pin activara el punto. //Velocidad int vel=5; // Se declara la velocidad en que se realizara el conteo. int mil,cien,dec,uni; //Unidades,decenas, centenas y millares byte segmentos[7] = { a,b,c,d,e,f,g }; byte orden_digitos[4] = { dg1,dg2,dg3,dg4 }; byte digitos[4][4] = // Orden en el cual se activaran los dígitos { { 0,0,0,1 }, { 0,0,1,0 }, { 0,1,0,0 }, { 1,0,0,0 } }; byte siete_segmentos_digitos[10][7] = //Se crea el arreglo numérico para asignar los digitos al { { 1,1,1,1,1,1,0 }, // = 0 //display 7 segmentos { 0,1,1,0,0,0,0 }, // = 1 { 1,1,0,1,1,0,1 }, // = 2 { 1,1,1,1,0,0,1 }, // = 3 { 0,1,1,0,0,1,1 }, // = 4 { 1,0,1,1,0,1,1 }, // = 5 { 1,0,1,1,1,1,1 }, // = 6 { 1,1,1,0,0,0,0 }, // = 7 { 1,1,1,1,1,1,1 }, // = 8 { 1,1,1,0,0,1,1 } // = 9 }; void EscribeDigito(byte digito, byte numero) { int secuencia = 0; ActivarDigito(digito); //Activa número //Escribe Numero for (byte i = 0; i < 7; i++){ digitalWrite(segmentos[secuencia], siete_segmentos_digitos[numero][i]); ++secuencia; } } void ActivarDigito(int x){ digitalWrite(dg1, HIGH); digitalWrite(dg2, HIGH); digitalWrite(dg3, HIGH); digitalWrite(dg4, HIGH); switch(x){ // Utilizamos la sentencia Case, donde se compara la variable (x) con case 1: // cada caso y de esta manera tomar accion segun el dato leido digitalWrite(dg1, LOW); break; case 2: digitalWrite(dg2, LOW); break; case 3: digitalWrite(dg3, LOW); break; default: digitalWrite(dg4, LOW); break; } } void setup(){ int i; //Inicializar Pines for(i=2; i <= 13;i++) pinMode(i,OUTPUT); } void loop(){ start(); } void start(){ //funcion para contar de 0 a 9999 for(mil=0;mil<=9;mil++){ //Al llegar cien= 9 se incrementa la variable mil for(cien=0;cien<=9;cien++){ //Al llegar dec= 9 se incrementa la variable cien for(dec=0;dec<=9;dec++){ //Al llegar uni= 9 se incrementa la variable dec for(uni=0;uni<=9;uni++){ //Se incrementa el contador de uni hasta llegar a 9 EscribeDigito(1, uni); delay(vel); EscribeDigito(2, dec); delay(vel); EscribeDigito(3, cien); delay(vel); EscribeDigito(4, mil); delay(vel); } } } }
Demostración
Que tal si intentas realizar un Reloj, solo debes tener en cuenta que en caso de un reloj un minuto es formado por 60 segundos. Con solo cambiar un poco el código podrás hacerlo.
¿En busca del Kit PICARO?
Con el PICARO Starter Kit podrás realizar estos ejemplos ¡y mucho más!
Producto Chileno. Encuéntralo en MCI Electronics.
Contacto

Direccion Luis Thayer Ojeda 0115 Of. 1105, Providencia, Santiago, Chile.
Phone: +56 2 2333 9579 / +56 2 2231 9268
Horario Lunes a Viernes de 8:00 a 18:00
Nosotros
En MCI Electronics, estamos aquí para mantener la industria en movimiento. Nuestro objetivo es difundir y hacer accesible el uso de la electrónica a todo aquel que tenga el interés. Para ello nos esforzamos para traer los mejores componentes y módulos de manera que puedas aprender desarrollando tus propios proyectos.
Somos tu aliado en electrónica.