Sign in to follow this  
P1KW

Convertir Interruptor Rotatorio en "Rotary Encoder"

Recommended Posts

Lo he probado en una UHID y funciona. Supongo que en una LeoBoard sera igual.

 

Aplicado al mundillo de los paneles caseros un "Rotary Encoder" es un control giratorio, de giro infinito, que en un sentido de giro envia un pulso (boton) y en el contrario otro pulso diferente.

 

¿Porque es interesante un interruptor rotatorio?

Por muchas razones. Una por el nº de posiciones, los encoders de menos de 12 pulsos por vuelta son raros y dificiles de conseguir. Con esta formula es bastante facil simular un interruptor giratorio de 4 posiciones en BS, p/e.

 

Basicamente se trata de enviar un codigo binario a la controladora;

00-01-11-10 (el orden es este, no vale: 00-01-10-11)

 

Cuando hay un cambio de estado ascendente en la secuencia, p/e; de 01 a 11, la controladora envia un pulso del boton A. Si el cambio de estado es descendente, p/e; 11 a 01, la controladora manda un pulso del boton B.

 

Se obtendran mejores resultados con rotatorios de calidad, hay algunos muy baratos que entre conmutacion y conmutacion desconectan el circuito y se enviaria un 00.

Gracias a la aclaracion de Jack_Aubrey, no es cuestion de caro o barato, si no de que en la especificacion de estilo de contacto, este sea del tipo "SHORTING".

 

Para que la controladora funcione con un "encoder" hay que configurarla, y "secuestrar" un par de botones para el encoder.

 

En la placa de Leo es mediante una utilidad disponible en su web.

 

bu0836_encoders.jpg

 

Con la UHID es mediante su soft de programacion:

 

uhid23.jpg

 

Aqui os dejo el esquema. Esta coloreado para distinguir entre rotatorios de 4, 8, y 12 posiciones. El montaje es muy sencillo, basta añadir 4 diodos entre el interruptor y la controladora.

 

uhid22.jpg

 

Saludos.

Edited by Bolas

Share this post


Link to post
Share on other sites

Joder Bolas como controlas. Muy buena la idea.

 

Si seguimos mejorando nuestras cabinas cuando nuestras ATC nos las lancen por la ventana van a poder volar solitas :icon_mrgreen:.

 

 

Bolas, ¿cómo ves la posibilidad de enchufar varios encoders a una misma pareja de botones?

 

Me explico:

 

Imagina que utilizamos encoders con push button, entonces en ese push button configuramos un shift commander distinto (en el DCS se puede poner un montón) para cada encoder, pero todos los encoder con la misma pareja asignada.

 

Solo se activa el encoder cuando el botón está pulsado, dando la orden para el shift y mientras mantenemos pulsado giramos el encoder dándole a entender al simulador una combinación shift+button.

 

Si multiplicamos 4 parejas de botones de encoders más 8 shift-keys tenemos 64 botones distintos para DCS (todos los rotatorios de iluminación, volumen, etc...) sacrificando solo 16 entradas de la Leo Bodnar.

 

¿Ves viable el proceso?

 

Un saludo.

Edited by Trazador

Share this post


Link to post
Share on other sites

Wenas.

 

Controlo zero patatero en estos temas, xD, otra cosa es que ande siempre ratoneando informacion.

 

Hombre, es muy buena idea para duplicar las funciones de un encoder. Pero con 4 parejas de botones serian, 4 encoders, y 4 shift. Y cada "shift-key" se "comeria" un boton.

 

Lo veo muy viable, lo unico que no me cuadran tus cuentas. Yo me lo plantearia mas como un; "El encoder A regula la intensidad del ABRIS, y con el push-shift-key regula la del PVI-800".

 

Si te he entendido bien, lo que te ahorras con cada shift es un encoder fisico, y una entrada de la Leo Bodnar.

 

Encoder A: bttn 1-2, Intensidad de X

Encoder A: bttn 1-2, shift(bttn3), intensidad de Y.

Total: 3 Botones y un encoder.

 

Encoder A: bttn 1-2, Intensidad de X

Encoder B: bttn 3-4, intensidad de Y.

Total: 4 Botones y dos encoder.

 

A no ser que uses las dos manos y tengas mas "shift" para duplicar funciones. Porque mientras giras un encoder mientras pulsas el "push", o usas la otra mano o tendrias que hacer acrobacia digital, de digito, de dedo.

 

Saludos.

Share this post


Link to post
Share on other sites

La idea es la siguiente en una Leo Bodnar:

 

Por ejemplo:

 

 

Modifier (Bttn 32) + Encoder (Bttn 1-2)

Modifier (Bttn 32) + Encoder (Bttn 3-4)

Modifier (Bttn 32) + Encoder (Bttn 5-6)

Modifier (Bttn 32) + Encoder (Bttn 7-8)

 

Modifier (Bttn 31) + Encoder (Bttn 1-2)

Modifier (Bttn 31) + Encoder (Bttn 3-4)

Modifier (Bttn 31) + Encoder (Bttn 5-6)

Modifier (Bttn 31) + Encoder (Bttn 7-8)

 

Modifier (Bttn 30) + Encoder (Bttn 1-2)

Modifier (Bttn 30) + Encoder (Bttn 3-4)

Modifier (Bttn 30) + Encoder (Bttn 5-6)

Modifier (Bttn 30) + Encoder (Bttn 7-8)

 

Modifier (Bttn 29) + Encoder (Bttn 1-2)

Modifier (Bttn 29) + Encoder (Bttn 3-4)

Modifier (Bttn 29) + Encoder (Bttn 5-6)

Modifier (Bttn 29) + Encoder (Bttn 7-8)

 

Modifier (Bttn 28) + Encoder (Bttn 1-2)

Modifier (Bttn 28) + Encoder (Bttn 3-4)

Modifier (Bttn 28) + Encoder (Bttn 5-6)

Modifier (Bttn 28) + Encoder (Bttn 7-8)

 

Modifier (Bttn 27) + Encoder (Bttn 1-2)

Modifier (Bttn 27) + Encoder (Bttn 3-4)

Modifier (Bttn 27) + Encoder (Bttn 5-6)

Modifier (Bttn 27) + Encoder (Bttn 7-8)

 

Modifier (Bttn 26) + Encoder (Bttn 1-2)

Modifier (Bttn 26) + Encoder (Bttn 3-4)

Modifier (Bttn 26) + Encoder (Bttn 5-6)

Modifier (Bttn 26) + Encoder (Bttn 7-8)

 

Modifier (Bttn 25) + Encoder (Bttn 1-2)

Modifier (Bttn 25) + Encoder (Bttn 3-4)

Modifier (Bttn 25) + Encoder (Bttn 5-6)

Modifier (Bttn 25) + Encoder (Bttn 7-8)

 

Me salen 8 botones que hacen de Modifier y 8 botones que hacen de 4 enconders, simulando 32 encoders (64 funciones).

 

El push lo tiene el mismo encoder. Mantienes pulsado el encoder y lo giras (como el volumen de una radio de coche con el push para encenderla).

 

Saludos.

Edited by Trazador

Share this post


Link to post
Share on other sites

Bueno, edito, no he sido capaz de encontrar interruptores rotatorios sin paso por cero (sin desconectar el circuito) al cambiar de conmutacion.

 

Las pruebas las hice con uno de un cacharro canibalizado y dio excelentes resultados, pero todo lo demas que he probado no rula.

 

Si alguien hace la prueba y consigue resultados que lo comente.

 

¿Se podria solucionar poniendo un condensador entre cada pin y masa? De tal forma que "rellene" cada conmutacion.

 

Saludos.

Share this post


Link to post
Share on other sites

Esto lo que buscas es que sea del tipo shorting y al menos en las tiendas online de mouser y de rs-online los tienen.... dixo esto como un solo encoder me cuesta casi como dos interruptores rotativos.... lo voy a tener mas que en cuenta !!!!!

 

