La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

TEMPORALIZADOR, GENERADOR DE SEÑALES, MEDIDOR DE INTERVALOS, DECODIFICADOR DE PULSOS DE CUADRATURA (QEP) Y PWM RANGEL YAÑEZ ROBERTO LOPEZ CONTRERAS ANDRES.

Presentaciones similares


Presentación del tema: "TEMPORALIZADOR, GENERADOR DE SEÑALES, MEDIDOR DE INTERVALOS, DECODIFICADOR DE PULSOS DE CUADRATURA (QEP) Y PWM RANGEL YAÑEZ ROBERTO LOPEZ CONTRERAS ANDRES."— Transcripción de la presentación:

1 TEMPORALIZADOR, GENERADOR DE SEÑALES, MEDIDOR DE INTERVALOS, DECODIFICADOR DE PULSOS DE CUADRATURA (QEP) Y PWM RANGEL YAÑEZ ROBERTO LOPEZ CONTRERAS ANDRES GOMEZ BAUTISTA RICARDO (MEGASUPERDUPER APOYO SUPER SAYAJIN DIOS BLUE)

2 TEMPORALIZADOR Un timer no es más que un contador cuya entrada está conectada al reloj del sistema. De hecho, la mayoría de los timers pueden reconfigurarse como contadores. En ese caso, en lugar de contar pulsos de reloj cuentan los pulsos que llegan a un determinado pin.

3 TIPOS DE TIMER  TIMER0: Es un temporizador que se puede usar con entradas externas o internas.  TIMER1: Es un temporizador de 16 bits.  TIMER2: Es un temporizador de 8 bits con un pres calador y post escalador.  CAPTURA/COMPARACION/PWM: Registro de captura de 16 bits

4 REGISTROS DEL TIMER0 El TMR0 del timer0 PIC está formado por 8 bits, por lo que se puede contar desde 0 hasta 255 con cada 4 ciclos de reloj, en este caso el timer0 estará conectado al pin T0CKI por donde se le hará llegar una señal, la cual al cambiar de estado hará que el timer0 PIC se incremente en una unidad.

5 PROGRAMACION DEL TIMER0 se hace mediante el bit5 o el bit T0CS del registro OPTION_REG.  El bit7 al poner este bit a 0 se activan unas resistencias pull up internas que el microcontrolador tiene en el puerto B.  El bit6 es para cuando se utilice una interrupción externa por el pin INT, con este bit se elige si se quiere que la interrupción sea por flanco de subida o por flanco de bajada.  El bit5 T0CS este es el bit que en este caso interesa, al poner este bit a 1 se elige utilizar el timer0 PIC como contador, si se le pone a 0 se elige utilizar el timer0 PIC como temporizador.  El bit4 T0SE con este bit se elige si se quiere que el timer0 PIC cuente por flanco de subida, esto es cuando la señal que llega por el pin T0CKI pase de 0 a 1, o que cuente por flanco de bajada, esto es cuando la señal que llega por el pin T0CKI pase de 1 a 0, si T0SE=1 se contará por flanco de bajada, si T0SE=0 se contará por flanco de subida.

6 PROGRAMACION DEL TIMER0 Cada vez que la señal digital que llegue al pin T0CKI, de acuerdo a lo que se halla elegido con el bit T0SE, el valor del contador, esto es el valor del registro TMR0, aumentará en una unidad hasta un máximo de 255, luego se pondrá nuevamente a 0 y otra vez comenzará a contar.  El bit3 es para la utilización del prescaler para el timer 0, el prescaler se le puede asignar al timer0 o al WDT mediante este bit.  Los bits 2, 1 y 0 son para elegir el prescaler a utilizar, mediante las combinaciones de estos bits se tienen diferentes valores para el prescaler, el que a su vez dependerá de a quien se le a asignado el prescaler mediante el bit3, tal como se ve en la imagen.

7 TIMER0 COMO TEMPORALIZADOR El temporizador contador pic TMR0 cuenta con lo que se conoce como prescaler esto hace que la frecuencia de trabajo F OSC se divida por este prescaler, con lo que se logra que el temporizador contador pic tarde un poco mas en aumentar su valor en una unidad; el prescaler del time0 PIC para el PIC16F877A puede tomar el valor de 1, 2, 4, 8, 16, 32, 64, 128 o 256; estos valores se eligen mediante las combinaciones de los bits 0, 1 y 2 del registro OPTION_REG.

