Autor Tema: No logro implementar PWM en un 12F629 por soft  (Leído 4792 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
No logro implementar PWM en un 12F629 por soft
« 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í:



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:



« Última modificación: 07 de Febrero de 2010, 17:01:43 por mtristan »
When you see a good move, look for a better one (Emanuel Lasker)

Desconectado alcubo01

  • PIC12
  • **
  • Mensajes: 69
Re: No logro implementar PWM en un 12F629 por soft
« Respuesta #1 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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: No logro implementar PWM en un 12F629 por soft
« Respuesta #2 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
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: No logro implementar PWM en un 12F629 por soft
« Respuesta #3 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 (:

When you see a good move, look for a better one (Emanuel Lasker)