Autor Tema: Eficacia con el PWM por software....  (Leído 24893 veces)

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

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Eficacia con el PWM por software....
« en: 15 de Abril de 2005, 20:20:00 »
He construido una rutina basada en el TIMER2 del PIC16F877 a 20Mhz para controlar cuatro servos, pero me consume mucha potencia del micro y solo consigo tener +- 15 pasos efectivos de velocidad alguien tiene algo funcionado para cuatro o mas servos de una forma eficaz.... o el micro no da para mas...
Saludos desde Granada, España.

Desconectado Cristianxx

  • PIC10
  • *
  • Mensajes: 34
RE: Eficacia con el PWM por software....
« Respuesta #1 en: 16 de Abril de 2005, 20:42:00 »
Lo de los servos los usas en modo de rotación continua o normal? porque si es PWM para control de velocidad lo mejor seria un pic con mas canales de pwm (hay hasta 5 y mas) y usar las rutinas propias del pic para eso.


Desconectado Jimmy_pop

  • PIC12
  • **
  • Mensajes: 72
RE: Eficacia con el PWM por software....
« Respuesta #2 en: 17 de Abril de 2005, 08:10:00 »
el problema es que la entrada de control del servo te chupa demasiada corriente? me suena raro pero siempre puedes hacer un pequeño "buffer" con un inversor cmos que igual ya te sirve o si no si tan exagerado es lo del consumo, quizás con un L293 o algun motor driver pero me parece excesivo.

see ya

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Eficacia con el PWM por software....
« Respuesta #3 en: 18 de Abril de 2005, 17:57:00 »
- “pero me consume mucha potencia de proceso de la cpu”

- los servos me funcionan perfectamente... rotación continua

Los controlo mediante una interrupción que me genera el tmer2, se ejecuta 600 veces durante los 20mSg “periodo” para obtener los 50Hz que necesitan los servomotores...
20mSeg es a 600 veces la unidad de tiempo
1mSeg es a 30
1,5mSeg es a 45
2mSeg es a 60
por lo que se puede ver que solo dispongo de +-15 unidades de tiempo para disponer de la velocidad de los servomotores... en estas 600 veces ya estan incorporadas las demoras de tiempo, por tiempo de ejecución de las instrucciones de la propia rutina... todo esto quita mucho tiempo de ejecución al programa principal...

he pensado que si solo ejecuto la rutina durante 2mSeg (60 unidades de tiempo) y después reprogramo el timer2 con 18mSeg, dispondre de 18 mSeg de tiempo para ejecutar las tareas del programa pricipal con lo que de cada 20 mSeg 2 seran realmente los que absorban el tiempo de la cpu.... esto en principio me complica algo mas la rutina pero pienso que salgo ganando...

todo esto viene porque me estoy diseñando una placa para controlar 16 motores dependiendo de la configuración, motores normales, de paso a paso y como no... servomotores...

y dede luego estoy interesado en PIC que tengan mas salidas para PWM de serie... si me puedes indicar alguno para facilitarme la búsqueda...
Saludos desde Granada, España.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Eficacia con el PWM por software....
« Respuesta #4 en: 19 de Abril de 2005, 03:35:00 »
Creo que el que más tiene, y corregidme si me equivoco, es el dsPIC30F5015, que trae 8 salidas PWM independientes.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Eficacia con el PWM por software....
« Respuesta #5 en: 19 de Abril de 2005, 17:49:00 »
Efectivamente con la nueva rutina se soluciona el problema que tenia...
Pero al ser la rutina mas complicada pierdo el control de 2 servos con lo que la nueva rutina solo tiene la capacidad de controlar dos servomotores... pero con una variante de esta rutina complicándola poco mas se podria conseguir la siguiente distribución de recursos:

M0 y M1 -> 2mSeg
Resto de procesos -> 1mSeg
M2 y M3 -> 2 mSeg
Resto de procesos -> 1mSeg
M4 y M5 -> 2mSeg
Resto de procesos -> 1mSeg
M6 y M7 -> 2mSeg
Resto de procesos -> 1mSeg
M8 y M9 -> 2 mSeg
Resto de procesos -> 1mSeg
M10 y M11 -> 2mSeg
Resto de procesos -> 1mSeg
M12 y M13 -> 2mSeg

La suma total de tiempos seguiría siendo 20mSeg, por lo que se podrían controlar 14 servos e incluso reduciendo el tiempo a “Resto de procesos” se podrían controlar 16 servos... en fin todo es cuestión de probar y optimizar el codigo....
Saludos desde Granada, España.

Desconectado Jimmy_pop

  • PIC12
  • **
  • Mensajes: 72
RE: Eficacia con el PWM por software....
« Respuesta #6 en: 23 de Abril de 2005, 07:32:00 »
perdona, no te había leído bien

