Está en la página 1de 3

LABORATORIO DE INGENIERIA ELECTRICA

Integrantes:

SECCION:2

 Contador del 0 al 999 utilizando tres displays de cátodo común, y utilizamos solo 7 conectores
en para controlar los valores de este mismo, y el control del encendido de cada display se hara
con transistores NPN.

 CÓDIGO

/*Contador de tres Digitos de 7 segmentos por multiplexacion

Programado en el curso de Ingenieria Electrica de la Facultad


de Quimica e Ingenieria Química

Las Conexiones fueron realizadas utilizando el C.I. Arduino UNO


Transistores NPN, 3 Displays de 7 segmentos de cátodo Común

*/
int retardo=6; // se declara el tiempo de retardo para el display que sera de 6 milisegundos
int var=0; // Valor del digito que se va a desplegar en cada display
int unidad=0; // cuenta las unidades
int decena=0; // cuenta las decenas
int centena=0; // cuenta las centenas
int conmutador=0; // multiplexacion de uno a otro display
int cont=0; // contador de ciclos de espera para cambiar de numero

void setup()
{
pinMode(0,OUTPUT); //Segmento a
pinMode(1,OUTPUT); //Segmento b
pinMode(2,OUTPUT); //Segmento c
pinMode(3,OUTPUT); //Segmento d
pinMode(4,OUTPUT); //Segmento e
pinMode(5,OUTPUT); //Segmento f
pinMode(6,OUTPUT); //Segmento g

pinMode(9,OUTPUT); //activa el digito de la derecha (unidad)


pinMode(10,OUTPUT); //activa el digito 2 de la izquierda (decena)
pinMode(11,OUTPUT); //activa el digito 2 de la izquierda (decena)
}

void loop(){
delay(retardo); //tiempo que permanece encendido cada led

cont++; // incrementa el contador de ciclos en uno


if(cont==30){ // cada cuanto tiempo(ciclos cambia de numero)
cont=0 ; // inicializa el contador de ciclos
unidad=unidad+1; // incrementa la unidad, primer display
if(unidad >= 10){ // cuando la unidad llegue a 10 enciende el display de las decenas
decena=decena+1; // incrementa la decena, del segundo display
unidad=0; // regresa la unidad a cero
if (decena>=10){ // cuando la decena llegue a 10 se inicializa a cero la unidad y las decenas
decena=0;
unidad=0;
centena=centena+1; //enciende el display de las centenas
if (centena>=10){ //cuando la centena llegue a 10 se inicializa a cero todos los displays
centena=0;
}
}
}
}

if(conmutador==0){ //hace la multiplexacion conmutando entre los dos displays


digitalWrite(9,1); //enciende
digitalWrite(10,0); //apaga
digitalWrite(11,0); //apaga
var=unidad; //iguala la variable que escribe el numero n el display al valor de la unidad
conmutador=1; //cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}
else if (conmutador==1){
digitalWrite(9,0); // apaga el
digitalWrite(10,1); //enciende
digitalWrite(11,0); //apaga
var=decena; //iguala la variable que escribe el numero en el display al valor de la decena
conmutador=2; //cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}

else if (conmutador==2) {
digitalWrite(9,0); // apaga
digitalWrite(10,0); //apaga
digitalWrite(11,1); //enciende el izquierdo
var=centena; //iguala la variable que escribe el numero en el display al valor de la centena
conmutador=0; //cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}

switch(var) {
case 1: //escribe en el display el numero 1
digitalWrite(0,0);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
break;

case 2: //escribe en el display el numero 2


digitalWrite(0,1);
digitalWrite(1,1);
digitalWrite(2,0);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,1);
break;

case 3: //escribe en el display el numero 3


digitalWrite(0,1);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,1);
break;

case 4: //escribe en el display el numero 4


digitalWrite(0,0);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,1);
break;

case 5: //escribe en el display el numero 5


digitalWrite(0,1);
digitalWrite(1,0);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,1);
break;

case 6: //escribe en el display el numero 6


digitalWrite(0,1);
digitalWrite(1,0);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
break;

case 7: //escribe en el display el numero 7


digitalWrite(0,1);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
break;

case 8: //escribe en el display el numero 8


digitalWrite(0,1);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
break;

case 9: //escribe en el display el numero 9


digitalWrite(0,1);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,1);
break;

case 0: //escribe en el display el numero 0


digitalWrite(0,1);
digitalWrite(1,1);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,0);
break;

default:
digitalWrite(0,0);
digitalWrite(1,0);
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
}
}