Duda Odometro

Iniciado por Gerik, 12 Mayo 2011, 06:46 AM

0 Miembros y 1 Visitante están viendo este tema.

Gerik

Bueno tengo que hacer un odometro con el Pic 16F84A para mi clase de Microcontroladores el proyecto debe hacer basicamente lo siguiente:
1.si la rueda va hacia adelante contar cuanto avanzo
2.si rueda va hacia atras decrementar lo avanzado.
3.1 pulsador para guardar un dato, otro para visualizar ese dato.
4 la visualizacion se muestra en 3 displays.


"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"

Ahora mi duda es como puedo hacer para que el micro se de cuenta de que la rueda esta andando hacia adelante o hacia atras

PD: Todos los pines ocupados (7 pines para display, 3 mas para habilitarlos ya sea anodo o catodo,1para guardar el dato, 1 para mostrar ese dato, y el que sobra que sera el RA4/TOCK0 que sera el que reciba la señal del optocontador)

skapunky

#1
Citar"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.


Killtrojan Syslog v1.44: ENTRAR

Gerik

antes que todo gracias por contestar...

Ahora lo que tu dices si esta bien pero si digamos no di toda la vuelta el micro no se daria cuenta de esto por eso hago huecos cada 2 cm para medir distancias mas cortas

respecto a lo de ir solo hacia adelantes pues es que, asi me lo exigieron en la Universidad xD que cuente una Distancia A-B y si se desplaza una ditancia B-C se debe restar a la distancia A-B

Ejm: si avanzo 100 y me devuelvo 10 debe mostar 90 (si me devuelvo mas de 100 los display me deben mostar 0 )

"Aunque estoy leyendo mas sobre rebotes e interrupciones que creo me han dado una medio idea de como usar un pin para hacer 2 cosas"



vodka

Lo que necesistas es un encoder en cuadratura ,que parte  de la misma idea que tienes pero agregando una segunda fila de huecos desplazados 90º.

Lo malo,de la solucion es que gastaras 3 pines mas :para la señal A ,señal B y el de la interrupcion que lo puedes hacer con una or-exclusivas a partir de las señales A y B.


topperharley

podrías economizar pines del micro enviando la salida en BCD y agregando un deco BCD-7segmentos, y luego usar los pines así:
4 para salida bcd
3 para direccionamiento de display
2 para los pulsadores solicitados
2 para conectar DOS sensores, cerca uno del otro como para que se descubra uno y luego inmediatamente el otro, y detectar los mismos orificios pero con una lógica que, según cual sensor se descubre primero, determine hacia donde gira el disco, incrementando ó decrementando luego el contador.