8 PROGRAMACION DEL TIMER0 COMO TEMPORIZADOR  El bit7 al poner este bit a 0 se activan unas resistencias pull up internas que el microcontrolador tiene en el puerto B.  El bit6 es para cuando se utilice una interrupción externa por el pin INT, con este bit se elige si se quiere que la interrupción sea por flanco de subida o por flanco de bajada.  El bit5 T0CS este es el bit que en este caso interesa, al poner este bit a 0 se elige utilizar el timer0 PIC como temporizador, si se le pone a 1 se elige utilizar el timer0 PIC como contador

9  El bit4 T0SE este bit es útil cuando se usa el timer0 PIC como contador con este bit se elige si el timer0 PIC contará por flanco de subida, esto es cuando la señal que llega por el pin T0CKI pase de 0 a 1, o que cuente por flanco de bajada, esto es cuando la señal que llega por el pin T0CKI pase de 1 a 0, si T0SE=1 se contará por flanco de bajada, si T0SE=0 se contará por flanco de subida. En el modo temporizador este bit no se toma en cuenta, es igual si se pone a 0 o a 1. PROGRAMACION DEL TIMER0 COMO TEMPORIZADOR

10  El bit3 es para la utilización del prescaler para el timer 0, el prescaler se le puede asignar al timer0 o al WDT mediante este bit.  Los bits 2, 1 y 0 son para elegir el prescaler a utilizar, mediante las combinaciones de estos bits se tienen diferentes valores para el prescaler, el que a su vez dependerá de a quien se le a asignado el prescaler mediante el bit3, PROGRAMACION DEL TIMER0 COMO TEMPORIZADOR

11 TEMPORIZADOR O TIMER1 El timer1 PIC es un temporizador contador de 16 bits, el registro TMR1 es el temporizador contador timer1 PIC en si, es donde se guardan los valores del timer1 PIC, cuando es utilizado como temporizador, sus valores aumentaran de uno en uno entre 0 y 65535 con cada 4 ciclos de reloj,

12 PROGRAMACION DEL TIMER1 PIC PARA CONTADOR Se hace mediante el bit1 o el bit TMR1CS del registro T1CON.  Los bits 7 y 6 no se utilizan por lo que se les pone a 0.  Los bits 5 y 4 son para elegir un prescaler, mediante las combinaciones de estos bits se pueden elegir los prescaler 1, 2, 4 u 8.

13 PROGRAMACION DEL TIMER1 PIC PARA CONTADOR  El bit3 es para cuando se quiere conectar un oscilador independiente al timer1 PIC, este ocilador se debe colocar entre el pin T1OSO (pin 15) y el pin T1OSI (pin16) para esto hay que poner este bit a 1.  El bit2 es para hacer que el timer1 PIC cuando es programado como contador trabaje en forma sincronizada con el sistema interno del pic.

14 PROGRAMACION DEL TIMER1 PIC PARA CONTADOR  El bit1 (TMR1CS), con este bit se elige si el timer1 PIC será utilizado como contador o como temporizador, al poner este bit a 1 TMR1CS=1 se elige la opción de utilizar el timer1 PIC como contador, al ponerlo a 0 se elige la opción de utilizarlo como temporizador, el aumento en las cuentas del timer1 PIC será siempre por flanco de subida de la señal en el pin T1CKI.  El bit 0 (TMR1ON) al poner este bit a 1 se habilita el uso del timer1 PIC, cuando este bit está a 0 el timer1 PIC estará desactivado.

15 TEMPORIZADOR O TIMER2 El timer2 PIC solo puede ser utilizado como temporizador no como contador, consta de 8 bits por lo que sus valores pueden aumentar desde 0 a 255, El registro TMR2 es en si el timer2 PIC, este registro tiene asociado un registro llamado PR2 de 8 bits, en este registro se cargará el número de veces que se quiere que el registro TMR2 aumente de valor, cuando el valor del registro TMR2 llegue a ser igual al valor cargado en el registro PR2 el registro TMR2 se pondrá a 0,

16 TIMER2 PIC COMO TEMPORIZADOR El temporizador timer2 PIC cuenta con lo que se conoce como prescaler y también con un postcaler pero el postcaler solo hace su trabajo cuando el timer2 PIC es utilizado con interrupciones esto se ve en la sección de interrupciones con el PIC, lo que hacen es que la frecuencia de trabajo F se divida por este prescaler y a la vez por el postcaler si se utilizan ambos a la vez se logra que el temporizador timer2 PIC tarde un poco mas en aumentar su valor en una unidad.

