Generacion y Medida de Pulsos.desbloqueado

6
MODULACIÓN POR ANCHO DE PULSO (PWM) La Modulación de Ancho de Pulso conocido como PWM (Pulse Wide Modulation), básicamente consiste en enviar a los terminales de control un tren de pulsos los cuales varían en mayor o menor medida el tiempo en que se mantiene el nivel alto de esos pulsos, manteniendo la frecuencia constante. Ejemplo de señal PWM Con esta forma de control la cantidad de corriente sigue siendo la misma, la tensión no varía y en consecuencia el torque del motor se mantiene, que es justamente lo que estábamos buscando. INSTRUCCIÓN HPWM Formato HPWM Channel, Duty cycle, Frecuency Channel especifica qué canal físico PWM se va a utilizar. Algunos dispositivos tienen 1, 2 o 3 canales de PWM. En los dispositivos con 2 canales, la frecuencia debe ser igual en ambos canales. El canal hace referencia directamente al módulo CCP del microcontrolador. En el programa debemos definir la ubicación del número de pin y el puerto correspondiente: Ejemplo: DEFINE CCP1_REG PORTB DEFINE CCP1_BIT 3 Dutycycle especifica la relación de (alta-baja) de la señal. Se extiende a partir de 0 a 255, donde 0 está apagado todo el tiempo y 255 es alto todo el tiempo. Un valor de 127 da un ciclo de 50% (onda cuadrada). La frecuencia es la frecuencia deseada de la señal de PWM. No todas las frecuencias están disponibles en todas las configuraciones del oscilador. La frecuencia más alta a cualquier velocidad del oscilador es 32767Hz. La frecuencia usable más baja de HPWM en cada configuración del oscilador se muestra en la tabla siguiente: OSC 14-bit core and 18Cxxx 17Cxxx 4MHz 145Hz 3907Hz 8MHz 489Hz 7813Hz 10MHz 611Hz 9766Hz 12MHz 733Hz 11719Hz 16MHz 977Hz 15625Hz 20MHz 1221Hz 19531Hz

description

generador

Transcript of Generacion y Medida de Pulsos.desbloqueado

Page 1: Generacion y Medida de Pulsos.desbloqueado

MODULACIÓN POR ANCHO DE PULSO (PWM)

La Modulación de Ancho de Pulso conocido como PWM (Pulse Wide Modulation), básicamente consiste en enviar a los terminales de control un tren de pulsos los cuales varían en mayor o menor medida el tiempo en que se mantiene el nivel alto de esos pulsos, manteniendo la frecuencia constante.

Ejemplo de señal PWM

Con esta forma de control la cantidad de corriente sigue siendo la misma, la tensión no varía y en consecuencia el torque del motor se mantiene, que es justamente lo que estábamos buscando.

INSTRUCCIÓN HPWM

Formato HPWM Channel, Duty cycle, Frecuency Channel especifica qué canal físico PWM se va a utilizar. Algunos dispositivos tienen 1, 2 o 3 canales de PWM. En los dispositivos con 2 canales, la frecuencia debe ser igual en ambos canales. El canal hace referencia directamente al módulo CCP del microcontrolador. En el programa debemos definir la ubicación del número de pin y el puerto correspondiente: Ejemplo: DEFINE CCP1_REG PORTB DEFINE CCP1_BIT 3 Dutycycle especifica la relación de (alta-baja) de la señal. Se extiende a partir de 0 a 255, donde 0 está apagado todo el tiempo y 255 es alto todo el tiempo. Un valor de 127 da un ciclo de 50% (onda cuadrada). La frecuencia es la frecuencia deseada de la señal de PWM. No todas las frecuencias están disponibles en todas las configuraciones del oscilador. La frecuencia más alta a cualquier velocidad del oscilador es 32767Hz. La frecuencia usable más baja de HPWM en cada configuración del oscilador se muestra en la tabla siguiente:

OSC 14-bit core and 18Cxxx 17Cxxx

4MHz 145Hz 3907Hz

8MHz 489Hz 7813Hz

10MHz 611Hz 9766Hz

12MHz 733Hz 11719Hz

16MHz 977Hz 15625Hz

20MHz 1221Hz 19531Hz

Page 2: Generacion y Medida de Pulsos.desbloqueado

24MHz 1465Hz 23438Hz

33MHz 2015Hz 32227Hz

40MHz 2442Hz na

Ejemplo: X= 128

HPWM 1, X, 245

Estamos generando usando el módulo CCP1, una frecuencia de 245 Hz con DC de 50%. Cuando se necesita un duty variable se puede establecer una variable tipo byte, para incrementar o decrementar el valor según se requiera.

PULSOUT Pin, Period Genera un pulso de un periodo especificado en un Pin. Si se usa un oscilador de 4MHz el periodo del pulso sera incrementado en 10us. Si el oscilador es de 20 MHz el periodo tiene una resolución de 2us. Definiendo un valor de OSC no tiene efecto en PULSOUT. La resolución siempre cambia con la velocidad del oscilador especificado. Ejemplo: PULSOUT PORTB.5, 100 Envía un pulso de duración de 1ms (en 4MHz) por el Pin5.

INSTRUCCIÓN PULSIN

PULSIN Pin,State,Var

Mide el ancho del pulso en Pin. Si State es cero se mide el ancho de un pulso bajo. Si State es uno, se mide el ancho de un pulso alto . El ancho medido se coloca en Var. Si el flanco del pulso no llega, o el ancho del pulso es demasiado grande para ser medido , Var=0 . Si se usa una variable de 8 bit, solo se usan los bits menos significativos de la medición de 16 bits. Pin puede ser una constante, 0 - 15, o una variable que contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0) La resolución de PULSIN depende de la frecuencia del oscilador. Si se usa un oscilador de 4 Mhz, el ancho de pulso se obtiene en incrementos de 10 us .Si se usa un oscilador de 20 Mhz, el ancho de pulso tendrá una resolución de 2 us. Definir un valor de OSC no tiene efectos sobre PULSIN. La resolución siempre cambia con la velocidad del oscilador en uso.

PULSIN PORTB.4,1,W3 ‘mide el pulso alto en pin 4 guardado en W3

COUNT

COUNT NN_PIN, PERIODO, VARX

Page 3: Generacion y Medida de Pulsos.desbloqueado

COUNT, cuenta el número de pulsos en el Pin (NN_PIN) del PIC, durante el tiempo (PERIODO), y guarda el resultado en una variable (VARX). El Pin es colocado automáticamente como entrada.

EJEMPLO:

COUNT PORTA.2, 1000, X; cuenta los pulsos que ingresan por el pin PORTA.2

durante 1 segundo y lo almacena en la variable X.

SOUND

FORMATO

SOUND NN_PIN, [TONO1,PERIODO1,TONO2,PERIODO2]

SOUND, genera tonos audibles o ruido blanco en un pin del PIC. Se pueden combinar más de una frecuencia de 1 a 127 que son los tonos y de 128 a 255 que corresponde al ruido blanco. La relación entre los tonos y la frecuencia se muestra en la tabla.

Tono Equivalencia (Hz) 0 0 1 78,74 50 3937

100 7 874 127 10000

EJEMPLO:

SOUND PORTB.0,[50,10,100,20] ; Se ha combinado dos frecuencias de 3937 Hz con

una duración de 10 ms y 7874 Hz con una duración de 20 ms.

Las canciones están compuestas por notas musicales (DO, RE, MI, FA, SOL, LA, SI). A cada una de estas notas le corresponde una frecuencia. La tabla muestra la frecuencia que corresponde a cada nota:

NOTA FRECUENCIA (Hz)

DO – C 262

RE – D 294

MI – E 330

FA – F 349