¿valen cualquier tipo de diodos?????

 

Por otra parte .... la idea de Trazador es muy buena, ademas de poder usar al menos una vez sin tener que pulsar shift, de esta manera sigues usando los 8 botones para los cuatro encoders y solo tres botones para el shift.

 

PD---> Por si os interesa en opencockpits en la seccion de tutoriales tienen como hacer un interruptor rotativo con boton pulsador e incluso como hacer dos interruptores rotativos concentricos....

Edited by Jack_Aubrey

Share this post


Link to post
Share on other sites

Esto lo que buscas es que sea del tipo shorting y al menos en las tiendas online de mouser y de rs-online los tienen.... dixo esto como un solo encoder me cuesta casi como dos interruptores rotativos.... lo voy a tener mas que en cuenta !!!!!

Eing??? Traduce shorting a que tipo de especificacion se refiere. O pon un enlace, o una hoja de datos. Ya habia tirado la toalla, e iba a pedir encoders de 12 detenciones, por que los de 9 son como imposibles.

 

¿valen cualquier tipo de diodos?????

Yo he utilizado los que pone Leo Bodnar en su web.

 

El tutorial de OC ya lo habia visto, pero el mecanizado escapa a mi tiempo-herramientas-habilidad.

 

Saludos.

Share this post


Link to post
Share on other sites

Esteeeee... haber la cosa esta en que los de Lorkin (los interruptores que estaba viendo) simplemente lo ponen tal cual sin explicarse mas y me he tenido que googlear un rato para enterarme de la diferencia entre shorting y non shorting.

 

Shorting implica que realiza un corto entre las dos posiciones antes de cortar con la posicion anterior .... dicho a lo bruto realiza un cortocircuito entre los dos contactos ("make before break").

Non Shorting implica que antes de hacer contacto con la nueva posicion rompe el contacto con la nueva ("break before make").

 

He tratado de buscar alguna hoja de datos pero todas las que me he visto me dicen que tales modelos funcionan como shorting y tales otros como non shorting; pero supongo que los shorting los contactos se realiza mediante una planchita que toca las dos posiciones mientras cambia y los non shorting el contacto se realiza mediante una bolita y cada posicion esta separada por un escalon de plastico de tal forma que la bolita al saltar de una posicion a otra corta el contacto antes de hacerlo con la nueva posicion.

 

Espero que te haya ayudado en argo :xd:

 

Pd---> el diagrama lo entiendo en parte.... no entiendo porque pones a tierra las posciones 1,5 y 9, así como tampoco entiendo de donde viene la señal de entrada para el "encoder" a menos que sea de un +5v en vez de tierra

Edited by Jack_Aubrey

Share this post


Link to post
Share on other sites

Gracias por la info Jack, investigare a ver si localizo esos que comentas.

 

Sobre el diagrama, es muy sencillo. Una vez has configurado la controladora para que un par de botones se comporten o actuen con un encoder, lo que ocurre es lo siguente:

 

Tienes dos pines+tierra, o dos botones, como prefieras.

 

En la posicion 1 ambos estan desconectados, 0-0.

En la 2ª seria, 0-1, uno desconectado, el otro conectado.

En la 3ª, ambos conectados, 1-1.

Y por ultimo, en la 4ª, seria, 1-0.

 

La 5ª es iniciar el mismo ciclo.

Las posiciones 1, 5, y 9 van a tierra para "enviar" un 0-0

 

Si giras a derechas la secuencia seria: 0-0>>0-1>>1-1>>1-0>>0-0, etc.

 

Cuando la controladora "ve" un cambio de estado desde 0-0>>0-1, ó desde 0-1>>1-1, ó desde 1-1>>1-0, o desde 1-0>>00, envia el boton A. Esto seria girando a derechas, si giras a izquierdas la secuencia se invierte, p/e; 1-0>>1-1, y la controladora manda el boton B.

 

De hay viene el problema con los interruptores rotatorios "non shorting", que insertan un 0-0 en la secuencia, quedando asi, p/e, de la posicion 2 a la 3; 0-1>00>1-1.

 

