Autor Tema: Control velocidad motor DC con Pic16F876  (Leído 3105 veces)

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

Desconectado PIC_PLUS

  • PIC10
  • *
  • Mensajes: 2
Control velocidad motor DC con Pic16F876
« en: 11 de Enero de 2006, 12:45:00 »
Hola Buenas!!!
Tengo un problemilla y a ver si alguien me puede ayudar. Quiero controlar la velocidad de un motor de continua. El motor esta conectado al driver de control de motores L293B  y controlado a través   de un PIC16F876. Para controlar la velocidad utilizo modulación de anchura de pulsos, y cuando mido con el polímetro la salida RC2 correspondiente obtengo la tension que quiero ( 5V para el 100% del ciclo de trabajo, 2,5V para el 50%, etc). Esta línea RC2 esta conectada a la patilla de habilitación de uno de los canales del driver (canal donde está el motor). Pero cuando hago la prueba con el motor siempre gira a la misma velocidad, en vez de girar según lo que le indico mediante la modulación (al 50%, al 33%, etc).
Un Saludo. GRACIAS.

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: Control velocidad motor DC con Pic16F876
« Respuesta #1 en: 11 de Enero de 2006, 15:18:00 »
Hola amigo,

Yo creo que debes colocar el preescalador del tmr2 en 16:16 ¿a que velocidad trabaja el PIC? a 4Mhz? a mi me paso la otra vez era con un optotriac y un bombillo que siempre se quedaba encendido y era que la frecuencia del pulso es muy alta y no pasaba nada, si es posible para prueba coloca un oscilador RC y chequea si baja la velocidad.

Saludos

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Control velocidad motor DC con Pic16F876
« Respuesta #2 en: 11 de Enero de 2006, 17:08:00 »
Hola PIC_PLUS, acuérdate que en los motores de CC cuando no tienen peso en el eje para bajarle la velocidad al 50% no alcanza a con generar un ciclo activo del 50% este ciclo será mucho menor dependiendo del motor podría llegar a ser de solo 5% activo.

Por otro lado la respuesta del motor no es proporcional al tiempo activo ya que para subirle las RPM al doble tendrás que subirle el ciclo activo mas del doble.

Y como dice poi5on también podrías de tener la frecuencia del PWM demasiado elevada, frecuencias entre 500Hz y 3000Hz andan bien.

Suerte en el trabajo

Atte. CARLOS



La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Control velocidad motor DC con Pic16F876
« Respuesta #3 en: 11 de Enero de 2006, 18:43:00 »
aqui dejo una grafica que saque hace algun tiempo en la que se ve la poca linealidad del motor trabajando en vacio... si quieres controlar la velocidad del motor con precision tendras que colocarle un encoder para asi poder corregir el pwm de una forma eficaz...

Saludos desde Granada, España.

Desconectado PIC_PLUS

  • PIC10
  • *
  • Mensajes: 2
RE: Control velocidad motor DC con Pic16F876
« Respuesta #4 en: 12 de Enero de 2006, 08:02:00 »
En primer lugar muchas gracias por responder. El Preescaler del Timer 2 lo tengo a 1:16, pero el PIC lo tengo funcionando a 4MHz, así que imagino que la frecuencia será demasiado elevada. Además desconocía la poca linealidad del motor. Probaré en primer lugar a reducir el PWM según la gráfica  que ha dejado dogflu66 a ver si funciona, y si no probaré a cambiar el cristal de cuarzo de 4 MHz por alguno de menor frecuencia (1MHZ o asíGiño. Ya os contaré que tal me ha ido.
UN SALUDO  y de nuevo GRACIAS.  

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3510
RE: Control velocidad motor DC con Pic16F876
« Respuesta #5 en: 12 de Enero de 2006, 08:16:00 »
pues yo tambien utilizo el timer2 de un pic a 20Mhz, dando una resultante de 30Hz aprox. dividida esta en 256 puntos de control sobre el pwm.

PD:

contador_pwm = contador_pwm + 1  " incremento del contador que hace de base para los pwm y otros

if contador_pwm>= 255 then
   algo
   contador_pwm=0
endif

solo te tienes que construir un contador que cuente cuantas veces se desborda el timer2, y asi lo divides practicamente por el numero de veces de tu necesidad.

Saludos desde Granada, España.