Prueba...
Monte el esquematico y probe usando un par de pushbuttons en lugar de los sensores y el monitor serial; coloco una imagen de como lo monté:
Esta dificil ver si funciona correctamente con los pushbuttons (tienen mucho rebote o "ruido" electronico y afectan en las lecturas) o no, pero debe hacerlo ya que responde con "algo" en el monitor serial, aunque me parece bastante incoherente lo que envia pero repito, debe ser por el rebote de los botones
Luego de ver que se veía algo incoherente lo que arroja, le meti mano al codigo y se vio algo mejor, aunque le faltaria agregarle saltos de linea al monitor serial para que se vea mejor; coloco una captura de pantalla de como se vio al final:
REX_007...
Antes no le habia puesto mucha atencion pero ahora al montarlo, cargarlo y todo eso, me surgeron algunas dudas; aqui van:
1. En tus variables:
int led1 = 12;
int led2 = 13;
Esos pines son para los LED infra rojos ¿verdad?, ¿entoces te falto conectarlos en el esquematicos o esas variables son para los sensores y deberia ser:
int led1 = 2;
int led2 = 3;
?
2. Cambié la sintaxis de "attachInterrupt" (ya que segun la ayuda de Arduino puede dar problema cuando se usa en tarjetas diferentes) de esto:
attachInterrupt(0, front, CHANGE)
attachInterrupt(1, rear, CHANGE)
A esto:
attachInterrupt(digitalPinToInterrupt(2), front, CHANGE);
attachInterrupt(digitalPinToInterrupt(3), rear, CHANGE);
3. En el Loop te falto mostrar el resultado en m/s cuando se usa el display LCD.
4. Aqui:
#define Sec 1000000 // Constante para dividir entre segundos y no en micro segundos, ya que la función milis, arroja la medición en us
Mencionas la funcion milis() y en realidad usas micros(); todo esta bien, solo que confunde la mencion que haces de milis ya cuando ves el codigo.
Por cierto, ¿no seria mejor usar milis() en lugar de micros()?; de nuevo, la ayuda de Arduino menciona que micros() tiende a fallar luego de los primeros microsegundos con la funcion "attachInterrupt"; a menos que le haya entendido mal
Definitivamente se necesita hacer pruebas ya con los sensores
y ver si lo que resulta es o no coherente o lo esperado; pero en general, parece que pinta bien
si acaso algunos toques aqui y alla (yo lo haria con el display LCD) meramente esteticos
Salu2