Estabilizar salida pwm amplificada arduino

Buenas tardes, estoy trabajando en un proyecto con arduino y tengo un problema que me trae de cabeza, posiblemente la solución sea sencilla pero no consigo encontrarla. Trato de automatizar el control de un motor DC que controla una aplicación.

Las rpm de este motor se controlan mediante la tensión aplicada desde 0 a 24V (la intensidad que consume es del orden de 15-20 mA). He amplificado la salida pwm de arduino mediante un operacional LM324 en modo no inversor.

Hasta aquí no tengo problemas. El problema reside que las variaciones de tensión que alimentan el motor de DC deben ser muy estables y mínimas (24v/256 valores de pwm = 0.1V). La aplicación que controla el motor de DC es muy sensible a estas mínimas variaciones de tensión. Pues bien, a la salida del operacional no mantengo una tensión estable cuando conecto la carga (motor), esta tensión fluctúa unos 0.3V aproximadamente, por lo que mi aplicación se vuelve incontrolable.

¿Sabéis como podría estabilizar esta salida pwm amplificada? Cabe decir que desde el pc voy a estar cambiando constantemente el valor de la señal pwm, es decir a veces necesitaré que las rpm del motor aumenten y otras necesitaré que disminuya. Resumiendo, tengo una salida pwm de arduino amplificada variable que es inestable (del orden de 0.3V).

He probado a conectar un condensador a la salida de la señal amplificada para intentar compensar estas variaciones, pero no ha surgido efecto. Para una tensión teórica de salida de 7,50v obtengo un valor de 7,2V - 7,6V fluctuando constantemente.

Espero vuestra ayuda. Gracias por adelantado.
 
uy, estas conectando el motor directo a la salida del LM324? Espero que no.
Revisa circuitos con el L298, puedes controlar el sentido de giro del motor y la velocidad la controlas introduciendo el pwm a su pin Enable.
 
Hola! Pregunto... el motor lo controlas por PWM o por tension?

pregunto porque al motor lo podrias controlar directamente con un mosfet y 2 resistencias... hay muchos circuitos en la web...

A la tarde te paso algunos ejemplos y te comento mis experiencias!
 
Te recomiendo lo mismo, si estas usando el PWM ¿por qué no hacerlo completamente digital? así se calienta menos el sistema de control y tienes mayor eficiencia energética, solo sería cosa de emplear un transistor (y respectivo diodo shunt) en la salida PWM para controlar directamente el motor a 24V, los motores son cargas inductivas y por lo tanto su respuesta no es inmediata, puede amortiguarse el efecto de la conmutación y tener un control más suave sin necesitar un circuito complejo.
 
Ni siquiera... con un IRFZ44N no necesitas mas... ya tiene diodo incorporado...

El problema que estas teniendo es la Ley de Ohm... al bajar el voltaje del motor aumenta la corriente... quiza con el pwm al 100% el motor anda... pero al bajar unos puntos (baja el voltaje) el motor pide mas corriente y al 324 no le da para entregar esa corriente... por eso fluctua el voltaje
 
En primer lugar muchas gracias por vuestras rápidas respuestas.

La opción de utilizar un transistor bipolar o un mosfet la estaba barajando pero no estaba seguro, ya que tendría que diseñar un circuito que fuera capaz de controlar la tensión entre base o puerta del transistor y su correspondiente tensión entre emisor y masa que es donde conectaría la carga, en este caso el motor con una variación de 0.1V. Debería de ser un circuto bas tante siemple, con una resistencia de base y dos en colector y emisor, pero en este caso creo que también podría fluctuar.

Por otra parte, y perdonad mi ignorancia, no logro entender por que no funciona con el amplificador operacional. Al fin y al cabo el motor no consume más de 20mA (y el lm324 da hasta 40 mA), entiendo que no debería de tener problema en suministrarle la corriente que demanda por ley de ohm.
 
Al mosfet lo usas de llave... no pienses en el voltaje ya que el motor recibe siempre 24V

Lo que no llego a entender es que motor puede solo consumir 20mA... uno muy pequeño?
 
No me debido explicar bien.

Al motor no le llegan siempre 24v, ojala fuera así y todo sería más fácil. Al motor le llega la salida pwm amplificada (rango de 0 a 24V), de esta manera controlo su velocidad, y en función de esta velocidad el equipo del que es parte el motor se comporta de una manera u otra.

Es decir, a veces al motor le llegarán 8V y girará más despacio que cuando le lleguen 20V. Como las salidas de arduino son todas continuas y de 5V, pues utilice la salida pwm (posteriormente amplificada) para controlar su velocidad por tensión.

Conecté un amperímetro para medir que corriente demanda el motor y no demanda mas de 20mA. El motor es pequeñito, el problema básico es que para que pueda controlar mi aplicación el motor debe tener una velocidad uniforme sin casi la mas mínima variación, para ellos la tensión debe ser muy estable. Ahora mismo puedo controlar perfectamente la velocidad del motor, pero estas fluctuaciones evitan que el equipo del que forma parte sea tan preciso como debe.

Es un poco difícil de explicar, espero me hayais entendido.
 