schedulable or not, that"s the question my friend

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Eficacia con el PWM por software....
« Respuesta #7 en: 24 de Abril de 2005, 17:05:00 »
He conseguido llegar a controlar 8 servomotores con la nueva rutina (no me da para mas) y me dispongo a implementar el protocolo de control por puerto serie de los servos, una vez implementado el protocolo seguire con las optimizaciones a ver hasta cuantos servos permite...
Saludos desde Granada, España.

Desconectado Cristianxx

  • PIC10
  • *
  • Mensajes: 34
RE: Eficacia con el PWM por software....
« Respuesta #8 en: 24 de Abril de 2005, 21:16:00 »
Para lo de los PWM, en la página de los PIC, busca los que tengan "Motor control" como capacidad especial, y despues en la tabla que sale pone que muestre todas las características, y ahi podrás ver la cantidad de pwm que tiene cada chip.

Aparte algunos pic de esa serie tienen un "kernel" que permite analizar y controlar los motores paso a paso basados en la información del encoder que les llega de vuelta.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Eficacia con el PWM por software....
« Respuesta #9 en: 25 de Abril de 2005, 05:57:00 »
Gracias Cristian, a un que no hice mencion es un tema que estoy mirando y mi intencion es hacer el desarrollo con uno o dos pic de estos que comentas...
pero por el momento estoy limitado a trabajar con la serie 16Fxxx... y por otro lado también tengo curiosidad por saber cuanto se le puede exigir a esta pastilla...

Saludos desde Granada, España.

Desconectado marmatar

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1220
    • MSTools
RE: Eficacia con el PWM por software....
« Respuesta #10 en: 25 de Abril de 2005, 17:22:00 »
Por ahí he visto un control de 16 servos con un 16F877A por puerto serie, con un soft para PC que permite usar controles gráficos.

No recuerdo donde pero lo busqué en la web, no es éste , pero quizás te pueda servir.

http://shark.sssup.it/contrib/servo/servo.html

Un abrazo...
marmatar

Lo posible ya está hecho, entonces hagamos lo imposible - Platón

Desconectado angelmoi123

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 298
    • Construccion de Maquinas CNC
RE: Eficacia con el PWM por software....
« Respuesta #11 en: 26 de Abril de 2005, 06:04:00 »
SALUDOS

AMIGO MARMATAR, ME GUSTARIA SABER SI PUEDES SEGUIR BUSCANDO EL CONTROLADOR DE SERVOS QUE MENCIONAS PARA EL 16F877. EL QUE TU MENCIONAS YA LO TENGO Y NO SE ADAPTA A LO QUE ESTOY BUSCANDO.
MUCHO SABRIA AGRADECERTE SI LO ENCUENTRAS.

aneglmoi123

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Eficacia con el PWM por software....
« Respuesta #12 en: 27 de Abril de 2005, 18:32:00 »
Gracias Marmatar




Un abrazo
Saludos desde Granada, España.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Eficacia con el PWM por software....
« Respuesta #13 en: 08 de Mayo de 2005, 14:01:00 »
He estado mirando y yo trabajo con un 16F877, y con el modulo CCP para PWM y un cristal de 4 Mhz, con lo que yo entiendo (un preescaler de 1/16) no consigo hacer periodos de trabajo tan grande para manejar un servo (el cual trabaja con una frecuencia de 50 hz - T=20ms-). Ano ser que se puede usar el postcaler tb para este modulo de lo cual no he encontrado nada al respecto.

Gracias por anticipado
Si juegas contra el mejor, pierdes como los demás.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Eficacia con el PWM por software....
« Respuesta #14 en: 08 de Mayo de 2005, 15:16:00 »
Este hilo viene de la imposibilidad de utilizar el modulo ccp -> pwm para controlar servomotores con un cristal a 20Mhz, todas la referencias en este hilo se refieren al control de servos por software, sin embargo a 4 Mhz si se podría como indica el amigo Pocher... gracias Pocher de nuevo por tu colaboración...

El amigo Pocher nos escribió:

-------------------------------------------------------



RE: Proyecto ROBOT

Espero no equivocarme:
El periodo máximo que admite el pwm del PIC es de 4,096ms, lo que implica una frecuencia mínima de 244Hz.

Si lo que quieres es generar un pwm mediante el módulo hardware CCP para un servo pués no hay problema puesto que este podrá variar entre 1ms y 2ms el resto del tiempo está a 0, hasta completar los 20ms de la frecuencia (f=50Hz)

Un saludo

PD. Los números anteriores son para una fosc=4MHz, para fosc=20MHz el Tmax=819,2us que no dá para controlar al servo.

Fórmula: Tmax=(255+1) · 4 · (1/fosc) · 16


-------------------------------------------------------------

http://miarroba.com/foros/ver.php?foroid=58732&temaid=3282955&pag=5
Saludos desde Granada, España.


 

anything