TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Axel_18 en 21 de Mayo de 2006, 19:58:21
-
he estado tratando de hacer que varie el ciclo activo en pic pero lo unico que consigo esque , al aumentarle el siclo activo solo aparecen mas siclos en HIgh y que a la medida que aparecen mas se van uniendo y haciendo pulsos mas largos,pero No puedo consegir que solo a un pulso, aumentarle su ciclo activo,
¿puedo controlar un motor de tres fases con el PWM del pic16f84a?
saludos
-
Hola Axel_18, lamento informarte que el 16F84A no posee PWM por lo que no podras controlar un motor brushless, aparte este tipo de motores necesita de 3 fases para ser controlado, o sea 3 PWM, por lo que solo con 1 no haras gran cosa.
Un saludo.
Atte. CARLOS.
-
que pic me recomendarias para trabajar con un brushless?? y otra cosa los 3 pwm tienen que estar defasado 120º para poder controlar el brushless y si es asi, estos serial las fases pero, puedo contolar un brushless sin un pwm, me explico utilizando un P.H. y sincronizando los pulsos en la gate de los transistores ???
por ejemplo
t1 t2 t3 t4 t5 t6
1 0 0 1 0 0
1 0 0 0 0 1
0 1 1 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 0 1 0 1 0
esto seria correaspondiente a la imagen
saludos
-
Hola Axel_18, te suguiero que rebises un poco el foro, lo que me preguntas ya esta todo respondido, por ejemplo aca tienes un link:
http://www.todopic.com.ar/foros/index.php?topic=11836.0
Un saludo.
Atte. CARLOS.
-
grax chaly29 pero no encuentro en ningunaparte que`pic puedo utlizar para generar un pWM
un saludo :-) :-)
-
Hola Axel_18, puedes usar un 16F628A que anda muy bien para este caso, yo es usado este y no tube grandes problemas.
Un saludo.
Atte. CARLOS.
-
el unico que posee 3 PWM implementados en su hardware es el 16f777.
yo implementé sobre un 16f84 un PWM para pilotear un lampara, pero nunca con tres sobre el mismo micro.
Suerte.
-
holaa
estuve provando el pic 16f628a en el proteus y la verdad obtuvelos mismos resultados que con el pic 16f84a.
lo programe en basic utilizando el PWm, claro esta
un saludo
este es el codigo
x var word
inicio:
if portb.5=1 then
pause 100
x=(x+10)
endif
pwm portb.3,x,10
goto inicio
-
Dudo que puedan controlar 3 PWM con basic o C, yo e controlado 9 PWM independientes pero con .asm.
Un saludo.
Atte. CARLOS.
-
Dudo que puedan controlar 3 PWM con basic o C, yo e controlado 9 PWM independientes pero con .asm.
Un saludo.
Atte. CARLOS.
Creo que es posible manejar tantos PWM como uno quiera siempre y cuando la precisión no sea el primer punto.
No importa si es C o ensamblador, se puede hacer con ambos solo que en ensamlador (sobre todo en los 16F) como se es más directo uno aprovecha mucho mas los ciclos de reloj y puede obtener mas frecuencia de PWM funcionando a menos MHz.
Ejemplo
Cada PWM tendrá 3 variables.
PWMxCiclos --> contador de la cantidad de ciclos que pasaron desde que comenzó de nuevo el PWM
PWMxPreriodo --> cantidad de ciclos que dura el PWM
PWMxCicloActivo --> cantidad de ciclos que dura el PWM en alto.
Donde periodo y ciclo activo sean por ejemplo variables de 8 bits y donde CicloActivo sea <= a Periodo (porque cicloactivo no está expresado en procentaje sino en ciclos de instrucción).
Luego
1) Usar una interrupción con un timer, fijado por ejemplo en 500us
2) Al llegar ese tiempo se enciende un flag de otra variable
3) Ese flag de la variable es el encargado de incrementar todos los contadores PWMxCiclos de los PWM.
4) Se verifica si PWMxCiclos >= PWMxPeriodo en cuyo caso se pondra en 0 el contador y en Activo la SALIDA y sigue con el PWM siguiente, sino va a 5)
5) Se verifica si PWMxCiclos es > PWMxCicloActivo si es así lo pone en BAJO la salida por terminar el duty cycle
De esa forma se pueden tener un PWM por cada pin que se tenga en el PIC, pero por supuesto como dije antes a mas PWM menor será la frecuencia final que se podrá obtener y además la aplicación está prácticamente dedicada a esto.
Saludos
-
Hola maunix, aparte de la presicion tambien esta el problema de la frecuencia que se puede alcanzar, para darte una idea con 9 PWM en .asm y en cristal de 4Mhz solo se puede alcanzar una frecuencia maxima de alrededor de 100Hz para una resolucion de 8 bit, por lo tanto si esto mismo lo hacemos en C creo que esa frecuencia se veria reducida notablemente y habria que ver si ya es de utilidad para el proyecto deseado.
Un saludo.
Atte. CARLOS.
-
Hola maunix, aparte de la presicion tambien esta el problema de la frecuencia que se puede alcanzar, para darte una idea con 9 PWM en .asm y en cristal de 4Mhz solo se puede alcanzar una frecuencia maxima de alrededor de 100Hz para una resolucion de 8 bit, por lo tanto si esto mismo lo hacemos en C creo que esa frecuencia se veria reducida notablemente y habria que ver si ya es de utilidad para el proyecto deseado.
Carlos es así, tal cual como tú lo dices y yo no he dicho nada en contrario.
Tal vez leíste mi post velozmente, pero fíjate mis frases anteriores.
No importa si es C o ensamblador, se puede hacer con ambos solo que en ensamlador (sobre todo en los 16F) como se es más directo uno aprovecha mucho mas los ciclos de reloj y puede obtener mas frecuencia de PWM funcionando a menos MHz.
y luego
De esa forma se pueden tener un PWM por cada pin que se tenga en el PIC, pero por supuesto como dije antes a mas PWM menor será la frecuencia final que se podrá obtener y además la aplicación está prácticamente dedicada a esto.
Como ves estoy totalmente de acuerdo contigo.
Saludos
-
Hola maunix, y perdona tienes razon, no se que e leido.
Un saludo.
Atte. CARLOS.
-
Hola maunix, y perdona tienes razon, no se que e leido.
Un saludo.
Atte. CARLOS.
No Problem, saludos :) :) :) :)