Para la secuencia de números o cuenta regresiva se usa el siguiente código:
int boton = 2;
void setup()
{
for(int i=3;i<=10;i++)
pinMode(i, OUTPUT) ; //display 7 segmentos
pinMode( boton , INPUT) ; //botón como entrada
}
void display(int a,int b, int c, int d, int e, int f, int g, int punto)
{
digitalWrite(3,a);
digitalWrite(4,b);
digitalWrite(5,c);
digitalWrite(6,d);
digitalWrite(7,e);
digitalWrite(8,f);
digitalWrite(9,g);
digitalWrite(10,punto);
}
void loop()
{
display(0,0,0,0,0,0,0,1);
int valor = digitalRead(boton) ; // leemos el valor de boton, si está presionado será HIGH y sino será LOW.
if(valor==HIGH)//si el boton está enviando voltaje alto al pin del Arduino
{
//cuenta regresiva
display(0,0,0,1,1,0,0,0);//9
delay(2000);//el programa espera 5 segundos
display(0,0,0,0,0,0,0,0);//8
delay(2000);//el programa espera 5 segundos
display(0,0,0,1,1,1,1,0);//7
delay(2000);//el programa espera 5 segundos
display(0,1,0,0,0,0,0,0);//6
delay(2000);//el programa espera 5 segundos
display(0,1,0,0,1,0,0,0);//5
delay(2000);//el programa espera 5 segundos
display(1,0,0,1,1,0,0,0);//4
delay(2000);//el programa espera 5 segundos
display(0,0,0,0,1,1,0,0);//3
delay(2000);//el programa espera 5 segundos
display(0,0,1,0,0,1,0,0);//2
delay(2000);//el programa espera 5 segundos
display(1,0,0,1,1,1,1,0);//1
delay(2000);//el programa espera 5 segundos
} display(0,0,0,0,0,0,1,0);//0
delay(2000);//el programa espera 5 segundos
}
Para que los números vayan disminuyendo en el display lo único que debes hacer es anular el paso de energía a los pines, para formar el número, en mi caso se usa 1 para anular y 0 para dejar pasar energía a los pines.
Los pines enumerados en la sección de " digitalWrite", pero si no entiendes asi aqui esta una imagen de como estan los pines, deacuerdo a esta imagen solo cambias un 0 por un 1 para que tengas de resultado un número del 9 al 0.
No hay comentarios:
Publicar un comentario