TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: dumvo en 22 de Junio de 2004, 14:20:00

Título: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 22 de Junio de 2004, 14:20:00
hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84.es para contar y descontar el desplazamiento de dos ejes y representarlos en un display
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 23 de Junio de 2004, 15:29:00
He visto en el foro como conectar los encoders al pic agradezco vuestra colaboración.
El echo de haber colocado mi duda fue porque el buscador no esta activo y no encontraba nada por las otras secciones.
De nuevo gracias .
Un saludo dumvo
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 23 de Junio de 2004, 21:47:00
Yo tengo el mismo problema...
Alguien podría poner el link en donde está ese topic?
Gracias.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 25 de Junio de 2004, 14:15:00
esto te puede servir
http://miarroba.com/foros/ver.php?temaid=101826&foroid=15353
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 27 de Junio de 2004, 18:48:00
Gracias Dumvo.

No entiendo muy bien para que sirve ése circuito... o sea, veo que usan un motor paso a paso pero no veo donde está la parte del encoder. A mí sólo me interesaría un circuito que use los emisores, receptores y rueda dentada de un mouse común para indicarle al pic los pasos de rotación de un eje. Y no he encontrado ningún circuito que haga esto de forma sencilla.
Si alguien encuentra algo que avise.

Gracias.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 28 de Junio de 2004, 13:37:00
En ese circuito cambia el encoders del ratón por un motor paso a paso que produce la misma señal .
Estoi viendo el código para adaptarlo . solo que yo quiero usar los dos encoders.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 28 de Junio de 2004, 18:42:00
Acá encontré algo que tal vez sirva....
http://www.boondog.com//tutorials/mouse/mouseHack.htm
Lo tengo que mirar bien pero creo que puede servir, así que sigo investigando.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 28 de Junio de 2004, 18:47:00
El esquema está hecho sobre un mouse que tiene pares de emisores-receptores. Yo no conozco muchos mouses con ese tipo de diseño. Los más conocidos son los que tienen un emisor y un receptor doble que tiene tres patas.
Habría que ver como reformarlo para que funcione con ese tipo de receptor doble. Encima no tengo idea de cómo buscar un datasheet de eso porque no tienen niongún número y no sé si serán todos iguales en los diferentes modelos de mouse (supongo que sí,,,)
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 29 de Junio de 2004, 12:31:00
mi ingles no es bueno , vamos que ni papa de ingles , pero entiendo que utiliza otro micro para convertir la señal del ratón para pasarla al micro.no tiene asm para ver como lo hace.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 01 de Julio de 2004, 18:08:00
Dunvo... no entiendo a que te referís con lo del inglés. Otro micro? Que estás mirando? O te faltó poner un link?
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 01 de Julio de 2004, 18:10:00
O te referías a éste link?

Escrito originalmente por dumvo
esto te puede servir
http://miarroba.com/foros/ver.php?temaid=101826&foroid=15353[/cita]
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 02 de Julio de 2004, 13:45:00
hola colores2 , lo del ingles es porque el link que as puesto es una pagina escrita en ingles y yo de ingles pues no tengo ni idea , algunas palabras sueltas y poco mas. y sobre lo del otro micro si te fijas utiliza un 7414 entre el encoders y el pic y no pone nada de como se programa para que cuente y descuente.

Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 03 de Julio de 2004, 17:57:00
No, te estás complicando mucho...
El 7414 no es un micro... es una puerta lógica común y corriente. O sea, creo que es una inversora. El datasheet está en http://www.fairchildsemi.com/ds/DM/DM74ALS14.pdf y por lo que se vé, recibe una entrada en un pin y lo niega en otro.
O sea, cuando hay tension en la pata 13 (1 lógico) no hay en la 12, y cuando la 13 está muerta (valor de tensión bajo o un 0 lógico) en la 12 hay tensión, o sea 5v (1).
Facil no? Eso es todo lo que hace el 7414. Para que lo ponen entonces?
Yo no entiendo mucho, pero debe ser por lo siguiente:
Cuando en detector recibe iluminación del emisor, este deja pasar corriente a masa y el 7414 no recibe tensión... esta se fué a masa.
Cuando se gira la rueda, esta tapa al emisor y el receptor deja de recibir luz. Entonces el receptor deja de pasar corriente y esta va a la pata 13 o 11 (según corresponda).
Esto entrega una forma de onda tipo seno (redondeada) a medida que se gira la rueda dentada.
El 7414 lo que hace es transformar esa onda "redondeada" en una cuadrada.
O sea. A la salida del 7414 vas a tenes combinaciones como esta:
1:1
0:1
0:0
1:0 a medida que gira. Esto es en las salidas CHa y CHb.
Según las combinaciones de ceros y unos es el giro.
Estas dos salidas se conectan a las entradas de un PIC.