SOL- G 392

LA – A 440

SI – B 494

Las notas tienen una duración, que está determinada por las figuras musicales; para este caso se usará la siguiente duración:

• Fusa 62 ms

Page 4: Generacion y Medida de Pulsos.desbloqueado

• Semicorchea 125 ms

• Corchea 250 ms

• Negra 500 ms

• Blanca 1 segundo

• Redonda 2 segundos El intervalo de frecuencias sonoras audibles se suele dividir en 10 intervalos de frecuencia (10 octavas):

1ª octava: 15 Hz - 30 Hz 2ª octava: 30 Hz - 60 Hz 3ª octava: 60 Hz - 125 Hz 4ª octava: 125 Hz - 250 Hz 5ª octava: 250 Hz - 500 Hz 6ª octava: 500 Hz - 1.000 Hz 7ª octava: 1.000 Hz - 2.000 Hz 8ª octava: 2.000 Hz - 4.000 Hz 9ª octava: 4.000 Hz - 8.000 Hz

10ª octava: 8.000 Hz - 16.000 Hz

TALLER (TRABAJO INDIVIDUAL)

1. Programa 1. Generación de una onda cuadrada de 1000 HZ.

DEFINE CCP1_REG PORTB DEFINE CCP1_BIT 3 INICIO: HPWM 1, 128, 1000 GOTO INICIO

a. Dibuje la forma de onda obtenida. Mida en el osciloscopio el periodo y el duty

de la onda. Está de acuerdo con los valores esperados. Explique. b. Modifique el programa para obtener un duty del 25% del 75% respectivamente. c. Cambie el programa para obtener una señal de 5KHZ, con un duty del 60%. d. Realice un programa para generar una señal de 500 HZ con un duty variable

desde el 25% al 100%. Debe haber un pulsador para subir PS y otro PB para

Page 5: Generacion y Medida de Pulsos.desbloqueado

bajar. Al arrancar el programa con un pulsador PI la señal tendrá un duty de 50%. Con un pulsador PP, la señal se hace 0.

2. Programa 2: Generación de sonido de una sirena.

INICIO: SOUND PORTB.0, [100,10,50,10] GOTO INICIO END Se ha combinado dos frecuencias de 7874 Hz con una duración de 10 ms y 3937 Hz con

una duración de 10 ms.

a. Pruebe el funcionamiento del programa en el simulador. b. Realice un programa para generar las notas DO RE MI FA SOL LA.

Debe haber un pulsador para nota musical.

3. Programa 3. Medición de pulsos. El siguiente programa mide los pulsos que ingrean por el puerto A.0 durante 1 segundo y son indicados en un LCD.

CMCON = 7 TRISA = %11111111 DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 3 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 2 DATO VAR WORD INICIO: COUNT PORTA.0,1000,DATO LCDOUT, $FE,1,"CONTADOR PULSOS" LCDOUT, $FE,$C5,DEC DATO, " HZ" GOTO INICIO END

Page 6: Generacion y Medida de Pulsos.desbloqueado

a. Pruebe el funcionamiento en el simulador. Fije el generador de pulsos para una

frecuencia de 60 Hz, 100Hz, 500Hz y 1000 Hz. Verifique la respuesta de circuito.

b. Que pasaría con las lecturas si la variable DATO fuera tipo BYTE. c. Modifique el programa para que la lectura sea equivalente a las RPM del giro de

un rotor o disco. Ejercicios

1. Escribir la instrucción para generar una frecuencia de 4000 Hz con una duración de 50 ms.

2. Cuál es el valor de la frecuencia si se tiene un tono de 80? 3. Escriba la instrucción para que los pulsos ingresen por el pin B.0 durante 2

segundos y se almacene en la variable contador. 4. Cuáles serán los valores para medir la frecuencia en Hz, de una señal? 5. Escriba las instrucciones para obtener pulsos de 1,5ms y 2 ms usando

PULSOUT.