El aparato en si consta de una entrada de 24V que alimenta el motor. En función de un potenciómetro puedes ajustar la tensión que le llega al motor. Ademas dispone de una salida para conectar un polímetro y así puedes ver la tensión que le llega al motor.

Pues bien, ajustando el potenciómetro la tensión que le llega al motor lógicamente cambia, pero no fluctúa en absoluto.

Todo este "rollo" de arduino y demás es simplemente para controlar mi aparato mediante el pc, pero si mediante un potenciómetro se puede conseguir una tensión estable sin fluctuaciones, debe de haber alguna forma de hacerlo digitalmente mediante arduino. He aquí mi dilema de como hacerlo.

Evidentemente, cuando conecto arduino, los potenciómetros se encuentran al máximo de su grado de giro para que puedan permitir la entrada total de los 24V si se diera el caso.
 
Última edición:
hola yo creo que el error esta en que el operacional ., genera a su salida +10v y-10v ., la señal PWM de ardunino de pico +5v ., alli esta el problema ., o sea estas demuxtiplesando la señal
demux.gif
lo bueno y sano par todos es que pongas unas imagenes y planos​
de lo que realmente has armamado ., no de lo teorico​
aparte la interfaz para controlar un motor dc con la sencibilidad que tu quieres ., es otra cosa ., no es tan simple​
 
Me refiero a que aún con un tensión absolutamente constante , la velocidad cambia con la carga :( en un motor dc y más en esos chiquitos de 20 mA
 
Pues la velocidad del motor debe ser muy precisa, ya que si no lo es el equipo no es preciso y no funciona. Haciéndolo de manera manual con los potenciómetros el equipo funciona perfectamente. De todas formas os paso un esquema de lo que he montado, aver si asi os resulta más claro.

PD: No escribo esto para molestar a nadie, si digo algo que no entendéis o que es ilógico me lo decís e intento corregirlo, no pretendo que nadie que pretende ayudarme se enfade o tome a mal alguno de mis comentarios :)
 
Este es el circuito que tengo montado. Es bastante simple y habrá que realizare correcciones, pero ahora mismo es lo que tengo.

El motor, como ya os comentaba, es parte de un equipo y se conectaba directamente a 24V (como ya comente la tensión que le llega directamente al motor se regula mediante un potenciómetro), por lo que internamente debe tener su diodo en antiparalelo para compensar la fuerza electromotriz y demás.



Mi aplicación es un equipo de física. Consiste en un motor que mediante su giro excita un muelle, este muelle a su vez esta conectado a un disco de cobre que oscila en función de la excitación del muelle que controla el motor. En definitiva el disco de cobre no es mas que un péndulo, de tal manera que cuando logras excitarlo a su frecuencia de resonancia se produce la oscilación mas grande.
 

Adjuntos

  • Circuito.jpg
    Circuito.jpg
    21.8 KB · Visitas: 40
Última edición:
hola .,
siguen habiendo dudas .,(mias claro).,​
¿¿¿¿ con cuanto voltaje alimentas el operacional ????​
ademas tu esquema no dice nada ¿¿¿ y las fotos de lo que realmente es ??? ¿¿¿¿ te fijaste el esquema que subi en el mensaje anterior ????​
 
Entonces la oscilación es perfectamente normal, no estás usando un valor análogo, estas haciendo justamente el empleo del PWM digital, lo que te sugeríamos que hicieras con el transistor, pero hay que considerar que la función analogWrite de Arduino no es muy precisa, solo tienes 8 bits y la resolución no es muy buena, ¿Qué Arduino usas?

Lo de los valores análogos no los obtienes así directamente, te pusieron un esquema más arriba, primero hay que filtrar la salida PWM para tener un aproximado análogo y eso sería lo que amplificas.
 
Pues el operacional lo tengo alimentado a 24V (terminales de masa y 24V, nada de +24 y -24), tiene un rango de 0 a 32V.

Lamentablemente no tengo el equipo delante ahora mismo y no puedo hacerle fotos.

Estaba mirando tu circuito ahora mismo, pero de momento no logro entenderlo del todo bien. Además, sigo sin comprender porqué mi montaje falla, quiero averiguarlo ya por cabezonería personal.

Estoy usando el arduino uno, que tengo entendido que es el más simple. OK, voy a ponerme con el circuito a ver si consigo entenderlo del todo.
 
Insisto... un transistor de baja potencia usolucionaria el asunto... un 2n2222 por ejemplo...

Lo que si... el pwm de arduino tiene poca resolucion como comentan mas arriba
 
He mirado el circuito, y entiendo que para el rango de tensión de salia sea de 0 a 24 en lugar de 0 a 10 bastaría con cambiar los valores de R2 y R3. ¿Estoy en lo cierto?



No entiendo bien lo que comentáis de la resolución (perdonad de nuevo mi ignorancia). En teoría, con 8 bits tendría 256 valores distintos. Esto para un rango de 24V supondría que 24/256 = 0.09, es decir, debería obtener variaciones de 0.1V aproximadamente por cada incremento en arduino.
 
Última edición:
Atrás
Arriba