Salu2.

PD: todavía queda pendiente el problema de conectarlo con receptores de tres patas.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 04 de Julio de 2004, 03:18:00
la conexión del  de tres patas es igual al de dos , el de dos se une una pata en común de los dos receptores y las otras dos  patas son el canal  A y el canal B .
yo creía que los encoders de ratón daban una señal cuadrada y desfasada 90 grados con la cual se podía determinar el sentido de giro del eje del encoders.por eso no entiendo muy bien para que utiliza el 7414.

Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 04 de Julio de 2004, 22:39:00
Claro... es así !!! Lo que sucede es que a medida que la rueda le va tapando la luz, va cayendo la tensión gradualmente. Creo que por eso le ponen el integrado. Es para que "cuadradize" la onda del receptor que es más "gradual" o redondeada. Nada más.
Con respecto a lo del desfasaje a 90 grados y todo eso... es totalmente correcto y acá funcionaría igual.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 04 de Julio de 2004, 22:43:00
Ojo... el integrado es para eso nomás. Vos con el pic tenés que sensar el estado de A y B. En base a eso vas a tener que calcular el giro teniendo en cuenta el desfasaje de 90 grados.
O sea que vas a tener que "leer" el estado de A y B y compararlo con el estado enterior que tenían antes.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 17 de Julio de 2004, 08:50:00
Bueno aquí estoi de nuevo.
He estado mirando el código del enlace que te puse anteriormente y creo que cambiando el motor P.A.P. por el encoder del ratón en teoría debería funcionar.(NO entiendo todo el código , me pierdo en algunas instrucciones ).
Ahora lo que quiero es añadirle un segundo encoder y la lectura sacarla por un lcd de 2X16.
sipuedes echa un vistaso a este enlace


http://panda.cs.ndsu.nodak.edu/%7Eachapwes/PICmicro/code/Projects/mouse/ps2mouse.html
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 01 de Agosto de 2004, 03:44:00
Hola de nuevo .
Bueno he empezado ha escribir (copiar) el código para realizar el proyecto que tengo entre manos.
La parte del lcd  para la muestra de datos mas o menos la tengo clara , pues tengo un montón de ejemplos y los entiendo bastante bien.
Ahora con la parte del encoder no puedo , entiendo mas o menos las instrucciones que se utilizan , pero lo que no entiendo es lo que hay que hacer para saber en que sentido giran y cuando están detenidos .
Tengo varios ejemplos pero nada no lo entiendo , alguien podría echarme una mano para entender esto?
Un saludo dumvo.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Nocturno en 01 de Agosto de 2004, 06:54:00
A ver Dumvo, nunca lo he hecho, pero creo que la teoría es la siguiente:

En cada ruedecilla tendrás dos sensores, desplazados el uno del otro justo medio paso. De esta manera, cuando la ventanilla pasa por delante del primer sensor, este ya sensa un 1 mientras que el otro todavía está a 0. De la misma forma, cuando se termina la ventanilla, el primer sensor sensará un 0 antes que el otro.

Por tanto, si eres capaz de identificar las tramas que te pongo a continuación, serás capaz de identificar el sentido del giro:

Codigo:
Giro en un sentido

A B
0 0
0 0
1 0
1 1
0 1
0 0
0 0

Giro en sentido contrario

A B
0 0
0 0
0 1
1 1
1 0
0 0
0 0


donde A y B son las señales que aparecen en cada uno de los sensores.

¿Cómo lo ves?
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 02 de Agosto de 2004, 13:37:00
 Por nocturno66                  
    ¿por que si solo estan desplazados medio paso  el cero lo repites tres veces en cada secuencia y los unos solo los repites dos veces ?
en teoria seria
Codigo:
--------------------------------------------------------------------------------Giro en un sentido

A B
0 0
1 0
1 1
0 1
0 0
1 0
Giro en sentido contrario

