miércoles, 19 de agosto de 2015

Contador digital con display de 7 segmentos

En electrónica digital, Un contador (en inglés, counter) es un circuito secuencial construido a partir de biestables y puertas lógicas capaz de almacenar y contar los impulsos (a menudo relacionados con una señal de reloj), que recibe en la entrada destinada a tal efecto, asimismo también actúa como divisor de frecuencia. Normalmente, el cómputo se realiza en código binario, que con frecuencia será el binario natural o el BCD natural (contador de décadas).
Con Arduino haremos un pequeño contador que irá de 0 a 9 y para eso vamos a usar un display de 7 segmentos.

Materiales
§  Arduino mega 2560
§  Display de 7 segmentos catodo común modelo DC05
§  1 Resistencia de 220 Ohms
§  Cables
Configuración del display de 7 segmentos
Un display de este tipo no es más que un conjunto de LED’s como los que hemos estado utilizando, solo que estos están conectados en un circuito. Nosotros usaremos el display modelo DC05, el cual es de catodo común, es decir, internamente todos los LED’s comparten la misma tierra (GND).


Circuito
El circuito es fácil de armar, las configuraciones pueden variar, solo recuerda declarar bien los pines dentro del código de Arduino.

Como pueden apreciar las conexiones quedaron de la siguiente manera:
§  Pin A del Display al pin 39 del Arduino
§  Pin B del Display al pin 51 del Arduino
§  Pin G del Display al pin 43 del Arduino
§  Pin F del Display al pin 41 del Arduino
§  Pin E del Display al pin 47 del Arduino
§  Pin D del Display al pin 49 del Arduino
§  Pin C del Display al pin 45 del Arduino
§  La tierra del display va conectada a un extremo de la resistencia y el otro extremo de la resistencia va conectado a tierra del Arduino (GND)
Programa de Arduino.

Versión 1: en esta version utilizamos un delay(1000), lo que significa que se detiene el programa por 1000 milisegundos = 1 segundo, esto con el fin de dejar prendido el estado del display por 1 segundo. Después podemos ver como es que vamos prendiendo cada uno de los números en el Display.

int a = 39;
int b = 51;
int c = 45;
int d = 49;
int e = 47;
int f = 41;
int g = 43;//Hacemos que todas nuestras variables sean salidas
void setup(){
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);}

void loop(){
//Cero
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);

delay(1000);
//Uno
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);

delay(1000);

//Uno
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);

delay(1000);

//Dos
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);

delay(1000);

//Tres
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);

delay(1000);

//Cuatro
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);

delay(1000);

//Cinco
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);

delay(1000);

//Seis
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);

delay(1000);

//Siete
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);

delay(1000);

//Ocho
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);

delay(1000);

//Nueve
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);

delay(1000);


}


Conclucion 
Los contadores digitales son utiles en todos los dispositivos electronicos ya que estos pueden ser diferentes indicadores que se ven reflejados en el display ademas de que son muy faciles de conectar puedes que en el display te de el voltaje de una bateria etc.