Vous êtes sur la page 1sur 4

/* Contador decimal de dos Digigitos en 7 Segmentos usando multiplexacion

Por: http://elprofegarcia.com/
Conexiones: Las conexiones entre el Arduino y el Display deben realizarse
con una resistencia de 1K ohmio.
Ver plano en: https://www.dropbox.com/s/7xdksbf0cy36ji8/plano%20conexion%20ardu
ino%207seg%2000-99.jpg?dl=0
ARDUINO 2
3
4
5
6
7
8
9

Display 7 Segmentos (catodo comun)


a
b
c
d
e
f
g
P

10
COM digito izquierdo usando Transistor NPN
11
COM digito derecho usando Transistor NPN
Sitio donde se compro todos los componentes: http://dinastiatecnologica.com/pro
ducto/display-7-segmentos-doble/
*/
int retardo=10;
int var=0;

// tiempo que dura encendido cada 7 seg (10 mili segundos)


// Valor del digito que se va a desplegar por el 7 seg.

int
int
int
int

//
//
//
//

unidad=0;
decena=0;
conmutador=0;
cont=0;

void setup()
pinMode(2,
pinMode(3,
pinMode(4,
pinMode(5,
pinMode(6,
pinMode(7,
pinMode(8,

{
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);

cuenta las unidades (derecha)


cuenta las decenas (izquierda)
multiplexacion de uno a otro 7 segmentos
contador de ciclos de espera para cambiar de numero

//seg
//seg
//seg
//seg
//seg
//seg
//seg

a
b
c
d
e
f
g

pinMode(10, OUTPUT); // activa digito 1 derecha (unidad)


pinMode(11, OUTPUT); // activa digito 2 izquierda (decena)
}
void loop() {
delay(retardo);
ambiar al otro
cont++;
if (cont==100){
cont=0;
unidad=unidad+1;
if (unidad >= 10){
na
decena=decena+1;
unidad=0;
if (decena>=10){

// tiempo que dura encendido cada 7seg antes de c


//
//
//
//
//

incrementa el contador de ciclos en Uno


cada cuanto tiempo (ciclos)cambia un numero
inicializa el contador de ciclos
incrementa la unidad, primer 7seg
cuando la unidad llegue a 10 incrementa la dece

// incrementa la decena, segundo 7seg


// regresa la unidad a cero
// cuando la decena llegue a 10 se inicializa a ce

ro
decena=0;
}
}
}
if (conmutador == 0) {
7seg izq y der
digitalWrite(10, 1);
digitalWrite(11, 0);
var=unidad;
7seg al valor de la unidad
conmutador=1;
iclo cumpla la otra condicion

// hace la multiplexacion conmutando entre los dos


// enciende el derecho
// apaga el izquierdo
// iguala la variable que escribe el numero en el
// cambia el conmutador para que en el siguiente c

}
else{
digitalWrite(10, 0);
digitalWrite(11, 1);
var=decena;
l 7seg al valor de la decena
conmutador=0;
ciclo cumpla la otra condicion

// apaga el derecho
// enciende el izquierdo
// iguala la variable que escribe el numero en e
// cambia el conmutador para que en el siguiente

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

digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 5:
//escribe en el 7seg el numero 5
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 6:
//escribe en el 7seg el numero 6
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 7:
//escribe en el 7seg el numero 7
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
break;
case 8:
//escribe en el 7seg el numero 8
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 9:
//escribe en el 7seg el numero 9
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
break;
case 0:
//escribe en el 7seg el numero 0
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
break;
default:

digitalWrite(2,
digitalWrite(3,
digitalWrite(4,
digitalWrite(5,
digitalWrite(6,
digitalWrite(7,
digitalWrite(8,
}
}

0);
0);
0);
0);
0);
0);
0);

Vous aimerez peut-être aussi