Sunteți pe pagina 1din 7

M-Smart

Reciclado de Encoder Mecnico de un Mouse

2013

ENCODER INCREMENTAL MECNICO DE UN MAUSE


1. INTRODUCCION.En muchas aplicaciones diarias (electrodomsticos, equipos de audio, de radio, etc.) encontramos un mando de seleccin que siempre posee un relieve importante en el frente de la aplicacin y se presenta como una rueda de tamao notorio. Se suele utilizar para ajustar volumen, sintona de radio o para recorres las mltiples variantes de un men de opciones. Es un mando que gira sin topes y al que podemos encontrarle infinitas aplicaciones prcticas dentro de nuestros proyectos. El propsito del artculo de hoy es poner en funcionamiento un circuito encoder y prepararlo para futuras aplicaciones que pueden incluir control de velocidad de motores hasta el mando de sintona de un receptor.

M-Smart

Reciclado de Encoder Mecnico de un Mouse

2013

La eleccin de este tipo de dispositivos radica en su facilidad de montaje, de su obtencin y su bajo costo. Muchos viejos sistemas de sonido poseen este elemento que puede resultar muy til para este trabajo. Su aspecto externo es el de un potencimetro, pero sus conexiones devuelven una secuencia de contactos organizadas en cuadratura y entregadas en forma de contacto elctrico como vemos en la imagen siguiente. Una de las cosas importantes a destacar en este punto es que estos dispositivos no siempre respetan un orden universal en su distribucin de pines. Es decir, en algunas oportunidades el punto central es el comn a GND y en otros es alguno de los extremos. La manera de saber el correcto conexionado puede ser resuelto de dos maneras muy sencillas. Una es mirando el PCB de donde extraemos el dispositivo y observando la distribucin de vas (ser muy sencillo descubrir cul es GND). La otra es utilizando el multmetro hasta descubrir el pin comn a ambos interruptores. Porque en realidad es eso lo que posee un encoder en su interior, dos interruptores con una conexin comn a GND. 2. Limitaciones.Como todo en la vida, las ventajas de facilidad de uso que brinda un encoder se ven opacadas por la rapidez en que estos componentes presentan algunas fallas. El deterioro de los contactos mecnicos internos y los problemas de ruidos elctricos cuando son afectados por la suciedad, son las primeras causas de fallos en este tipo de dispositivos. Esos dos fantasmas siempre acechan a ladurabilidad y eficiencia de un encoder. 3. Funcionamiento.El funcionamiento bsico de un encoder se sustenta, como mencionamos antes, en dos llaves individuales con una conexin comn a GND y que se activan una tras otra con un desfasaje de 90 grados. En uno de los sentidos de funcionamiento, uno de los impulsos obtenidos en los resistores pull-up (A) se adelantar 90 al otro (B) y en el sentido inverso B se adelantar a A. As de simple y sencillo. Lo mismo ocurre con el programa del microcontrolador, cuando uno de los pines conectados a cada llave recibe el impulso antes que el otro, determina el modo de trabajo en que el software resolver el sentido de giro y la cantidad de impulsos contados.

M-Smart

Reciclado de Encoder Mecnico de un Mouse

2013

4. Desarrollo.En esta etapa inicial no hablaremos de ninguna aplicacin definida, sino que nos limitaremos a asignarle valores a una variable con el simple hecho de girar hacia un lado y hacia otro, la rueda de mando. Ahora veamos como reciclar y usar el Encoder Mecnico rotatorio del Mouse.

4.1.

Identificacin de Terminales del Encoder Mecnico Rotatorio

La Identificacin de pines del Encoder del Mouse es igual a los pines del Encoder Rotatorio tipo Potencimetro.

M-Smart

Reciclado de Encoder Mecnico de un Mouse

2013

Circuito necesario para montar el Encoder de un Mouse.

Las seales generadas por el Encoder Mecnico son las siguientes:

Estas seales son aplicadas a las entradas del microcontrolador de la siguiente manera: PIN.A0A PIN.A1B

M-Smart

Reciclado de Encoder Mecnico de un Mouse

2013

5. Circuito a Implementar.-

6. Firware Programadel microcontrolador pic en c-ccs compiler

#include <16f877A.h> #FUSES HS,NOWDT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT, NOBROWNOUT #use delay(clock=20M, oscillator) #byte porta = 0x05 #byte portb = 0x06 #byte portC = 0x07 #byte portD = 0x08 // Asignamos PortA. // Asignamos PortB. // Asignamos PortC. // Asignamos PortD.

M-Smart

Reciclado de Encoder Mecnico de un Mouse

2013

#use fast_io(A) #use fast_io(B) #use fast_io(C) #use fast_io(D) // ---------- Programa Principial ----------

void main() { set_tris_a(0b11111111); // Puerto A como entradas. Slo usamos RA0 y RA1.

set_tris_b(0b00000000); // Puerto B como salidas, para los 8 LEDs. set_tris_C(0b00000000); // Puerto C como salidas, para los 8 LEDs. set_tris_D(0b00000000); // Puerto D como salidas, para los 8 LEDs. disable_interrupts(global); disable_interrupts(int_timer1); disable_interrupts(int_rda); disable_interrupts(int_ext); setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_spi(FALSE); setup_counters(RTCC_INTERNAL,RTCC_DIV_2); setup_timer_2(T2_DISABLED,0,1); port_b_pullups(FALSE); port_b_pullups(FALSE);// Sin resistencias pullups a las salidas del puerto B. setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // Al no usar el TIMER configuramos lo ms bsico. // Inicializo el Micro y ... // deshabilitando todo lo no necesario ...

//---- Fin de la configuracin del 16F877A ----

int int int

x=0;

// Declaramos el valor de X como byte, se corresponder con los 8 LEDs de salida.

enc=0; // Se almacenar el valor actual de RA0 y RA1, hasta la siguiente comparacin. aux; // Se almacenar el valor anterior de RA0 y RA1, hasta la siguiente comparacin.

M-Smart

Reciclado de Encoder Mecnico de un Mouse


// Inicialmente ponemos a cero el puerto B.

2013

portC=0;

While (true) { aux=enc; enc=porta & 3; // Igualamos 'AUX' y 'ENC' para luego comparar cuando cambie 'ENC'. // Aislamos RA0 y RA1 como un nmero de 2 bits y se carga en la variable 'ENC'.

If (((aux==2)&&(enc==3)) || ((aux==1)&&(enc==0)))// Si en la comparacin hay flanco de subida, { DELAY_MS(10); x++; } If (((aux==3)&&(enc==2)) || ((aux==0)&&(enc==1))) { DELAY_MS(10); x--; } portC = x; } // El valor de X sale por el puerto B, los 8 LED de salida. // entonces decrementar una unidad el valor de X. // entonces incrementar una unidad el valor de X.

S-ar putea să vă placă și