You are on page 1of 4

Practica 13 Contador Descendente

Espejel Herrera Cesar Torrecilla Castro Enrique Equipo 4


const int botonIncremento = 9;
const int botonDecremento = 10;
I. INTRODUCCIÓN
const int tiempoAntirebote = 10;

¿Q UÉ ES UN CONTADOR ?
int cuenta = 0;
int estadoBotonIncremento;
int estadoBotonAnteriorIncremento;
int estadoBotonDecremento;
Un contador es un circuito en el que sus int estadoBotonAnteriorDecremento;
salidas siguen una secuencia fija que
cuando acaba vuelve a empezar, o boolean antirebote(int pin)
{
circuitos que reciben sus datos en forma int contador = 0;
serial ordenados en distintos intervalos de boolean estado;
tiempo. Los pulsos de entrada pueden ser boolean estadoAnterior;
pulsos de reloj u originarse en una fuente do {
externa y pueden ocurrir a intervalos de estado = digitalRead(pin);
tiempos fijos o aleatorios. if(estado != estadoAnterior)
{
contador = 0;
estadoAnterior = estado;
}
else
{
contador = contador + 1;
}
delay(1);
} while(contador < tiempoAntirebote);
II. DESARROLLO
return estado;
}
Diseñe un circuito secuencial que sea capaz de
hacer la función de contador ascendente y void actualizarNumero()
descendente en una numeración del 0 al 15 {
switch(cuenta)
Código para el Arduino {
const int a = 29; // segmentos del display case 0:
const int b = 30; digitalWrite(a, HIGH); // 0
const int c = 31; digitalWrite(b, HIGH);
const int d = 32; digitalWrite(c, HIGH);
const int e = 33; digitalWrite(d, HIGH);
const int f = 34; digitalWrite(e, HIGH);
const int g = 35; digitalWrite(f, HIGH);
const int a1 = 22; // segmentos del display digitalWrite(g, LOW);
const int b1 = 23; break;
const int c1 = 24;
const int d1 = 25; case 1:
const int e1 = 26; digitalWrite(a, LOW); // 1
const int f1 = 27; digitalWrite(b, HIGH);
const int g1 = 28; digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW); digitalWrite(g, HIGH);
digitalWrite(f, LOW); digitalWrite(a1, HIGH); // 0
digitalWrite(g, LOW); digitalWrite(b1, HIGH);
digitalWrite(a1, HIGH); // 0 digitalWrite(c1, HIGH);
digitalWrite(b1, HIGH); digitalWrite(d1, HIGH);
digitalWrite(c1, HIGH); digitalWrite(e1, HIGH);
digitalWrite(d1, HIGH); digitalWrite(f1, HIGH);
digitalWrite(e1, HIGH); digitalWrite(g1, LOW);
digitalWrite(f1, HIGH);
digitalWrite(g1, LOW); break;

break; case 5:
digitalWrite(a, HIGH); // 5
case 2: digitalWrite(b, LOW);
digitalWrite(a, HIGH); // 2 digitalWrite(c, HIGH);
digitalWrite(b, HIGH); digitalWrite(d, HIGH);
digitalWrite(c, LOW); digitalWrite(e, LOW);
digitalWrite(d, HIGH); digitalWrite(f, HIGH);
digitalWrite(e, HIGH); digitalWrite(g, HIGH);
digitalWrite(f, LOW); digitalWrite(a1, HIGH); // 0
digitalWrite(g, HIGH); digitalWrite(b1, HIGH);
digitalWrite(a1, HIGH); // 0 digitalWrite(c1, HIGH);
digitalWrite(b1, HIGH); digitalWrite(d1, HIGH);
digitalWrite(c1, HIGH); digitalWrite(e1, HIGH);
digitalWrite(d1, HIGH); digitalWrite(f1, HIGH);
digitalWrite(e1, HIGH); digitalWrite(g1, LOW);
digitalWrite(f1, HIGH);
digitalWrite(g1, LOW); break;

break; case 6:
digitalWrite(a, HIGH); // 6
case 3: digitalWrite(b, LOW);
digitalWrite(a, HIGH); // 3 digitalWrite(c, HIGH);
digitalWrite(b, HIGH); digitalWrite(d, HIGH);
digitalWrite(c, HIGH); digitalWrite(e, HIGH);
digitalWrite(d, HIGH); digitalWrite(f, HIGH);
digitalWrite(e, LOW); digitalWrite(g, HIGH);
digitalWrite(f, LOW); digitalWrite(a1, HIGH); // 0
digitalWrite(g, HIGH); digitalWrite(b1, HIGH);
digitalWrite(a1, HIGH); // 0 digitalWrite(c1, HIGH);
digitalWrite(b1, HIGH); digitalWrite(d1, HIGH);
digitalWrite(c1, HIGH); digitalWrite(e1, HIGH);
digitalWrite(d1, HIGH); digitalWrite(f1, HIGH);
digitalWrite(e1, HIGH); digitalWrite(g1, LOW);
digitalWrite(f1, HIGH);
digitalWrite(g1, LOW); break;

break; case 7:
digitalWrite(a, HIGH); // 7
case 4: digitalWrite(b, HIGH);
digitalWrite(a, LOW); // 4 digitalWrite(c, HIGH);
digitalWrite(b, HIGH); digitalWrite(d, LOW);
digitalWrite(c, HIGH); digitalWrite(e, LOW);
digitalWrite(d, LOW); digitalWrite(f, LOW);
digitalWrite(e, LOW); digitalWrite(g, LOW);
digitalWrite(f, HIGH); digitalWrite(a1, HIGH); // 0
digitalWrite(b1, HIGH); digitalWrite(d1, LOW);
digitalWrite(c1, HIGH); digitalWrite(e1, LOW);
digitalWrite(d1, HIGH); digitalWrite(f1, LOW);
digitalWrite(e1, HIGH); digitalWrite(g1, LOW);
digitalWrite(f1, HIGH); break;
digitalWrite(g1, LOW);
case 11:
break; digitalWrite(a, LOW); // 1
digitalWrite(b, HIGH);
case 8: digitalWrite(c, HIGH);
digitalWrite(a, HIGH); // 8 digitalWrite(d, LOW);
digitalWrite(b, HIGH); digitalWrite(e, LOW);
digitalWrite(c, HIGH); digitalWrite(f, LOW);
digitalWrite(d, HIGH); digitalWrite(g, LOW);
digitalWrite(e, HIGH); digitalWrite(a1, LOW); // 1
digitalWrite(f, HIGH); digitalWrite(b1, HIGH);
digitalWrite(g, HIGH); digitalWrite(c1, HIGH);
digitalWrite(a1, HIGH); // 0 digitalWrite(d1, LOW);
digitalWrite(b1, HIGH); digitalWrite(e1, LOW);
digitalWrite(c1, HIGH); digitalWrite(f1, LOW);
digitalWrite(d1, HIGH); digitalWrite(g1, LOW);
digitalWrite(e1, HIGH); break;
digitalWrite(f1, HIGH);
digitalWrite(g1, LOW); case 12:
digitalWrite(a, HIGH); // 2
break; digitalWrite(b, HIGH);
digitalWrite(c, LOW);
case 9: digitalWrite(d, HIGH);
digitalWrite(a, HIGH); // 9 digitalWrite(e, HIGH);
digitalWrite(b, HIGH); digitalWrite(f, LOW);
digitalWrite(c, HIGH); digitalWrite(g, HIGH);
digitalWrite(d, LOW); digitalWrite(a1, LOW); // 1
digitalWrite(e, LOW); digitalWrite(b1, HIGH);
digitalWrite(f, HIGH); digitalWrite(c1, HIGH);
digitalWrite(g, HIGH); digitalWrite(d1, LOW);
digitalWrite(a1, HIGH); // 0 digitalWrite(e1, LOW);
digitalWrite(b1, HIGH); digitalWrite(f1, LOW);
digitalWrite(c1, HIGH); digitalWrite(g1, LOW);
digitalWrite(d1, HIGH); break;
digitalWrite(e1, HIGH);
digitalWrite(f1, HIGH); case 13:
digitalWrite(g1, LOW); digitalWrite(a, HIGH); // 3
digitalWrite(b, HIGH);
break; digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
case 10: digitalWrite(e, LOW);
digitalWrite(a, HIGH); // 0 digitalWrite(f, LOW);
digitalWrite(b, HIGH); digitalWrite(g, HIGH);
digitalWrite(c, HIGH); digitalWrite(a1, LOW); // 1
digitalWrite(d, HIGH); digitalWrite(b1, HIGH);
digitalWrite(e, HIGH); digitalWrite(c1, HIGH);
digitalWrite(f, HIGH); digitalWrite(d1, LOW);
digitalWrite(g, LOW); digitalWrite(e1, LOW);
digitalWrite(a1, LOW); // 1 digitalWrite(f1, LOW);
digitalWrite(b1, HIGH); digitalWrite(g1, LOW);
digitalWrite(c1, HIGH); break;
pinMode(botonDecremento, INPUT);
case 14: }
digitalWrite(a, LOW); // 4
digitalWrite(b, HIGH); void loop()
digitalWrite(c, HIGH); {
digitalWrite(d, LOW); estadoBotonIncremento =
digitalWrite(e, LOW); digitalRead(botonIncremento);
digitalWrite(f, HIGH); if(estadoBotonIncremento
digitalWrite(g, HIGH); !=estadoBotonAnteriorIncremento)
digitalWrite(a1, LOW); // 1 {
digitalWrite(b1, HIGH); if(antirebote(botonIncremento))
digitalWrite(c1, HIGH); {
digitalWrite(d1, LOW); cuenta++;
digitalWrite(e1, LOW); if(cuenta > 15)
digitalWrite(f1, LOW); {
digitalWrite(g1, LOW); cuenta = 15;
break; }
}
case 15: }
digitalWrite(a, HIGH); // 5 estadoBotonAnteriorIncremento =
digitalWrite(b, LOW); estadoBotonIncremento;
digitalWrite(c, HIGH); estadoBotonDecremento =
digitalWrite(d, HIGH); digitalRead(botonDecremento);
digitalWrite(e, LOW); if(estadoBotonDecremento
digitalWrite(f, HIGH); !=estadoBotonAnteriorDecremento)
digitalWrite(g, HIGH); {
digitalWrite(a1, LOW); // 1 if(antirebote(botonDecremento))
digitalWrite(b1, HIGH); {
digitalWrite(c1, HIGH); cuenta--;
digitalWrite(d1, LOW); if(cuenta < 0)
digitalWrite(e1, LOW); {
digitalWrite(f1, LOW); cuenta = 0;
digitalWrite(g1, LOW); }
break; }
}
} estadoBotonAnteriorDecremento =
} estadoBotonDecremento;
actualizarNumero();
}
void setup()
{
pinMode(a, OUTPUT); III. CONCLUSIÓN
pinMode(b, OUTPUT);
En esta Práctica pudimos hacer un contador
pinMode(c, OUTPUT);
pinMode(d, OUTPUT); Descendente que realiza la operación
pinMode(e, OUTPUT); mediante unos push buttons programados
pinMode(f, OUTPUT); para aumentor y disminuir
pinMode(g, OUTPUT);
pinMode(a1, OUTPUT);
IV. REFERENCIAS
pinMode(b1, OUTPUT);
pinMode(c1, OUTPUT); http://www.kumbaya.name/ci1210/leccion1
pinMode(d1, OUTPUT); 0%20registros%20y%20contadores/Dise%C3
pinMode(e1, OUTPUT);
%B1o%20de%20Contadores.htm
pinMode(f1, OUTPUT);
pinMode(g1, OUTPUT);
pinMode(botonIncremento, INPUT);

You might also like