A B
0 0
0 1
1 1
1 0
0 0
0 1
--------------------------------------------------------------------------------


   no?
pero mi pregunta era otra:
por ejenplo yo leo el puerto donde conecto los encoders y obtengo   canal A-0   canal B-0
que tengo que hacer para saber si gira hacia un lado , hacia otro  o esta detenido?
Espero vuestra ayuda .
Por Colores2 ,     4,53v/2=2,26 - 0,47 de la resistencia 1,99v valor acectable para los leds
un saludo dumvo              
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Nocturno en 02 de Agosto de 2004, 15:56:00
Disculpa si te he liado, pero quería ignorar los ceros ya que lo valioso en el ejemplo que te he pasado son únicamente los unos. Efectivamente es como tú dices.

Por otra parte, si lo que detectas en un 0 en cada sensor, no tienes forma de saber hacia donde gira, es más, puede ser que no gire. Necesitas una secuencia como mínimo de tres 1 / 0 para determinar el sentido del movimiento.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 03 de Agosto de 2004, 21:24:00
Tendrías que tener 2 variables por cada salida. O sea: A1, A2, B1, B2.
Entonces sería así (pseudocodigo):

Repetir
    Leer A y copiar en A1
    Leer B y copiar en B1
   
    Comparar A1 y B1 con A2 y B2 (determinar el sentido de giro)

    Copiar A1 en A2    (copia los valores a X2 para la próxima)
    Copiar B1 en B2

Fin repetir.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 03 de Agosto de 2004, 23:31:00
Lo del voltaje de los leds ya tenía en cuenta la caída de tensión de la resistencia. Eran 5v de entrada menos 0,47.

4,53v/2=2,26

Me parece que esos leds andan con bastante menos tensión. Creo que se pueden quemar así...
Digo, por la diferencia de tension entre las patas (como dije anteriormente) parecería que llevaran menos. No sé si es un método válido para saber que votaje llevan...
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 07 de Agosto de 2004, 10:06:00
SECUENCIA
A   B
0   0
0   1
1   1
1   0
0   0
0   1
1   1
1   0
0   0

Veamos a ver si me aclaro.

Ejemplo:                                                              
Inicio  A1 a 0 , A2 a 0 , B1 a 0 , B2 a 0        


Giro en un sentido   /                                                 giro en sentido contrario      

 
Leo canal A me da 0   /                                              Leo canal A me da 0
Coloco A en A1   /                                                     Coloco A en A1
Leo canal B me da 0   /                                              Leo canal B me da 0
Coloco  B en B1   /                                                    Coloco  B en B1
Comparo A1 con A2 me da 0      /                              Comparo A1 con A2 me da 0
Comparo B1 con B2 me da 0     /                                Comparo B1 con B2 me da 0
Copio A1 en A2 me da A2 como 0   /                         Copio A1 en A2 me da A2 como 0
Copio B1 en B2 me da B2 como 0    /                         Copio B1 en B2 me da B2 como 0
Leo canal A me da 0     /                                              Leo canal A me da 1
Coloco canal A en A1    /                                              Coloco canal A en A1
Leo canal B me da 1      /                                              Leo canal B me da 0
Coloco canal B en B1      /                                            Coloco canal B en B1
Comparo A1 con A2 me da 0       /                              Comparo A1 con A2 me da 1
Comparo B1 con B2 me da 1        /                             Comparo B1 con B2 me da 0
Leo canal A me da 1            /                                                Leo canal A me da 1
Coloco A en A1             /                                                      Coloco A en A1
Leo canal B me da 1        /                                                    Leo canal B me da 1
Coloco B en B1      /                                                             Coloco B en B1
Comparo A1 con A2 me da 1   /                                          Comparo A1 con A2 me da 1
Comparo B1 con  B2 me da 1  /                                   Comparo B1 con  B2 me da 1

Pero nada sigo sin entender como se si gira hacia un lado o hacia otro , será que soy duro de cabeza
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Nocturno en 07 de Agosto de 2004, 11:52:00
A ver, podría ser así:

Codigo:
Leer sensores hasta que alguno cambie (variables A y B)

