1 votos

Convierte la señal PWM de 1kHz en 0-10V DC con un rizado mínimo

Para mi aplicación, quiero controlar la posición de una válvula que toma una tensión de entrada de 0-10V. Para la determinación de la posición necesito utilizar una señal PWM digital de 5V y 1kHz de un Arduino Nano. ¿Cuál es la mejor manera de convertir la señal PWM de 5V a 0-10V DC?

He pensado en un filtro de paso bajo y un OpAmp con ganancia 2, sin embargo, la tensión continua debe cambiar en <1,0s (mejor <0,5s) después de un paso de resolución del PWM (que tiene 8 bits). Por otro lado, la tensión continua también debe ser lo más estable posible durante tiempos mayores (>1s) una vez alcanzado su valor nominal. No estoy seguro de que ambos requisitos puedan cumplirse con un filtro de paso bajo.

La otra opción que he pensado es un PWM-DAC y un OpAmp. ¿Qué tengo que buscar ahí?

1voto

Aaron Puntos 49

Hay múltiples maneras de despellejar a este gato. He utilizado un filtro de paso bajo de doble polo ajustado a unos 600Hz con el PWM ajustado a 10kHz. Logramos 0-10V con pasos de 10mV con esa configuración.

O puedes conseguir un chip DAC que también lo hará. El chip DAC tendrá menos piezas y mejor precisión con piezas simples, pero costará un poco más de $.

El método del filtro requerirá unas cuantas resistencias de 0,1% para asegurarse de que no hay desviaciones de una placa a otra.

0voto

TonyM Puntos 41

Podrías usar un microcontrolador barato de 8 o 16 pines con un DAC interno, manejando un circuito de op-amp de doblaje de voltaje. Puedes encontrar un microcontrolador con un oscilador interno.

El microcontrolador puede medir el ancho de pulso de la señal PWM por software o mediante un temporizador interno. Su software general será capaz de permitir las inexactitudes del reloj del microcontrolador.

El microcontrolador puede costar menos de un euro, pero el coste de escribir y dar soporte al software puede ser muy elevado, dependiendo del sector y de la situación.

Si su aplicación lo permite, puede utilizar el único bit de salida de su Arduino como una transmisión de datos UART (TXD) en lugar de una salida PWM y enviar al microcontrolador un valor de byte de datos.

0voto

Spehro Pefhany Puntos 90994

Para un rizado mínimo, utiliza un microcontrolador con un temporizador/contador decente, cronometra el ciclo PWM y el tiempo de encendido, calcula el porcentaje y luego utiliza un DAC (probablemente externo) para generar el 0-10V.

O bien obviar todo eso y simplemente controlar el DAC directamente con el Arduino.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X