TODOPIC

Mecatrónica => Robótica => Mensaje iniciado por: mtristan en 07 de Febrero de 2010, 16:57:51

Título: No logro implementar PWM en un 12F629 por soft
Publicado por: mtristan en 07 de Febrero de 2010, 16:57:51
.


Hola a todos. Estoy en una situación desesperante. Intento generar dos señales PWM desde un PIC12F629 para manejar sendos motores cc que deberían dar movilidad a un mini-robot seguidor de luz.

Intento lo siguiente:
- Línea recta: ambos motores al 80%
- Giro derecho/izquierdo: un motor a 80% y el otro a 20%.

Pensé que sería una buena idea usar las interrupciones del TMR0 y TMR1 para lograr algo así:

(http://img504.imageshack.us/img504/9130/pwm12f629.gif) (http://img504.imageshack.us/i/pwm12f629.gif/)

Con lo que tengo una señal PWM 80% y al invertirla (usando las mismas interrupciones) otra de 20%.

El gran problema es que luego de simular con el MPSIM y ver que funciona correctamente, lo pruebo en un protoboard con un par de LEDs en lugar de los motores y observo que ninguno se enciende en lo más mínimo.

Sospecho que tal vez la frecuencia no sea la adecuada (ya probé con 1,2KHz y 10Khz)
¿Alguien que me oriente?  :undecided:



Título: Re: No logro implementar PWM en un 12F629 por soft
Publicado por: alcubo01 en 08 de Febrero de 2010, 08:36:46

  ¿Con que esquema has conectado los LED?

   Yo probaría a poner un pin del micro a nivel alto, conectar el LED (con la resistencia para limitar la corriente) y así acotar el problema al Software que genera la señal PWM.

 Un saludo, Alberto
Título: Re: No logro implementar PWM en un 12F629 por soft
Publicado por: todopic en 08 de Febrero de 2010, 10:24:14
Hola Mtristan, te paso un codigo que a mi me funciona, genera 3 pwm para controlar led rgb
ma memoria , es para saber si cada color, termino o no su tiempo de encendido...
los que figuran como pwm_rojo  pwm_verde y pwm_azul son registros contadores

Código: [Seleccionar]
COLORES
;COLOR_ROJO
BTFSC BANDERA_R ;FUE APAGADA?
GOTO COLOR_VERDE
BSF ROJO
DECFSZ PWM_ROJO,F
GOTO COLOR_VERDE
BCF ROJO
BSF BANDERA_R ;MARCO QUE YA TERMINO SU CICLO
COLOR_VERDE
BTFSC BANDERA_G ;FUE APAGADA?
GOTO COLOR_AZUL
BSF VERDE
DECFSZ PWM_VERDE,F
GOTO COLOR_AZUL
BCF VERDE
BSF BANDERA_G ;MARCO QUE YA TERMINO SU CICLO
COLOR_AZUL
BTFSC BANDERA_B ;FUE APAGADA?
GOTO CONTAR
BSF AZUL
DECFSZ PWM_AZUL,F
GOTO CONTAR
BCF AZUL
BSF BANDERA_B ;MARCO QUE YA TERMINO SU CICLO

CONTAR CALL DEMORA ;ANCHO DE CADA PASO DEL PWM -TOTAL 255 PASOS 0.00004  40uS
DECFSZ CONTADOR,F ;TIEMPO TOTAL DEL PWM
GOTO COLORES
GOTO LEER_DATO ;ACTUALIZA NUEVOS DATOS INGRESADOS


Norberto
Título: Re: No logro implementar PWM en un 12F629 por soft
Publicado por: mtristan en 08 de Febrero de 2010, 14:53:47
.


Muchas gracias por la respuesta, todopic. Lo pude probar y por fin me dio resultado  :grin:. Además con ese pedacito de código tengo libre la interrupción del TMR1 para agregarle una de esas rueditas que avisan cuando el robot se quedó atascado.

Me voy contento (: