"La solucion pensada po mi es hacer una rueda de un perimetro por decir 30cm y hacer huecos cada 2 cm cerca al borde de la rueda, y pues usar un contador optico para que me genere las señales"
Es de las pocas soluciónes, sinó como lo vas a hacer? Antiguamente todos los ssistemas se hacían así, por ejemplo para ver en que sentido soplava el viento, se hacía con un disco perforado y unos sensores de luz (o del tipo que quieran como infrarojos) determinava la posición del disco.
Este disco iva codificado con codigo binario de gray como el de la siguiente imagen:
El problema mas complejo en tu proyecto será detectar cuando el disco gira en un sentido o en otro aunque en realidad el disco en teoria es para medir distáncias y solo es válido ir hácia delante.
El caso es que el odómetro tiene varios úsos, por ejemplo el que usan para medir metros en la carretera, solo le es válido ir hácia delante, ya que el operario lo coge en el punto A y anda hasta el punto B.
En el caso de un coche, que hay que tienen odómetros también cuentan cuando se va para atrás. Creo que antes de intentar solucionar ese problema debes definir mejor tu aplicación ya que si solo es para medir distáncias de A a B, te quitas de encima el problema de ir hácia atrás.
Yo te propongo otro montaje mas sencillo ( pongamos el ejemplo solo par ir adelante).
La idea es la tuya pero con un solo agujero con un sensor, si sabes el diámetro de la rueda, cuando el agujero pasa por el infrarojo se considerará una vuelta completa, Teniendo el radio, puedes calcular la longitud de tu rueda.
Cada vez que el sensor pase por la ranura y el infrarojo deje pasar la luz, sabrás que has recorrido una distáncia igual al perímetro de tu rueda.
Básicamente se trada de hacer un contado, por ejemplo tengamos el perimetro "P", si el infrarojo a contado 30, la longitud recorrida por la rueda será:
Longitud = P * 30 [unidades]
Espero que lo entiendas. Te adjunto un dibujo hecho en paint pero claro, si tienes dudas pregunta.