ComienzoBucle:
Pasar sensores a histórico (A1=A y B1=B)
Leer sensores hasta que alguno cambie (variables A y B)
¿Es A=1 y B=0? " Opción 1
     Sí -> puede ser comienzo de A o final de B
           Leer sensores hasta que alguno cambie (variables A y B)
           ¿Es A=0?
                  Sí -> era final de B, por lo tanto sentido derecha
                          goto ComienzoBucle
                  No -> era comienzo de A, por lo tanto sentido izquierda
                          goto ComienzoBucle
     No -> continuamos por la línea siguiente

¿Es A=0 y B=1? " Opción 2
     Sí -> puede ser comienzo de B o final de A
           Leer sensores hasta que alguno cambie (variables A y B)
           ¿Es B=0?
                  Sí -> era final de A, por lo tanto sentido izquierda
                          goto ComienzoBucle
                  No -> era comienzo de B, por lo tanto sentido derecha
                          goto ComienzoBucle
     No -> continuamos por la línea siguiente

¿Es A=1 y B=1? " Opción 3
     Sí -> no nos dice nada todavía, en el siguiente paso sabremos el sentido
           Leer sensores hasta que alguno cambie (variables A y B)
           ¿Es A=0?
                  Sí -> ha finalizado A, por lo tanto sentido izquierda
                          goto ComienzoBucle
                  No -> ha finalizado B, por lo tanto sentido derecha
                          goto ComienzoBucle
     No -> " Sólo queda la opción 4, o sea A=0 y B=0.
           " No nos dice nada todavía, en el siguiente paso sabremos el sentido
           Leer sensores hasta que alguno cambie (variables A y B)
           ¿Es A=1?
                  Sí -> ha comenzado A, por lo tanto sentido izquierda
                          goto ComienzoBucle
                  No -> ha comenzado B, por lo tanto sentido derecha
                          goto ComienzoBucle


Bueno, los programas nunca funcionan a la primera, por lo que tendrás que probarlo y ya me contarás, pero creo al menos servirá para que entiendas su funcionamiento.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 07 de Agosto de 2004, 11:53:00
Ponele el nombre que quieras a A1, A2....
Para hacerlo más facil:
Para saber si hubo algún cambio (si giró o no) vos tenés que saber el estado en que está actualmente y el estado que tenía antes (la última vez que lo revisaste) para comparar.
Entones cuando empieza el programa lees el estado de A y B. Ese va a ser el estado actual y anterior...
Después entra en el bucle para revisar periódicamente. Si el estado actual de A y B son iguales a los del tiempo anterior, entonces no hace nada.
Si son distintos (cualquiera de los 2) a lo que había antes, entonces AHÍ comparas los estados anteriores con los actuales, pero esta vez para ver en que parte de la secuencia está y adonde vá.
O sea:

Si el estado anterior de A y B era  1-0
Y el estado actual es                     1-1  ->> Entoces gira a la derecha!

En ese caso el estado anterior era 1-0, pero para la próxima vez el estado anterior va a tener que ser 1-1 (que es el estado actual) para volver a comparar en caso de que cambie la próxima vez.

Espero haber sido un poco más claro.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 08 de Agosto de 2004, 03:54:00
A ver, podría ser así:


Codigo:
---------------------------------------------------------------------------


;ch1a=RA0
;ch1b=RA1
;ch2a=RA2
;ch2b=RA3
;incremento1=suma uno para mostrar en lcd en eje x
;decremento1=resta uno para mostrar en lcd en eje x
;incremento2=suma uno para mostrar en lcd en eje y
;decremento2=resta uno para mostrar en lcd en eje y
;-----------------------------
;      encoders
;-----------------------------

lectura   
   movf   porta,w         
   movwf   ESTADOA                
; CANAL 1   
   btfss   ESTADOA,ch1a            
   goto   Ch2                    
   btfss   ESTADOA,ch1b          
   goto   Ch1b0                  
Ch1b1
   btfsc   TEMPA,ch1b
   goto   Ch2                  
   call   incremento1         
   goto    Ch2
Ch1b0
   btfss   TEMPA,ch1b
   goto   Ch2                  
   call   decremento1            
;  CANAL 2
Ch2
   btfss   ESTADOA,ch2a
   goto   TEMPORAL
   btfss   ESTADOA,ch2b
   goto   Ch2b0
Ch2b1
   btfsc   TEMPA,ch2b
   goto   TEMPORAL                  
   call   incremento2         
   goto    TEMPORAL
Ch2b0
   btfss   TEMPA,ch2b
   goto   TEMPORAL                  
   call   decremento2            
