Você está na página 1de 4

CONTADOR ASCENDENTE 0-99

Práctica1- Arduino

Ing. Ricardo Alfonso Galvez Orozco

Fernando Estrada Cruz


Jose Moises Lopez Dominguez
fer_na31@hotmail.com
Objetivo:

Se desea programar el arduino mega 2560 en compilador para poder realizar un contador
ascendente del 0 al 99 desplegando estos valores en dos display multiplexados agregando un
botón para ir incrementando estos valores uno por uno.

Materiales:

 Protoboard
 2 display siete segmentos
 Jumpers
 Arduino mega
 2 74LS47
 2 push botón
 Resistencias de 10k

Desarrollo:

Se realizó el siguiente programa:


#define a1 9
#define b1 8
#define c1 7
#define d1 6

#define a2 13
#define b2 12
#define c2 11
#define d2 10

int T1=0, T2=0;


byte Aumenta=5, Disminuir=4, Reset=3;
boolean aux1=true, aux2=true, aux3=true;

void setup()
{
pinMode(a1,OUTPUT);
pinMode(b1,OUTPUT);
pinMode(c1,OUTPUT);
pinMode(d1,OUTPUT);

pinMode(a2,OUTPUT);
pinMode(b2,OUTPUT);
pinMode(c2,OUTPUT);
pinMode(d2,OUTPUT);

BCD(0,d1,c1,b1,a1);
BCD(0,d2,c2,b2,a2);

void loop()
{
if(digitalRead(Aumenta)==HIGH && aux1==true) //Codigo para aumentar
{
aux1=false;
T1++;
if(T1>9){T2++; T1=0;}
if(T2>9){T2=0;}
}
if(digitalRead(Aumenta)==LOW && aux1==false){aux1=true;}

if(digitalRead(Disminuir)==HIGH && aux2==true) //Codigo para disminuir


{
aux2=false;
T1--;
if(T1<0){T2--; T1=9;}
if(T2<0){T2=9;}
}
if(digitalRead(Disminuir)==LOW && aux2==false){aux2=true;}

if(digitalRead(Reset)==HIGH && aux3==true) //Codigo para resetear


{
aux3=false;
T1=0;
T2=0;
}
if(digitalRead(Reset)==LOW && aux3==false){aux3=true;}

BCD(T1,d1,c1,b1,a1);
BCD(T2,d2,c2,b2,a2);
}

void BCD(byte Contador, byte D, byte C, byte B, byte A)


{
switch(Contador)
{
case 0: digitalWrite(D,LOW);digitalWrite(C,LOW);digitalWrite(B,LOW);digitalWrite(A,LOW);
break;

case 1: digitalWrite(D,LOW);digitalWrite(C,LOW);digitalWrite(B,LOW);digitalWrite(A,HIGH);
break;

case 2: digitalWrite(D,LOW);digitalWrite(C,LOW);digitalWrite(B,HIGH);digitalWrite(A,LOW);
break;

case 3: digitalWrite(D,LOW);digitalWrite(C,LOW);digitalWrite(B,HIGH);digitalWrite(A,HIGH);
break;

case 4: digitalWrite(D,LOW);digitalWrite(C,HIGH);digitalWrite(B,LOW);digitalWrite(A,LOW);
break;

case 5: digitalWrite(D,LOW);digitalWrite(C,HIGH);digitalWrite(B,LOW);digitalWrite(A,HIGH);
break;
case 6: digitalWrite(D,LOW);digitalWrite(C,HIGH);digitalWrite(B,HIGH);digitalWrite(A,LOW);
break;

case 7: digitalWrite(D,LOW);digitalWrite(C,HIGH);digitalWrite(B,HIGH);digitalWrite(A,HIGH);
break;

case 8: digitalWrite(D,HIGH);digitalWrite(C,LOW);digitalWrite(B,LOW);digitalWrite(A,LOW);
break;

case 9: digitalWrite(D,HIGH);digitalWrite(C,LOW);digitalWrite(B,LOW);digitalWrite(A,HIGH);
break;
}
}

Simulación y conexión:

Conclusión:

En este proyecto se desarrolló la programación en arduino y la simulación en proteus para el


proyecto de contador ascendente, se pudo observar la simplificación de componentes es una de
las ventajas que nos ofrece el arduino para la elaboración de proyectos.

Você também pode gostar