Supongamos que tenemos una señal PWM que controla la velocidad de un motor y un pin digital que especifica en qué dirección se desplaza un motor, ¿cómo podemos convertir estas señales en una señal de 1 +/- 10 V donde <0 es inversa y >0 es directa? viajar.
Aprecio que habrá varias formas de implementar esto, pero sería bueno considerar diferentes métodos
Algo como esto debería funcionar bien. Las piezas son solo un ejemplo, la optimización requerirá más trabajo (e información).
simular este circuito : esquema creado con CircuitLab
Editar:
Me han pedido un análisis del amplificador (ganancia = +2 para interruptor cerrado, -2 para interruptor abierto).
Primero observe que las entradas del amplificador operacional siempre están en Vin/2 en equilibrio debido a R3/R5.
(Tenga en cuenta también que siempre son positivos ya que Vin varía de 0 V a 5 V, por lo que M1 siempre ve un voltaje positivo en el drenaje: 0 a 2,5 V para 0 a 5 V de entrada)
Interruptor M1 abierto (apagado), tenemos corriente (Vin - Vin/2)/R2 fluyendo a través de R2, entonces - (Vout - Vin/2)/R1 debe estar fluyendo a través de R1, usando KCL.
Resuelva para Vout/Vin = 1/2 - R1/(2*R2) = -2.00 para R1 = 5*R2
Con el interruptor cerrado (asumir M1 = 0 ) tenemos un término agregado y usando KCL nuevamente, el resultado es:
Vin/(2*R2) - Vin/(2*R4) + (Vsal -Vin/2)/R1 =0
Resuelva para Vout/Vin = 1/2 +R1/(2*R4) - R1/(2*R2) = +2.00 para R1 = 5*R2 R4 = (25/40) * R2.
Puedo ver un esquema analógico allí, lo cual es genial, pero una cosa me molesta. Si tiene una señal de dirección en el sistema, ¿está seguro de que PWM se usa para modular realmente la velocidad/posición/voltaje, o se usa para generar frecuencia? He visto varios sistemas en los que la gente controlaba motores paso a paso con señal de dirección y señal PWM, que se usaba para la señal de paso. ¡Esto está mal! Sin embargo, la gente lo hace.
De hecho, la pregunta sugiere que en ciertos sistemas se reemplazó un controlador de pulso/dirección con un controlador analógico, y se requiere algún tipo de interfaz para volver a unir las cosas.
Si este es el caso, ningún circuito analógico ayudará. Debido a que la información no es compatible, los pulsos son de posición, mientras que el comando analógico es actual (bueno, normalmente, no siempre). Y si este es el caso, necesita un dispositivo digital, FPGA o microcontrolador, que capture los pulsos y calcule el valor del comando actual en consecuencia. De hecho, es una de las características de los servoaccionamientos modernos. Probablemente tendrá que cerrar el ciclo; de lo contrario, los errores se acumularán rápidamente. Entonces, en resumen, si este es el caso, reconsidere el sistema.
Aquí hay una solución de IC único que lo acerca bastante:
Si necesita ajustar el circuito manualmente, le sugiero que cortocircuite R5 para hacer un seguidor de voltaje y ajuste R4 hasta que un ciclo de trabajo del 50% proporcione un voltaje de salida de 0V.
También podemos usar algunas matemáticas para encontrar las relaciones de nuestros circuitos. En este circuito, ajustar R4 es realmente ajustar el divisor de voltaje de R1 y R4 para que
Asumiendo V1= 3,3 V y V neg = 10 V:
Una vez que haya ajustado su compensación, comience a ajustar R5 hasta que el ciclo de trabajo del 100 % obtenga 10 V y el ciclo de trabajo del 0 % obtenga -10 V. Nuevamente, debería poder calcular este paso:
Donde 'G' es la ganancia del circuito opamp y V in,max es el voltaje máximo en V + (o el PWM al 100% del ciclo de trabajo). En un amplificador inversor,
A partir de este punto, debería poder usar la sustitución y llegar a valores adecuados para R5 y R6.
Como muestran algunos de los comentarios, necesitamos un poco más de información. Asumiré aquí que está utilizando microcontroladores y que tanto su PWM como sus pines de salida digital están funcionando a 0-3.3V. Aquí está la lógica digital que primero está tratando de implementar:
PWM DIR | Salida
1 0 | 1 (dirección de avance)
0 0 | 0 (Adelante)
1 1 | 0 (Reversa)
0 1 | 1 (Reversa)
Esto representa la lógica XOR. Entonces, la forma más fácil de implementar esto sería usar un IC XOR simple y un cambiador de nivel. Realmente no es muy necesario un filtro de paso bajo si está impulsando un motor, ya que las bobinas del motor actuarán como un filtro de paso bajo.
stefandz
Eugenio Sh.
Marko Bursic
Transistor