Autor Tema: Problema con PWM  (Leído 3765 veces)

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

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
Problema con PWM
« en: 29 de Septiembre de 2005, 02:58:00 »
Hola, tengo un problema con el mandato PWM, lo que me ocurre es que con el mandato PWM controlo 1 motor y le indico:

pwm portb.0, 255, 1 ( 255 es la velocidad maximo ó voltaje maximo para el motor )
                                 ( 1 es un pulso )

La cuestion es que el motor va a toda velocidad...perfecto!, pero si le voy añadiendo motores hasta los 4 que necesito repitiendo la misma operacion:

pwm portb.0, 255, 1
pwm portb.2, 255, 1
pwm portb.4, 255, 1
pwm portb.6, 255, 1

La velocidad de los 4 motores se han reducido a casi el 50%.... Enfurruñado de verdad no lo entiendo, estas son las caracteristicas de la placa y motores:

Pic 16F877A
Cristal a 4 Mhz
Compilador PicBasic Pro 2.45

Controlador de Motores L298N ( controla 2 motores )
( muy parecido al L293N pero este soporta hasta 4 amperios )

Motores DC con reductora interna a 12 Voltios

Y lo mas raro de todo, es que si utilizo el mandato high, low de la siguiente manera:

high portb.0
high portb.2
high portb.4
high portb.6

Los 4 motores van a toda velocidad !!, como deberian de ir con el PWM, pero claro con el mandato high y low van sin control, ya que si le pongo una pausa entre el high y el low de por ejemplo 1 ms.... se relentizan igualmente como con el pwm.

Enfurruñado

Puede ser problema de la velocidad de proceso de 4 mhz ??

Se podria solucionar si cambio el cristal por uno de 20 mhz ??

Agradezco cualquier comentario ó ayuda Giño Sonrisa

Slds!
Zero13
www.zerobots.net






Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Problema con PWM
« Respuesta #1 en: 29 de Septiembre de 2005, 08:38:00 »
yo estoy trabajando en una controladora para control de motores y utilizo 20Mhz, el problema esta en que cada vez que añades un motor compartes los recursos, y llega un momento que fallan los tiempos porque el micro ya no puede atender suficiente mente rapido a los motores . La forma en que yo lo hago es mediante una rutina propias que es mas efectiva que utilizar la del lenguaje de programacion…. Pero subiendo la frecuencia seguro que vuelve a funcionar con unos cuantos motores mas.
Saludos desde Granada, España.

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
RE: Problema con PWM
« Respuesta #2 en: 29 de Septiembre de 2005, 08:55:00 »
Gracias dogflu66 por tu valiosa informacion! Giño

Esta misma noche lo pruebo y te cuento.

Por cierto, configuras de alguna manera especial en PicBasic el cristal:

@ device ......

HS ( High Speed ) ??

Slds!
Zero13
www.zerobots.net

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Problema con PWM
« Respuesta #3 en: 29 de Septiembre de 2005, 09:47:00 »
Lo siento pero en la version de basic que utilizo no se configuran los fuses en el editor.
Saludos desde Granada, España.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Problema con PWM
« Respuesta #4 en: 29 de Septiembre de 2005, 09:50:00 »
Hola:

No se si es a esto a lo que te refieres

DEFINE OSC 20

PAra que el micro funcione con un cristal de 20Mhz.

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
RE: Problema con PWM
« Respuesta #5 en: 29 de Septiembre de 2005, 10:00:00 »
jejeje Giño no, me referia a esto:

@ DEVICE HS_OSC

Con este comando puedo activar que la grabacion y el cristal funcione en modo High Speed....hay muchos mas comandos por ejemplo CP ( proteccion del micro )...etc. Sonrisa

Estoy deseando probarlo....el Robot que tengo en la Web el ZeroNet utiliza un cristal de 20 Mhz y la linea que comentas....ya lo conocia.

Sonrisa

Slds!
Zero13
www.zerobots.net

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Problema con PWM
« Respuesta #6 en: 29 de Septiembre de 2005, 10:16:00 »
Bueno, si te refieres a como ajusto la rutina de control lo hago colocando un frecuencimetro en los pin concretos, mido que la frecuencia es la que yo quiero, y si no lo es añado o quito delays a la rutina de control hasta que queda total mente calibrada.
Saludos desde Granada, España.

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
RE: Problema con PWM
« Respuesta #7 en: 29 de Septiembre de 2005, 17:00:00 »
Hola dogflu66, he cambiado el cristal y lo he puesto de 20 mhz, definiendo:

