Sunteți pe pagina 1din 7

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

ARDUINO - Display 7 Segmentos (catodo comun)

2 a

3 b

4 c

5 d

6 e

7 f

8 g

9 P

10 COM digito izquierdo usando Transistor NPN

11 COM digito derecho usando Transistor NPN

*/

int retardo=10; // tiempo que dura encendido cada 7 seg (10 mili segundos)

int var=0; // Valor del digito que se va a desplegar por el 7 seg.

int unidad=0; // cuenta las unidades (derecha)

int decena=0; // cuenta las decenas (izquierda)

int conmutador=0; // multiplexacion de uno a otro 7 segmentos

int cont=0; // contador de ciclos de espera para cambiar de numero

void setup() {
pinMode(2, OUTPUT); //seg a

pinMode(3, OUTPUT); //seg b

pinMode(4, OUTPUT); //seg c

pinMode(5, OUTPUT); //seg d

pinMode(6, OUTPUT); //seg e

pinMode(7, OUTPUT); //seg f

pinMode(8, OUTPUT); //seg g

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

pinMode(11, OUTPUT); // activa digito 2 izquierda (decena)

void loop() {

delay(retardo); // tiempo que dura encendido cada 7seg antes de cambiar al otro

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

if (cont==100){ // cada cuanto tiempo (ciclos)cambia un numero

cont=0; // inicializa el contador de ciclos

unidad=unidad+1; // incrementa la unidad, primer 7seg

if (unidad >= 10){ // cuando la unidad llegue a 10 incrementa la decena

decena=decena+1; // incrementa la decena, segundo 7seg

unidad=0; // regresa la unidad a cero

if (decena>=10){ // cuando la decena llegue a 10 se inicializa a cero

decena=0;
}

if (conmutador == 0) { // hace la multiplexacion conmutando entre los dos 7seg izq y der

digitalWrite(10, 1); // enciende el derecho

digitalWrite(11, 0); // apaga el izquierdo

var=unidad; // iguala la variable que escribe el numero en el 7seg al valor de la unidad

conmutador=1; // cambia el conmutador para que en el siguiente ciclo cumpla la otra


condicion

else{

digitalWrite(10, 0); // apaga el derecho

digitalWrite(11, 1); // enciende el izquierdo

var=decena; // iguala la variable que escribe el numero en el 7seg al valor de la decena

conmutador=0; // cambia el conmutador para que en el siguiente ciclo cumpla la otra


condicion

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, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(7, 0);

digitalWrite(8, 0);

S-ar putea să vă placă și