Hola Amigos: queria comentarles quee hice un cronometro de 5 digitos el cual indica hasta las milesimas..hice este programa para que funcione:
int pinLatch = 10; //Pin para el latch de los 74CH495
int pinDatos = 11; //Pin para Datos serie del 74CH495
int pinReloj = 12; //Pin para reloj del 74CH495
int i=0; //Número de las decenas
int j=0; //Número de las unidades
int k=0; //Numero de las decimas
int l=0; //Numero de las centesimas
int m=0; //numero de las milesimas
byte digitOne[10]= {
// Codificación hexadecimal de los dígitos decimales en el display de 7 segmentos
0xEE, 0x82, 0xDC, 0xD6, 0xB2, 0x76, 0x7E, 0xC2, 0xFE, 0xF6};
void setup(){
pinMode(pinLatch,OUTPUT);
pinMode(pinDatos,OUTPUT);
pinMode(pinReloj,OUTPUT);
}
void loop(){
// Para que imprima
for(m=0; m<10; m++){ //Aumneta en uno, hasta que llegue a 10, el numero de las milesimas
for(l=0; l<10; l++){ //Aumneta en uno, hasta que llegue a 10, el numero de las centesimas
for(k=0; k<10; k++){ //Aumneta en uno, hasta que llegue a 10, el numero de las decimas
for(i=0; i<10; i++){ //Aumneta en uno, hasta que llegue a 10, el numero de las decenas
for(j=0; j<10; j++){ //Aumneta en uno, hasta que llegue a 10, el numero de las unidades
digitalWrite(pinLatch, LOW);
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[m]); // digitOne unidades
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[l]); //digitOne decenas
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[k]); //digitOne decimas
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[i]); //digitOne centesimas
shiftOut(pinDatos, pinReloj, LSBFIRST, digitOne[j]); //digitOne milesimas
digitalWrite(pinLatch, HIGH);
delay(1);
}
}
}
}
}
}
pero tiene el problema de que arrastra un error en el tiempo ..ya que lo comparo con un cronometro de un celular y cuenta mas lento..intente con el tiempo del delay pero funciona muy rapido o muy lento...es por esto mi duda ...uso interrupciones???en el caso de usarlas como hago??? desde ya agraddeceria su ayuda ya que es un proyecto para la facu!!!
Moderador: Código editado con etiquetas