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

Slides:



Advertisements
Presentaciones similares
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Advertisements

Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Sesión 09: TIMER como base de tiempo.
Programación de microcontroladores PIC16f877a en linux
UNIDAD 3: SISTEMAS COMBINACIONALES Y SECUENCIALES UNIDAD 3: SISTEMAS COMBINACIONALES Y SECUENCIALES ING. GERARDO A. LEAL, MSC Unidad 3: Sistemas Combinacionales.
6.Componentes básicos de memorización Fundamentos de los Computadores Grado en Ingeniería Informática.
SIGMA-DELTA. Sistemas digitales Sistemas Digitales - FIUBA PROCESAMIENTO DIGITAL ADCDAC Señal analógica Sigma-Delta.
Circuitos eléctricos Módulo: Electrotecnia Juan Amigo S. Mecánica Industrial Año 2013.
FUNDAMENTOS DE MICROCONTROLADORES PIC 16F887 EXPONENTES: NOLBERTO LUNA GARCÍA JOSÉ GUADALUPE GARCÍA MACHADO.
Circuitos Magnéticamente Acoplados Capítulo 14 Hayt.
MICROCONTROLADORES Proyecto segundo parcial: Chat SPI DANIEL FRAGA MELISA PILLA DIANA PAREDES VANESAA RIVILLA GRUPO 6 Y 11 NRC:2576.
1 Escuela Politécnica Superior Universidad Autónoma de Madrid Juan González PIC 16F87X Curso de microcontroladores PIC. Semana del Mayo Andrés.
Ing. Leonardo Párraga Teleprocesos. Ing. Leonardo Párraga Transmisión de datos TransmisióndeDatos Velocidades en un Sistema de Transmisión Modos de Transmisión.
Conversores Análogo-Digital y Digital-Análogo: Conceptos Básicos Huircán, Juan Ignacio Abstract–El siguiente trabajo revisa las técnicas y conceptos básicos.
Automatización de un panel solar
Capitulo I Introducción
PRESION DE LIQUIDO REFRIGERANTE
Tema: Tipos De fuentes de alimentación
Multiplexación y encriptación
Microprocesador Estructura interna.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
A EJEMPLO 1. Acerca del circuito de dos mallas de la figura, conteste a las siguientes preguntas: (a) ¿Qué lectura de corriente indicará el amperímetro.
Componentes electrónicos análogos y digitales
TEMA 7: TEMPORIZADORES Y RELOJES 1.
5. Análisis y diseño de sistemas secuenciales (I)
Circuitos Magnéticamente Acoplados
Proyecto Auto eléctrico
Servomotor La modulación por ancho de pulso permite un ciclo de trabajo ( el porcentaje de tiempo en alto contra el tiempo en bajo) que es de 0 al 100.
ROBOT SIGUE LÍNEAS EVITA OBSTÁCULOS PARA ENSEÑANZA DOCENTE
CONTROL POR EVENTOS PARA LA ESTABILIZACIÓN DEL PÉNDULO LINEAL
SENSOR DE TEMPERATURA.
Comunicación Serial: Conceptos Generales
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
ARDUINO Qué es y por qué usarlo * El proyecto Arduino:
BUS I2C Ing. Mecatronica. Para simplificar la interconexión de dispositivos al microprocesador, Philips desarrolló un sencillo bus bidireccional basado.
Registros y Contadores
Direccionamiento de puerto E/S mapeado en memoria
Exígete mucho a ti mismo y espera poco de los demás.
PICOBLAZE RESUMEN.
FLIP - FLOPS.
INNOVACION TECNOLOGICA ELECTRONICA ESTUDIANTIL EN CIENCIAS
Puertos de E/S y recursos especiales Alumno: Llerena Quenaya Gabriel.
Temporizadores. Como funciona un temporizador Un temporizador es un dispositivo con el cual podemos regular la conexión o desconexión de un circuito eléctrico.
Introducción a los Sistemas Digitales Tema 1 1. ¿Qué sabrás al final del tema? n Diferencia entre analógico y digital n Cómo se usan niveles de tensión.
PROGRAMACIÓN LADDER INTRODUCCIÓN A LA AUTOMATIZACIÓN.
SERVOMOTORES EMAN HENNESY MARIN JOSE MAYO,2018. SERVOMOTOR son dispositivos de accionamiento para el control de precisión de velocidad, par motor y posición.
Otras aplicaciones de comparadores Los comparadores se usan en muchos circuitos electrónicos y facilitan además el paso de señales entre tecnologías diferentes.
Ing. Diego Barragán Guerrero Máquinas de estado con VHDL.
MULTIVIBRADORES MULTIVIBRADOR BIESTABLE (dos estados estables)
Empecemos por el principio
Cálculo del valor de precarga en timer 0
Sistemas Secuenciales Electrónica Digital Electrónica Básica José Ramón Sendra Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC.
CHUMBIPUMA CHUMBIMUNE, JORGE JESÚS FIM - UNI ENERO 2019 CONTROL DIGITAL.
Función Pulso Rectangular Presentado por: Edith María Hernández Universidad Popular Del Cesar
CIRCUITOS CONVERTIDORES DE SEÑAL DISPOSITIVOS ANALÓGICOS. OCTUBRE/2016.
Operaciones con Acumuladores
Sistemas de acondicionamiento. Acondicionadores de señal Se ha mencionado, que un transductor forma parte de un sensor, y que éste último no solo cambia.
NOMBRE : Daniel Lima Cachi DOCENTE : ING. HENRY GOMEZ DEL CARPIO CURSO : CIRCUITOS ELECTRONICOS 3.
(Numerically Controlled Oscillator)
Universidad politécnica de Madrid
PROYECTO DE CONTROL CON MICROPROCESADORES CONTROLADOR DE VELOCIDAD DE UN MOTOR MONOFÁSICO DE INDUCCIÓN EMPLEANDO LA TÉCNICA DE CONTROL SPWM. Dalton Celi.
5.Análisis y diseño desistemas secuenciales (III) Fundamentos de los Computadores Grado en Ingeniería Informática.
 Diseñar y armar un inversor de corriente de DC a AC que produzca una onda sinusoidal con una frecuencia de 60Hz.