define osc 20

Y nada...sigue igual de lento...y la cosa se relentiza mas todavia si activo la pantalla de LCD para ver la distancias de los ultrasonidos... Enfurruñado

Teniendo en cuenta que mi micro es un 16F877A ó un 16F874A y que va a 20 Mhz, como deberia configurar el PWM para que fuera al maximo de velocidad ??

Ya que por defecto con ( PWM portb.0, 255, 1 ) sigue igual de lento a 20 Mhz.

Como ajusto la frecuencia de la que hablan en la ayuda sobre PWM ??


The Cycle time of PWM is dependent upon the oscillator frequency. If a 4MHz oscillator is used, each Cycle would be about 5ms long.

"Dice algo asi: El tiempo de ciclo de PWM depende de la frecuencia del oscilador. If usamos un oscilador de 4 Mhz, el Ciclo debe estar sobre 5 ms de duracion"

If a 20MHz oscillator is used, each Cycle would be about 1ms in length. Defining an OSC value has no effect on PWM.

Si el oscilador que usamos es de 20 Mhz, el Ciclo debe estar sobre 1 ms de duracion. Definir el valor OSC no tiene efecto sobre PWM



Donde indico ese 1 ms en el mando PWM ó fuera como una pausa ??

Alguna idea?

Gracias.
Slds!
Zero13
www.zerobots.net

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
RE: Problema con PWM
« Respuesta #8 en: 29 de Septiembre de 2005, 17:44:00 »
Pues, lo que describes demuestra que el micro va mas rapido el problema es ajustar el pwm. y si el display afecta es por que el lenguaje no te esta dando maxima prioridad al pwm, y esto es otro problema….. haber si alguien del subforo que tenga experiencia con este lenguaje te puede echar una mano.
Saludos desde Granada, España.

Desconectado gemur3x

  • PIC10
  • *
  • Mensajes: 8
RE: Problema con PWM
« Respuesta #9 en: 29 de Septiembre de 2005, 18:11:00 »
El problema que tienes es que si haces

ciclo:
   pwm portB.0, 255, 1
goto ciclo

envias un tren de pulsos, supongamos que el tren es

111110111110111110.....donde los 1 indican el estado alto y los ceros el bajo.

Si haces
 
ciclo:
   pwm portB.0, 255, 1
   pwm portB.1, 255, 1
goto ciclo

el segundo pwm será como una pausa para el primero, y ambos motores andarán a una velocidad menor. El tren de pulsos en el pin 0 será

111110000000111110000000111110000000....

y en el pin 1

000000111110000000111110000000111110....

y si agremas mas pwm disminuirás aun mas la velocidad

111110000000000000000000111110000000000000000000....

Una solución entre tantas

w var byte
ciclo:
   portb.0=1
   portb.1=1
   portb.2=1
   pauseus w
   portb.0=0
   portb.1=0
   portb.2=0
   pauseus (100-w)
goto ciclo

donde la velocidad va de 0 a 100

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
RE: Problema con PWM
« Respuesta #10 en: 29 de Septiembre de 2005, 18:15:00 »
Muchas Gracias gemur3x Sonrisa

...mas claro imposible Giño voy a probarlo y te cuento.

Slds!
Zero13
www.zerobots.net

Desconectado Zero13

  • PIC12
  • **
  • Mensajes: 66
RE: Problema con PWM
« Respuesta #11 en: 30 de Septiembre de 2005, 06:10:00 »
Bueno, al final triunfe! Muchas risas y el mandato no fue precisamente el PWM, aunque he mirado de hacer una combinacion entre High/Low y PWM Giño

Al final lo consegui con High/Low de la siguiente manera:

high portc.1:high portc.3:high portc.5:high portc.7
pause 40  " es el tiempo que me va mejor en cuestion de velocidad de los motores
low portc.1:low portc.3:low portc.5:low portc.7
pause 1

Esto seria un pulso a los 4 motores simultaneamente y lo he probado tambien con 4 mhz como oscilacion y va igual de rapido, no he notado diferencia entre el de 20 y este de 4 mhz.

Agradeceros a todos vuestra ideas para el problema. Sonrisa

Gracias gemur3x por tu claro punto de vista del problema y su solucion. Giño

Slds!
Zero13
www.zerobots.net