Sure, thx for your fast respond, sory for my english. I post the code (have some spanish helps).
int blocal=1;
int bvisit=1;
int rebote=0;
int saque=0;
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 vunidad=0; // cuenta las unidades (derecha)
int vdecena=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
int vcont=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(9, OUTPUT); //seg saque
pinMode(10, OUTPUT); // activa digito 1 derecha (unidad)
pinMode(11, OUTPUT); // activa digito 2 izquierda (decena)
pinMode(12, OUTPUT); // activa digito 1 derecha (unidad)
pinMode(13, OUTPUT); // activa digito 2 izquierda (decena)
pinMode(15, INPUT); // boton de inicio
pinMode(16, INPUT); // boton de parada
}
void loop() {
//delay(retardo); // tiempo que dura encendido cada 7seg antes de cambiar al otro
if (rebote == 0){
blocal=digitalRead(15);
bvisit=digitalRead(16);
delay(5);
if (blocal == 0 && bvisit==0){ // poner a cer
rebote++;
unidad=-1;
vunidad=-1;
decena=0;
vdecena=0;
saque=0;
}
if (blocal==0){
rebote++;
cont++;
saque=1;
}
if (bvisit==0){
rebote++;
vcont++;
saque=2;
}
}
else{
rebote++;
delay(5);
if (rebote == 40){
rebote=0;
}
}
if (cont==1){ // 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 (vcont==1){ // cada cuanto tiempo (ciclos)cambia un numero
vcont=0; // inicializa el contador de ciclos
vunidad=vunidad+1; // incrementa la unidad, primer 7seg
if (vunidad >= 10){ // cuando la unidad llegue a 10 incrementa la decena
vdecena=vdecena+1; // incrementa la decena, segundo 7seg
vunidad=0; // regresa la unidad a cero
if (vdecena>=10){ // cuando la decena llegue a 10 se inicializa a cero
vdecena=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
digitalWrite(12, 0); // enciende el derecho
digitalWrite(13, 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 {
if (conmutador == 1) { // hace la multiplexacion conmutando entre los dos 7seg izq y der
digitalWrite(10, 0); // enciende el derecho
digitalWrite(11, 1); // apaga el izquierdo
digitalWrite(12, 0); // enciende el derecho
digitalWrite(13, 0); // apaga el izquierdo
var=decena; // iguala la variable que escribe el numero en el 7seg al valor de la unidad
conmutador=2; // cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}
else {
if (conmutador == 2) { // hace la multiplexacion conmutando entre los dos 7seg izq y der
digitalWrite(10, 0); // enciende el derecho
digitalWrite(11, 0); // apaga el izquierdo
digitalWrite(12, 1); // enciende el derecho
digitalWrite(13, 0); // apaga el izquierdo
if (saque==1){
digitalWrite(9,1);
}
else {
digitalWrite(9,0);
}
var=vunidad; // iguala la variable que escribe el numero en el 7seg al valor de la unidad
conmutador=3; // cambia el conmutador para que en el siguiente ciclo cumpla la otra condicion
}
else {
if (conmutador == 3) { // hace la multiplexacion conmutando entre los dos 7seg izq y der
digitalWrite(10, 0); // enciende el derecho
digitalWrite(11, 0); // apaga el izquierdo
digitalWrite(12, 0); // enciende el derecho
digitalWrite(13, 1); // apaga el izquierdo
if (saque==2){
digitalWrite(9,1);
}
else {
digitalWrite(9,0);
}
var=vdecena; // iguala la variable que escribe el numero en el 7seg al valor de la unidad
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);
}
}