void loop() {
delay(999); // retardo de casi 1 segundo
Serial.print(contador*60); // Como son dos interrupciones por vuelta (contador * (60/2))
Serial.println(" RPM"); // El numero 2 depende del numero aspas de la helise del motor en prueba
contador = 0;
}
void interrupcion0() // Funcion que se ejecuta durante cada interrupion
{
contador++; // Se incrementa en uno el contador
}
Gracias
Al mismo tiempo usando dos delay() ni loco!!!
Un delay para las dos interrupciones en todo caso o de otro modo sin delay().
El problema es que se puede jugar con delay() para prender leds e incluso para medir RPM pero en este caso tienen una razón de ser.
Ahora si quieres usar dos ISR (interrupciones) no puedes detener el loop las veces que se te de la gana. Debes hacerlo con coherencia.
Traducción. La interrupcion cuenta pulsos. Lo hace usando contador que se incrementa con cada flanco ascendente en tu caso RISING.
Todo eso lo hace durante 999mseg mas las perdidas o sea 1mseg mas aprox. Total 1 seg
Pulsos x 1 segun traducido a pulso por minuto te da RPM
Si pones dos interrupciones deja el mismo lapso de tiempo y medi los dos contadores, uno por una ISR y otra por la segunda ISR (interrupción).
Entiendo,lo tomare en cuenta las normas en las próximas preguntas.
Lo que hice fue repetir el código a continuación del primero ,pero cambiando obviamente la interrupción, por la del pin3 y cambiando el nombre de las variables. Pero lo que no tengo claro es desde donde debo iniciar el segundo código, si debo copiarlo a continuación del primero, como otro independiente, o debo insertarlo en el mismo cuerpo,etc.
Entiendo que el código que estoy usando es el correcto, pero estaría bien si lo utilizo para la lectura del segundo motor ? O debo agregar o cambiar algo?
Como es mi primera experiencia en programación, no tengo clara ,en este caso la estructura de todo el programa es decir ya para leer las dos velocidades. Si copiarlo íntegramente a continuación del primero o algo así.
No Sr. cuando un moderador te pide algo no lo dejas para la próxima, en la próxma no debería reclamarte lo mismo. Sino mira el foro y observarás como se llega a sancionar si el OP no hace caso.
Asi que edita por favor!!
Como no has cumplido con lo solicitado yo condiciono mi ayuda justamente a que respetes las normas del foro.
yo tambien soy nuevo. recién agarre el arduino.
Fijate si podes usar millis() y un contador de tiempo en lugar de un Delay que te para completamente todo por 1 segundo.