De hecho, si giras rapidamente el interruptor funciona bien, pero obviamente no es la idea.

 

Un apunte. Si piensas en binario puedes deducir que la secuencia logica (por ascendente) seria: 00-01-10-11, pero no, la correcta es 00-01-11-10.

 

Saludos, espero haberte aclarado, soy profano y me explico fatal.

Edited by Bolas

Share this post


Link to post
Share on other sites

Pues mucha gracias por aclararmelo, ademas como se que solo existen 10 tipos de personas en el mundo, ya se que cada rotatorio es de su padre y de su madre; siguiendo tu modelo el codigo es Gray que suele ser muy comun....

Bueno dixo esto me voy a la piltra que por hoy ya me he calentao el coco lo suficiente.

Share this post


Link to post
Share on other sites

Joer Bolas, pa ser un profano y explicarte tan mal.... hay que ver lo bien que te explicas!! :D

 

Muchas gracias por la info, interesante a más no poder.

 

Saludos!

Share this post


Link to post
Share on other sites

Haber que me estoy calentando el coco..... "la señal viene de un Vcc=+5v, entra al interruptor giratorio y sale hacia los dos botones o a tierra (ya depende de hacia donde quede el interruptor)"...

Share this post


Link to post
Share on other sites

Jack_Aubrey, del rotary van dos señales a dos botones de la controladora y el 3º a tierra.

 

Saludos.

 

edt:

Para no liarte usa solo los 4 primeros pines del interruptor. Obvia los bloques rojo y verde.

 

Los nº1, 5 y 9 van a tierra por clarificar el esquema, pero no hace falta ni conectarlos, (creo, no he probado un tipo "shorting").

 

Olvidate de los 5v. no vayas a liarla.

 

Se trata solo de conectar-desconectar botones DirectX, lo unico es que la controladora, configurada para "encoders", espera que le mandes esas conex-desconex en una determinada secuencia. (00-01-11-10) Los 5v. NO SE USAN.

 

Al interruptor rotatorio, o encoder, le "entran" dos botones y una tierra.

 

¡no toques los 5v!

 

la+he+liao+parda.jpg

 

Los 5v, solo los uso en potenciometros y LEDs.

Edited by Bolas

Share this post


Link to post
Share on other sites

Bien!!!

 

Probado con uno tipo "shorting". El interruptor rotatorio de la imagen se comporta como un "rotary encoder", girando hacia un lado envia un pulso (A) y girando en sentido contrario otro (B).

 

Con una imagen se aprecia perfectamente el cableado, la imagen tiene un error bobo, en realidad A es B, y viceversa, pero es irrelevante.

En la imagen es de 4 posiciones, pero respetando la secuencia comentada en el post, se puede hacer de (n) posiciones.

 

Saludos.

 

encoder2.jpg

Share this post


Link to post
Share on other sites

Bien!!!

 

Probado con uno tipo "shorting". El interruptor rotatorio de la imagen se comporta como un "rotary encoder", girando hacia un lado envia un pulso (A) y girando en sentido contrario otro ( B).

 

Con una imagen se aprecia perfectamente el cableado, la imagen tiene un error bobo, en realidad A es B, y viceversa, pero es irrelevante.

En la imagen es de 4 posiciones, pero respetando la secuencia comentada en el post, se puede hacer de (n) posiciones.

 

Saludos.

 

encoder2.jpg

Hola necesito vuestra ayuda. Tengo un rotary encoder, de pin central y 12 posiciones. Me he bajado la utilidad de la pagina de leo pero no se como conectar los cables. El central creo que va a ground pero los otros 12 no se...alguien puede iluminarme....gracias!!!

Share this post


Link to post
Share on other sites

uhid22.jpg

 

Hola de nuevo. ;)

La placa de Leo o bien tiene treinta y pico pines (x1...x32 + MASA) o bien es una matriz de 6 x 6, (32 botones + 4 HAT)

 

Si es la 1ª, es fácil, coges dos pines consecutivos y aplicas el esquema de arriba.

 