TEMPORAL
   movf   ESTADOA,w
   movwf   TEMPA
   goto   lectura



-------------------------------------------------------------------------------------

seria asin mas o menos
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Nocturno en 08 de Agosto de 2004, 04:21:00
Lo siento con el ASM me quedo pASMado.

¿Lo has probado?
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 08 de Agosto de 2004, 06:13:00
Hola nocturno66 no lo he probado porque no se como probarlo.
Además el código no esta completo me falta aun la comunicación con el lcd y la forma de contar , descontar.
Lo primero que quería saber si esta es la forma de contar , descontar con los encoders y si es correcto seguir con el proyecto , pues no quiero comenzar con un planteamiento equivocado.
Yo de lenguajes de programación ni idea , el asm un poco que e leído en algunos manuales , pero tengo la impresión que el asm es mas fácil que otros lenguajes para empezar.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Nocturno en 08 de Agosto de 2004, 07:47:00
Sobre lenguajes podríamos discutir horas y horas y no ponernos de acuerdo pero, aunque estoy de acuerdo en que es mejor conocer algo de assembler, estoy convencido que te será mucho más fácil aprender a programar micros con Basic, o incluso con C.

Por otra parte, para probar tu programa quizás deberías meterlo en un simulador (hay muchos por ahí, donde puedes tocar a mano las entradas que llegan al programa y comprobar las salidas que ofrece. De esta manera podrás depurarlo y avanzarlo hasta terminarlo.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Carlete71 en 08 de Agosto de 2004, 08:08:00

De los simuladores, aunque hay una sección completa para ello en el foro yo te recomiendo el Proteus, MPSIM y PIC simulator IDE. Yo uso los tres generalmente. Sobre el lenguaje yo soy de los antiguos que les gusta el asembler porque es el que optimiza más la memoria de programa, pero es cuestion de gustos

Saludos,
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 08 de Agosto de 2004, 08:34:00
Perdonad pero mi intención no es debatir sobre que lenguaje es el mejor o el mas fácil . Lo que yo quería decir es que para mi es mas fácil asm que otros lenguajes de programación pues tengo varios tutoriales de c y Basic y no avanzo en absoluto , pero con asm le e cogido el aire a la primera sin decir en absoluto que sea un maquina con el , mas bien un principiante de bajo nivel.
bueno intentare simularlo .
gracias por vuestros consejos , y si alguien puede seguir el código asm y decirme si es correcto o incorrecto pues también se lo agradecería
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 16 de Agosto de 2004, 11:43:00
Bueno e revisado el código y creo que no esta correcto.
Alguien me podría echar una mano.
Ya no doy mas de mi , por mas que intento hacer la lectura de los dos encoders no encuentro la solución
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: I3iT en 19 de Agosto de 2004, 06:35:00
Holas.

En vez de conectar los dos encoders al PIC, como idea, ¿por que no haces que el propio IC del raton haga el tratamiento de estos? en definitiva es para lo que esta diseñado un raton... tu solo tienes que utilizar el protocolo PS2 que usa el raton para comunicarte con el desde el micro. Solo te "come" dos patillas y ademas te da el estado de los botones del raton

Yo tengo algo hecho en asm y sigo desarrollando. Te dejo un link muy bueno:

http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/mouse/mouse.html

>Salu2<
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: YF-21 en 29 de Agosto de 2004, 10:28:00
Ya que yo tambien estoy interesado en conectar los encoders de un mouse para mis "experimentos" les mando un link, ya que tengo la duda de como conectarlos ... ta en ingles pero ni modo

http://www.amsky.com/atm/accessories/mouse/mouse.html  
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 04 de Septiembre de 2004, 01:15:00
 por YF-21 :
bueno este link que pones es para conecta un raton a un telescopio astronomico para que refleje el movimiento del raton(que serian los ejes del telescopio ) a un programa que seria una carta del cielo y asin saber donde apunta el telescopio en el cielo.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: YF-21 en 05 de Septiembre de 2004, 09:19:00
Oye dumvo tu ya lograste conectar los encoders del mouse ?
En la placa del mouse que conecté aparecen tres pares de emisor-receptor, creo que el emisor es el que tiene 2 patas y el receptor tiene 3 patas pero la duda que tengo es acerca de los voltajes y de cómo logra el integrado de 3 patas saber el sentido de rotacion ...
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 06 de Septiembre de 2004, 15:05:00
por YF-21 : bueno aun no los he conectado ,pero creo que con 1,5 v deverian de funcionar.bueno el emisor es un diodo led de 2 patas y el receptor es el de 3 patas(aunque algunos ratones tienen dos emisores de 2 patas y dos receptores de 2 patas por cada ruedecita).Con lo de como el receptor sabe la direccion en la que gira la ruedecita , en realidad no lo sabe , quien lo sabe es el micro en el que lo conectas . si le echas un vistaso al tema desde el principio veras como se reconoce la direccion en la que gira la ruedecita.lo dificil es crear el programa para meterlo en el micro , yo estoi un poco atrancado en esto.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 12 de Septiembre de 2004, 10:36:00
hola Jimmy_pop gracias por contestar.
bueno mi problema es que no se ingles y los traductores dejan mucho que desear , casi toda por no decir toda la literatura de encoders esta en ingles , si fueses tan amable de poner el codigoque tu programaste pues me seria de mucha utilidad.
ya si fueses tan amable podrias explicar lo de la maquina de estados y la tabla  lookup .
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Jimmy_pop en 13 de Septiembre de 2004, 14:41:00
Igual ya se ha dicho en la serie de replys q no son pocos, la idea es conectar el led emisor con una resistencia para ajustar una intensidad q sea buena, luego creo q hay dos fototransistores donde la luz q llega actua como base y modula la intensidad q pasa a traves de ellos de modo q cuando pasa luz el transistor conduce y leemos una tension proxima a tierra pq se satura y cuando se obstruye se queda en corte y leemos algo proximo al nivel alto de tension. Entonces se cogen las 2 señales de salida una para cada encoder y se conectan al microcontrolador en dos entradas digitales (o se usa un buffer si se quiere ser muy puritano) y entonces se programa q se vaya comprovando de modo ciclico la lectura de las dos señales o si el micro dispone de interrupciones generadas por un cambio de señal de entrada se hace cuando eso ocurra.  Y se hace lo siguiente.. a ver...

una variable le digo E contiene el estado de la maqina de estados, esto almacena en cual de los bloques del grafo nos encontramos, en mi implementacion uso solo 4 estados de modo q son suficientes 2 bits para almacenarlo entonces...

los dos fototransistores estan situados uno al lado del otro de modo q cuando gira la ruedecilla uno se oscurece antes q el otro y todo eso... pongamos q cuando unos esta descubierto vale 0 y cuando algo obstruye la luz da 1... entonces la cosa va así....

la tabla de verdad que se implementa... realiza la funcion logica de la maqina de estados.. como entrada coge 2 bits q representan la lectura de los 2 encoders... y luego 2 bits q representan el estado actual. La salida es... 2 bits para el estado actualizado y yo hago por ejemplo como tengo hasta 8 bits para sacar... hago q un bit indique que hay q sumar al contador y otro bit q diga q hay q descontar al contador. Los casos principales son los siguientes

entrada 1 | entrada 2 | estado 1 | estado 0 |     salida: final1 final0 subir | bajar

0 0 0 0  ---> 0 0 | 0  0
0 1 0 0  ---> 0 1 | 1  0
1 0 0 0  ---> 1 0 | 0  1
1 1 0 0  ----> lectura ilegal algun fallo hay... mi opcion es poner el estado en 1 1 y hacer como si no pasara nada (se puede cambiar y poner codigos de error y tonterias, habrá varias combinaciones "ilegales" así  1 1 | 0 0
0 0 0 1 ---> 0 0 | 0 1
0 1 0 1 ---> 0 1 | 0 0
1 0 0 1 ---> ilegal 1 0 | 0 0
1 1 0 1 ---> 1 1 | 1 0

0 0 1 0 ---> 0 0 | 1 0
0 1 1 0 ---> ilegal 1 0 | 0 0
1 0 1 0 ---> 1 0 | 0 0
11 1 0 ---> 1 1 | 0 1

se entiende la dinamica? la idea es ir saltando de un estado a otro en una direccion u otra en un grafo circular de 4 estados y si se gira en una direccion se incrementa el contador y si se gira en la otra se decrementa

0 0 1 1 --> ilegal 0 0 | 0 0
0 1  1 1 ---> 0 1 | 0 1
1 0 1 1 ----> 1 0 | 1 0
1 1 1 1 ---> 1 1 | 0 0

la manera de implementar esto es pillar la variable de estado.. y hacerle un or con las lecturas bitshiftadas para formar un byte con los 4 primeros bits q indiquen la entrada a la tabla ... pasarlo a una tabla implementada para el microcontrolador (hay varios ejemplos en applicatiion notes y en el manual del pic)... y luego hacer q devuelva un byte con la salida q se trata para actualizar el estado y subir o bajar le contador....

he sido caotico pero es algo relativamente simple papel y lapiz y se entiende enseguida

la lectura 0 0 corresponde a _ _
la lectura 0 1 corresponde a _ @
la lectura 1 1 corresponde a  @@
la lectura 1 0 corresponde a @_  

lo digo para ilustrar lo de tapar o no el paso de la luz.

ale espero q te sirva
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 26 de Septiembre de 2004, 12:05:00
Bueno he encontrado esta pagina donde utilizan dos encoders para saber la posición de dos ejes de un telescopio me he bajado el asm por que tiene una buena resolución , para poder intentar adaptar el código a mi proyecto , pero mi ingles es nulo y no entiendo ni papa , si alguien que entienda ingles le pudiese echar un vistazo esta es la pagina http://www.atmsite.org/contrib/Ek/dsc/
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 26 de Septiembre de 2004, 16:09:00
Dunvo: el circuito que ves en ése enlace funciona con encoders comerciales, o sea que no utilizan encoders de mouses en desuso sinó que ya vienen construídos. Era una opción válida para mí hasta que ví los precios. Cada uno cuesta 49 dólares... se me fueron las ganas. De ahí que sigo insistiendo con los ratones... je je!
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 27 de Septiembre de 2004, 14:01:00
hola Colores2 si se pueden utilizar encoders de raton pero la resolucin es mas baja
http://home.earthlink.net/~david.ek/digicircles/faq.html#4
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 27 de Septiembre de 2004, 20:08:00
Ups! No dije nada....
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: YF-21 en 28 de Septiembre de 2004, 15:57:00
Lo de la maquina de estados me queda un poco confuso pero creo que se trata de ... primero ubicar en el estado en que se encuentran los receptores (cuatro posibles estados 0-0 0-1 1-0    1-1) y despues de alli revisar los estados y ver el sentido del giro en base a las combinaciones para el giro cierto ??
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: dumvo en 30 de Septiembre de 2004, 13:47:00
por YF-21 lo de la maquina de estados y lo de la tabla no me queda claro pero con la explicacion de Jimmy_pop y varios ejemplos que tengo estoi intentandon comprenderlo.
por Colores2 entiendes ingles ? podrias traducir los comentarios del asm del enlace que di y ver como  hacen para contar con los encoders y comentarlo aqui si no te es imposible .
yo por mi cuenta con un diccionario y un poco de imaginacion lo estoi intentando por que la traduccion literal parece que no funciona.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 01 de Octubre de 2004, 11:28:00
Ok dunvo... no sabía si necesitabas la traducción de toda la página, del ASM, de los comentarios... en fin.
Esta noche me pongo a traducirla y te paso el ASM ya traducido (al menos lo voy a intentar).
No creo que lo pueda publicar en el foro porque se pierden las tabulaciones y leerlo se torna complicado.
Si alguien sabe como subir un archivo para que quede posteado acá (en este topic) que me lo haga saber, así ganamos tiempo y lo ven todos.

Salu2.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Nocturno en 01 de Octubre de 2004, 11:32:00
Aquí no hay espacio para subir adjuntos, pero tu problema tiene fácil solución, sólo tienes que pegar el código y luego seleccionarlo y darle al botón con el símbolo de la rejilla, sí justo encima del cuadro donde escribes, el ultimo botón del primer bloque.

Verás que aparece la palabra code al principio y al final delimitando un trozo de código que luego saldrá perfectamente tabulado.

Adicionalmente, te recomiendo que desactives el check box de abajo, el que pone Usa caretos porque evitarás que salgan los caretos si en tu código hay alguna parte de texto que coincida con la combinación ganadora.
Título: RE: hola foro nesesito saber si se puede conectar dos encoders de raton a un 16f84
Publicado por: Colores en 02 de Octubre de 2004, 19:03:00
Esto está llevando más tiempo de lo que imaginaba... aviso porque parece que me voy a demorar un poco más. Es bastante largoooo....