17  El bit7 no se utiliza por lo que se le pone a 0.  Los bits de 6 al 3 mediante las combinaciones de estos bits se elige el postcaler, el poscaler puede tener los valores del 1 al 16.  El bit2 al poner este bit a 1 se habilita el uso del timer2 PIC, si se pone a 0 el timer2 PIC estará deshabilitado.

18 MODULO CCP El módulo CCP puede realizar 3 funciones diferentes, CCP viene de Captura, Comparación y PWM(modulación por ancho de pulso), esto es el módulo CCP puede trabajar en modo captura, en modo comparación o en modo PWM. El PIC16F877A tiene dos módulos CCP los cuales se conocen como módulo CCP1 y módulo CCP2 de 16 bits cada uno, a cadauno le corresponde un pin del PIC para hacerlo trabajar, para el módulo CCP1 le corresponde el pin 17 o RC2, mientras al módulo CCP2 le corresponde el pin 16 o RC1,

19 CCP PIC MODO PWN MODILACION PARA ANCHO DE PULSO CCP PIC modo PWM, esto es modulación por ancho de pulso, en esta forma de trabajo del módulo CCPx donde x puede ser 1 o 2 dependiendo del módulo CCP utilizado, lo que se logra con el uso del módulo CCPx en modo PWM es obtener por el pin CCPx una señal periódica, este pin debe ser configurado como una salida digital mediante el correspondiente TRISC,

20 CCP PIC MODO PWN MODILACION PARA ANCHO DE PULSO Una señal PWM es aquella en la que su periodo representado por T se tiene que mantener constante, dentro de este periodo hay momentos en que la señal estará en alto o a uno y momentos en que la señal estará en bajo o a 0, en la señal PWM el tiempo que la señal está en alto Talto se le conoce como ancho de pulso y si está expresado en porcentaje como ciclo de trabajo, este tiempo que la señal esta en alto se puede modificar,

21 CCP PIC MODO PWM: REGISTROS CCPxCON Mediante este registro se elige en modo de trabajo del módulo CCPx, en la siguiente imagen se muestra el registro con los respectivos nombres de los bits que lo conforman.  Los bits 7 y 6 de este registro no se utilizan por lo que se les pone a 0.  Los bits 5 y 4 en el uso del módulo CCP PIC modo PWM, estos bits son los 2 bits menos significativos del ciclo de trabajo del módulo CCP PIC modo PWM el cual es de 10 bits, los 8 bits mas significativos se encuentran en el registro CCPRxL  Los bits 3, 2, 1 y 0 son los que se utilizarán para elegir el modo de trabajo del módulo CCP, si estos 4 bits se ponen a 0 el módulo CCP estará deshabilitado; para el uso del módulo CCP PIC modo PWM los valores asignados a estos pines serán como se indican en la siguiente tabla.

22 CCP PIC MODO PWM: REGISTROS CCPxCON  1. Establecer el periodo de la señal PWM obtenida mediante el módulo CCP PIC modo PWM, para ello cargar el registro PR2 con el valor obtenido mediante la fórmula T pwn =(PR2+1)*(4/Fosc)*prescalerT MR2.  2. Establecer el ancho de pulso o el ciclo de trabajo cargando los bits CCPRxL:CCPxCON, con valores que no sobrepasen el máximo valor obtenido mediante la obtención de la resolución para el periodo o frecuencia elegida para la señal PWM.  3. Establecer el pin CCPx utilizado como una salida digital mediante su registro TRISC, o el que le corresponda de acuerdo a microcontrolador PIC utilizado.  4. Configurar el módulo CCP PIC modo PWM, esto es para que el módulo CCP trabaje en el módulo PWM.

23 ENCODER DE CUADRATURA ¿Qué es un encoder? Que un encoder es un dispositivo o sensor que genera señales en respuesta al movimiento, y existen basicamente 2 tipos: incremental y absoluto. Y su vez, cada tipo puede ser rotativo o lineal. Un encoder incremental o de cuadratura tiene una estructura de funcionamiento sencilla, que permite saber con muy pocos calculos el estado de lo que estemos controlando (un motor, la posicion de un brazo mecanico, el voltaje en una fuente) La estructura básica del encoder de cuadratura es la siguiente: La imagen muestra un encoder rotativo de tipo mecanico, ya que es el mas comun y para efectos de este articulo, sencillo de explicar y de implementar. Tambien hay de tipo “optico” (sustituyendo los interruptores por opto-acopladores), de efecto hall (con la debida sustitucion de los switch por sensores)

