Autor Tema: utilizar un encoder rotatorio con un pic  (Leído 3799 veces)

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

Desconectado zeus_00

  • PIC10
  • *
  • Mensajes: 3
utilizar un encoder rotatorio con un pic
« en: 26 de Noviembre de 2004, 04:46:00 »
hola a todos !!

alguien experimento conectar un encoder rotatorio a in pic, yo encontre un articulo pero esta en aleman

http://www.sprut.de/electronic/pic/programm/rotary/rotary.html

si alguien puede explicarme mas o menos como funciona el codigo del programa se lo agradeceria.

un saludo a todos !!!


Desconectado dumvo

  • PIC10
  • *
  • Mensajes: 29
RE: utilizar un encoder rotatorio con un pic
« Respuesta #1 en: 26 de Noviembre de 2004, 13:14:00 »

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: utilizar un encoder rotatorio con un pic
« Respuesta #2 en: 26 de Noviembre de 2004, 13:15:00 »
Jamas vi un artilugio parecido...

Yo de usar, usaria un CNY70, y un disco con bandas blancas y negras. Asi, el CNY70 dara un 1 cuando haya banda blanca, y un 0 cuando haya banda negra. Si acoplamos el sensor a la entrada del TMR0, y lo configuramos correctamente, para que se incremente por pulsos, provocaremos una interrupcion por overflow cada X pulsos... de ahi sacarias la distancia.

salu2

Desconectado MarquesSalsero

  • PIC18
  • ****
  • Mensajes: 467
RE: utilizar un encoder rotatorio con un pic
« Respuesta #3 en: 27 de Noviembre de 2004, 03:45:00 »
Escrito originalmente por manex_1987
Jamas vi un artilugio parecido...





Hombre, lo que tiene ese encoder es basicamente lo que tu dices, pero en cualquier equipo comercial lo que te vas a encontrar es un encoder de ese tipo. Ahora mismo y sin pensar mas te dire que a mi alrededor tengo, dos en los radio/CD de los dos cochas, otro en el radio/CD del coche de mi chica, otro en el amplificador del sistema de cine en casa. otro en la radio de la mesilla ( una philips ) otro en la radio que tengo en la oficina, uno en el grabador de dvd/HD del equipo de sonido, ah! en el coche los ajustes del climatizador tambien lleva un encoder rotatorio.

Asi que si te fijas, no los has visto, pero seguro que has tocado unos cuantos
Hay 10 tipos de personas las que entienden binario y las que no

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: utilizar un encoder rotatorio con un pic
« Respuesta #4 en: 27 de Noviembre de 2004, 05:34:00 »
Jeje, por no hablar del ratón que estás usando en este momento, ¿o es que ya lo cambiaste por uno óptico?

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: utilizar un encoder rotatorio con un pic
« Respuesta #5 en: 27 de Noviembre de 2004, 05:37:00 »
LlorandoLlorando Y cual es la resolucion que dan estos trastos? Porque me empiezan a interesar... seria mas pulcro que un disco con bandas, y un CNY70...

salu2

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: utilizar un encoder rotatorio con un pic
« Respuesta #6 en: 27 de Noviembre de 2004, 05:44:00 »
Y digo yo,se puede samplear algun encoder de esos?

Desconectado zeus_00

  • PIC10
  • *
  • Mensajes: 3
RE: utilizar un encoder rotatorio con un pic
« Respuesta #7 en: 27 de Noviembre de 2004, 08:50:00 »
lo que estoy usando es un encoder comercial que tiene 3 salidas  a b y z

lo que yo nesecitaria es un comentario del codigo que  de la paginal que puse anteriormente, ya que no tengo duda sobre el conexionado, o alguna idea de como hacer algun codigo para diferenciar los pasos del encoder.

un salu2 a todos !!!

Desconectado Tec_Claudio_Perez

  • PIC12
  • **
  • Mensajes: 62
RE: utilizar un encoder rotatorio con un pic
« Respuesta #8 en: 27 de Noviembre de 2004, 23:08:00 »
Hola,
Para usar un encoder comercial (a, b, indice) para determinar posicion, se utiliza la siguiente logica:
A uno de los canales lo designas como reloj, el otro seria dato. Por ejemplo el
A puede ser Reloj y el B puede ser Dato. De esta forma se lee la linea Reloj y al detectar un cambio (flanco ascendente o descendente) se lee la linea de Datos y se incrementa o decrementa, segun la secuencia, un contador.

si ((A=1) y (B=1)) o ((A=0) y (B=0)), entonces  //Giro hacia la derecha.
  incrementar contador
fin_si
si ((A=1) y (B=0)) o ((A=0) y (B=1)), entonces  //Giro hacia la izquierda.
  decrementar contador
fin_si

Este contador contendra la posicion del eje. Para tener la posicion en grados se convierte segun la cantidad de pulsos por revolucion del encoder.

Para detectar el cambio en la señal de reloj, se puede hacer polling, guardando el estado anterior y el estado actual del pin. Otra forma es utilizar las interrupciones por cambio de estado en RB7:RB4. Otra forma es utilizar la interrupcion RB0/INT, cada vez que se recibe un flanco, se configura para interrupcion en el flanco inverso (si se recibe flanco descendente, se reconfigura para interrupcion en flanco ascendente, al llegar el flanco ascendente, se reconfigura para interrupcion en flanco descendente, y asi sucesivamente), otra forma, si el micro lo soporta, es utilizar un modulo CCP configurado en modo captura, utilizando un criterio similar al anterior, reconfigurando el flanco.

Para mayores detalles fijate esta nota de aplicacion de microchip:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011010

y esta otra:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011782

Si en cambio quieres usar el encoder para medir las RPMs de un motor, por ejemplo, se utiliza un timer para determinar el tiempo entre dos flancos sucesivos, en este caso solo se usa un canal.

Espero te sirva.
Saludos.

Tec. Claudio J. Perez
Ciberar-Sistemas & Desarrollos
Jujuy-Argentina

Desconectado zeus_00

  • PIC10
  • *
  • Mensajes: 3
RE: utilizar un encoder rotatorio con un pic
« Respuesta #9 en: 28 de Noviembre de 2004, 08:41:00 »
Gracias Tec_Claudio_Perez, muy interesante tu post .

un salud2 !!!


 

anything