Autor Tema: Programación del PWM pic18F4331  (Leído 1225 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado joanpebupe

  • PIC10
  • *
  • Mensajes: 1
Programación del PWM pic18F4331
« en: 10 de Febrero de 2015, 13:49:10 »
Buenas foreros,
Antes de nada pedir disculpas por no saber exactamente dónde abrir el tema, si no es el sitio adecuado, espero lo comprendan y me echen un cable para ubicarlo bien en el foro.

La cuestión, es que soy nuevo en esto de la programación de uC PIC, y estoy realizando un proyecto, que consiste en el control de un motor trifásico.

Para ello he decidido adentrarme en el mundo de los PIC y probar con el PIC18F4331 que según microchip está ideado especialmente para control de motores.

Pues mi duda, básicamente, es que cuando se trata de otro pic cualquiera con su módulo CCP, se programar el pwm, pero en el caso del 4331, que incorpora pins exclusivos de salida PWM, no consigo averiguar como programarlos, y que sentencias usar.

Gracias de antemano,

Disculpas de nuevo, y si hay algun hilo (no lo he encontrado) ya abierto, les agradecería me enviaran a el!

Joanpe

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Programación del PWM pic18F4331
« Respuesta #1 en: 10 de Febrero de 2015, 14:56:49 »
Imagino que debes programar este registro:

PWMCON0: PWM CONTROL REGISTER 0

Estos bits en especial:

PWMEN2:PWMEN0: PWM Module Enable bits(1)
111 =All odd PWM I/O pins enabled for PWM output(2).
110 =PWM1, PWM3 pins enabled for PWM output.
101 =All PWM I/O pins enabled for PWM output(2) .
100 =PWM0, PWM1, PWM2, PWM3, PWM4 and PWM5 pins enabled for PWM output.
011 =PWM0, PWM1, PWM2 and PWM3 I/O pins enabled for PWM output.
010 =PWM0 and PWM1 pins enabled for PWM output.
001 =PWM1 pin is enabled for PWM output.
000 =PWM module disabled. All PWM I/O pins are general purpose I/O.

Desconectado Daikataro

  • PIC10
  • *
  • Mensajes: 22
Re: Programación del PWM pic18F4331
« Respuesta #2 en: 15 de Febrero de 2015, 21:42:56 »
Control de un motor trifásico... eso significa que se alimenta de corriente alterna, la cual es básicamente imposible de controlar via PWM por tres motivos:

-Tendrías que generar un PWM con una frecuencia EXACTA de 50-60Hz (dependiendo de tu país) más/menos el error que te entregue tu proveedor de energía eléctrica para poder controlar el TRIAC
-Suponiendo que pudieras generar exactamente esa frecuencia, y que nunca fuera diferente a la de corriente alterna, tendrías que estar seguro de que empieza exactamente acoplada al ciclo de alterna de tu proveedor; es decir, que ambas llegan a 1 y 0 al mismo tiempo
-Suponiendo que pudieras con los dos obstáculos anteriores, ninguno de tus elementos puede variar, incluyendo cristal oscilador.

Esto desde luego, suponiendo que quieras controlar velocidad de giro por ángulo de disparo; si sólo quieres hacer un control ON/OFF bastará con un poco de circuitería simple.

Ahora, volviendo al tema de control de velocidad, eso se hace mediante una interrupción física en el puerto RB0 (más común para interrupciones) en el momento exacto de cruce por cero, en el cual se apaga el TRIAC, y se enciende tras un periodo determinado lo cual "corta" la forma de onda y por tanto, reduce la tensión que recibe el motor, ralentizándolo. La razón del corte en cruce por cero, es porque el TRIAC sólo se apaga en ese momento, y si le cortamos la corriente de gate mientras está encendido, seguirá encendido hasta el siguiente cruce por cero, nulificando el control. Microchip hace una excelente explicación de la detección de cruce por cero en éste pdf:

http://www.realtechsupport.org/UB/MM/practical%20things/AC_powerlines.pdf