24 ENCODER DE CUADRATURA Estos contactos mecanicos se van activando y descativando en una secuencia que nos permite saber la direccion y el numero de desplazamientos que han ocurrido en el encoder. En la imagen anterior tambien se puede ver como es la secuencia de activaciones dependiendo el sentido de giro. De hecho este tipo de secuencia esta en codigo grey de dos bits (cosa muy util para la detección de errores).codigo grey Ahora bien, gracias a este codigo podemos saber la direccion del giro que toma el encoder, para Iilustrarlo mejor, veamoslo en forma de matriz:

25 ENCODER DE CUADRATURA Esta tecnica de la matriz es muy util a la hora de usar microcontroladores y mas con lenguaje “C”, ya que en vez de estar nadando entre multiples “if-else” solo tenemos que acceder a una coordenada en la matriz para saber que paso, lo que simplifica las lineas de codigo y la velocidad de comprobacion. Para ver mejor esto veamos un fragmento de codigo para apreciar la utilidad:

26 ENCODER DE CUADRATURA

27

28 EL DIAGRAMA ENCODER Las salidas Ax y Bx son de los encoders y los Px son salidas de un “push-button” que viene integrado a este modelo de encoder. El diseño del PCB es el siguiente: Los archivos de este diseño estan en formato DipTrace,DipTrace

29 Convertidor Digital-Analógico con PWM Pero todos los microcontroladores tienen por lo menos un timer y en la mayoria de los casos se puede usar como un modulador de ancho de pulso (PWM)PWM En el caso de que se cuente con estos recursos. se puede usar el timer/PWM para hacer conversiones de digital a analogico usando un arreglo de una resistencia, un capacitor y un amplificador operacional. El circuito es un filtro pasabaja de primer orden y el amplificador operacional sirve para evitar que se caiga el voltaje de salida debido a la carga que le coloquemos.filtro pasabaja

30 Sin adentrarnos mucho en el tema, los filtros pasabaja dejan pasar las señales con frecuencia menor a la frecuencia de corte. En pocas palabras, de la frecuencia de corte para abajo. Para calcular la frecuencia de corte, en este caso se puede usar la siguiente formula. Esta frecuencia de corte es importante, ya que nos da la pauta de las frecuencias que podemos suministrar como señal de salida analógica. Es decir, si nuestra frecuencia de corte es de 1000Hz, con nuestro dac pwm podemos sacar frecuencias menores de 1000Hz, por ejemplo podemos sacar senoidales a 600Hz sin problema. Convertidor Digital-Analógico con PWM

31 APLICACIÓN DE PWM 1.// Inicializacion del timer2 2. 3.// Clock source: System Clock 4.// Clock value: 8000.000 kHz 5.// Mode: Fast PWM top=0xFF 6.// OC2 output: Non-Inverted PWM 7.// Timer Period: 0.032 ms 8.// Output Pulse(s): 9.// OC2 Period: 0.032 ms Width: 0.016063 ms 10.ASSR=0<<AS2; 11.TCCR2=(1<<PWM2) | (1<<COM21) | (0<<COM20) | (1<<CTC2) | (0<<CS22) | (0<<CS21) | (1<<CS20); 12.TCNT2=0x00; 13.OCR2=0x80;

32 APLICACIÓN DE PWN 31. { 32. delay_ms(1); 33. } 34. // senoidal 35. f=0.0; 36. for(i=0; i<50; i++) 37. for(f = 0.0; f < (2*3.141592654); f+=0.01) 38. { 39. PWM = 128 + (unsigned char) ( 127.0 * sin(f) ) ; 40. delay_us(100); 41. } 42. 43. 44. } 14. 15.... 16.... 17. 18.//loop principal (PWM = OCR2) 19. 20.while (1) 21. { 22. //minimo 23. PWM = 0; 24. delay_ms(2000); 25. //maximo 26. PWM = 255; 27. delay_ms(2000); 28. //diente sierra 29. for(i=0; i<50; i++) 30. for( PWM = 0; PWM <255; PWM++)


Descargar ppt "TEMPORALIZADOR, GENERADOR DE SEÑALES, MEDIDOR DE INTERVALOS, DECODIFICADOR DE PULSOS DE CUADRATURA (QEP) Y PWM RANGEL YAÑEZ ROBERTO LOPEZ CONTRERAS ANDRES."

Presentaciones similares


Anuncios Google