Si es la opción de la matriz:

6x6.png

Tendrías que coger una fila (Row) como masa, y dos pines o columnas (Column) consecutivos, por ejemplo, en el gráfico de arriba "S1" y "S2".

Lo que no te puedo asegurar a ciencia cierta es si "Row" es MASA como te he dicho antes, o bien es "Column", entonces serían "S1" y "S7", por ejemplo.

Aunque creo recordar que es de la 1ª manera.

 

Para complicarte menos hasta que lo entiendas, del primer esquema usa solo los cuatro primeros pines del interruptor rotatorio, (el primer bloque, el azul) y recuerda que necesitas configurar el par de pines con la utilidad de Leo (http://www.leobodnar.com/products/BU0836/BU0836_encoders.exe) para que se comporten como un "rotary encoder".

 

Saludos!

 

pd; No veas la que se ha liado en el foro...!!! Juerding... Un mes sin internette y cuando vuelvo el apocaleches... (con Darkness se vivía mejor, estas cosas no pasaban... :P)

Las tenéis que haber pasado putas los admin... Bueno, a seguir adelante, es una faena perder valiosa información, pero lo que hay que valorar es la capacidad del E69 para volver a generarla, de mas calidad si cabe. ;)

 

Share this post


Link to post
Share on other sites

Muchas gracias! Funciona perfectamente en uno de 4 posiciones. Pero necesito en uno de 5 y 6 posiciones y creo (no lo he probado porque me faltan diodos) que siguiendo el esquema hasta la posicion 5/6 no funcionará....¿puedes ayudarme en hacerlo?...soy un poco nulo en electrónica....

 

Edito: supongo que funcionará si hago uno de 8 posiciones y bloqueo hasta la posicion 5/6....¿que piensas de esa idea?

Edited by islajose

Share this post


Link to post
Share on other sites

Gracias por la info Jack, investigare a ver si localizo esos que comentas.

 

Sobre el diagrama, es muy sencillo. Una vez has configurado la controladora para que un par de botones se comporten o actuen con un encoder, lo que ocurre es lo siguente:

 

Tienes dos pines+tierra, o dos botones, como prefieras.

 

En la posicion 1 ambos estan desconectados, 0-0.

En la 2ª seria, 0-1, uno desconectado, el otro conectado.

En la 3ª, ambos conectados, 1-1.

Y por ultimo, en la 4ª, seria, 1-0.

 

La 5ª es iniciar el mismo ciclo.

Las posiciones 1, 5, y 9 van a tierra para "enviar" un 0-0

 

Si giras a derechas la secuencia seria: 0-0>>0-1>>1-1>>1-0>>0-0, etc.

 

Cuando la controladora "ve" un cambio de estado desde 0-0>>0-1, ó desde 0-1>>1-1, ó desde 1-1>>1-0, o desde 1-0>>00, envia el boton A. Esto seria girando a derechas, si giras a izquierdas la secuencia se invierte, p/e; 1-0>>1-1, y la controladora manda el boton B.

 

De hay viene el problema con los interruptores rotatorios "non shorting", que insertan un 0-0 en la secuencia, quedando asi, p/e, de la posicion 2 a la 3; 0-1>00>1-1.

 

De hecho, si giras rapidamente el interruptor funciona bien, pero obviamente no es la idea.

 

Un apunte. Si piensas en binario puedes deducir que la secuencia logica (por ascendente) seria: 00-01-10-11, pero no, la correcta es 00-01-11-10.

 

 

En realidad puede ser de X posiciones, la controladora lo único que "ve" es un cambio de posición, le da igual que sea entre el pin 1-2 que entre el tropecientosmiltreintaycuatro-tropecientosmiltreintaycinco.

 

Saludos!

 

Edit:

pd. NO NECESITAS MAS DIODOS!!!

Para incrementar posiciones suelda directamente el PIN1 con el PIN5, y tendrías una 5º posición, el PIN2 con el PIN6 para una 6ª, y así sucesivamente.

Edited by Bolas

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this