RESPUESTA EN FRECUENCIA DE LOS FILTROS ACTIVOS FERNÁNDEZ PIZARRO AARON SMITH SANDOVAL ANCCO LUIS ENRIQUE VILCA VILLANUEVA JOEL.
 SON FUNCIONES LÓGICAS  REPRESENTADAS POR TABLAS DE VERDAD  SIMPLIFICABLES POR LÓGICA BOOLEANA  SIMPLIFICABLES POR KARNAUGH  APLICACIONES: funciones.
CIRCUITOS COMBINACIONALES Y SECUENCIALES. COMBINACIONALES SON FUNCIONES LÓGICAS REPRESENTADAS POR TABLAS DE VERDAD SIMPLIFICABLES POR LÓGICA BOOLEANA.
Sistemas Secuenciales Electrónica Digital. Combinacional: las salidas dependen de las entradas Secuencial: las salidas dependen de las entradas y de valores.
Convertidor Matricial ca/ca Alumno: Ccoyori mendoza mario Código: Curso: Electrónica de potencia Profesor: Dra. Teresa Núñez.
¿Qué es Arduino?  Plataforma de electrónica abierta.
Transcripción de la presentación:

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)

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.

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

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.

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.

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.

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.

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

 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

 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

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 con cada 4 ciclos de reloj,

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.

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.

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.

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,

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.

 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.

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,

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,

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,

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.

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.

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)

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:

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:

ENCODER DE CUADRATURA

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

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

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

APLICACIÓN DE PWM 1.// Inicializacion del timer // Clock source: System Clock 4.// Clock value: kHz 5.// Mode: Fast PWM top=0xFF 6.// OC2 output: Non-Inverted PWM 7.// Timer Period: ms 8.// Output Pulse(s): 9.// OC2 Period: ms Width: 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;

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* ); f+=0.01) 38. { 39. PWM = (unsigned char) ( * sin(f) ) ; 40. delay_us(100); 41. } } //loop principal (PWM = OCR2) 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++)