¿Cuál es la forma rápida y elegante de generar PWM sin un microcontrolador para controlar un servomotor? Con potenciómetro u otras formas de controlar el ciclo de trabajo con período fijo.
- perdón por el desastre, quiero controlar un servo hobby.
¿Cuál es la forma rápida y elegante de generar PWM sin un microcontrolador para controlar un servomotor? Con potenciómetro u otras formas de controlar el ciclo de trabajo con período fijo.
Respuestas:
Recomiendo el (GASP!) 555 Timer en modo "astable" . Encontrarás todo lo que necesitas en el enlace, ¡pero los copié aquí solo para ti!
El modo estable le brinda una frecuencia PWM variable y también permite un ciclo de trabajo ajustable (ecuaciones de tiempo alto y bajo en el enlace).
El circuito:
Nota: Agregaría una tapa electrolítica a través de Vcc (cable positivo) y GND (cable negativo) para reducir el efecto de las caídas en el voltaje de la fuente de alimentación.
La frecuencia PWM:
Alguna defensa para mi respuesta en comparación con otros en esta publicación. La mayoría de las otras respuestas requieren una forma de onda intermedia para generar una señal PWM variable, como el método común de onda triangular / comparador. No veo mucho sentido en construir un generador de onda triangular (un circuito significativo en sí mismo) solo como un paso intermedio para resolver su problema.
El 555 es un gran chip analógico y hace justo lo que necesita. Desearía que la gente no los odiara tanto.
La forma indicada por Ye Olde para hacer PWM con un ciclo de trabajo controlado analógico es comparar la señal de control analógica con una onda triangular. Haces un generador de ondas triangulares que funciona a la frecuencia PWM deseada. Esto se alimenta a la entrada negativa de un comparador y la señal de control analógica a la entrada positiva. El resultado es completamente alto o completamente bajo, pero el ciclo de trabajo es linealmente proporcional a la señal de control. Los primeros amplificadores de audio de clase D trabajaron en este principio, por ejemplo.
En muchos casos, el PWM no necesitaba ser súper lineal, por lo que la onda triangular no tiene que tener bordes perfectamente rectos. Permitir que sean un poco exponenciales puede simplificar el circuito.
Mark Rages señaló que cuando dices "servomotor", podrías estar refiriéndote a los pequeños motores de pasatiempo controlados por posición utilizados en modelos de aviones y similares. Mi respuesta se aplica al control de un motor, suponiendo que tenga un voltaje analógico proporcional a la fuerza con la que desea conducir el motor. No se aplica a estos "servos de pasatiempo". Esos no están controlados por PWM en el sentido común de ese término, sino por el ancho de los pulsos que generalmente necesitan ser de 1 a 2 ms repetidos cada 20 a 50 ms más o menos. Si esta pregunta es realmente acerca de los servos de hobby, entonces debe solucionarse para que quede claro.
Onda triangular Comparador. Umbral de control. Esa es la forma básica de hacerlo.
Primero genera una onda cuadrada de 50Hz. La forma más simple:
resistencia de y un condensador de 100nF le proporcionarán un período de 20 ms.
y C en nF.
potenciómetro de .
Podría haber hecho esto con dos LM555, pero necesitaría más componentes externos.
editar (sobre microcontroladores)
Estoy de acuerdo con Olin (ver comentarios) en que excluir un microcontrolador es miope (Olin dijo "tonto"). Hubo un tiempo en que desarrollar un microcontrolador era complicado, pero hoy ya no es cierto. También puede tener una interfaz de programación por unos pocos euros. La solución se vería tan fácil que ninguna solución sin controlador puede competir con ella: usted toma un ATTiny5 (Olin toma un PIC10F220) en un SOT23-6. Conecte un condensador de desacoplamiento a las conexiones de alimentación y el potenciómetro a la entrada ADC. ¡Eso es! 3 (tres) componentes. Convertir la lectura de ADC a una salida de ancho de pulso es tan fácil que es casi ridículo, incluso para un programador principiante.
Una vez que comience con ellos, encontrará que los microcontroladores a menudo ofrecen una solución más simple y más flexible que con otros circuitos integrados o componentes discretos.
una nota
de su otra pregunta que me parece que tú haces microcontroladores de uso. ¿Por qué quieres evitarlos aquí?
La forma más sencilla de generar una señal PWM es alimentar una onda de diente de sierra o una onda triangular en una entrada de un comparador analógico y un voltaje de control en la otra. Si no se puede obtener una onda triangular pura, se puede aproximar razonablemente una pasando una onda cuadrada a través de un filtro RC de modo que la salida del filtro oscile entre aproximadamente 1 / 4VDD y 3 / 4VDD, y luego escale el voltaje de control. en el comparador para que el voltaje de control que debe producir el ciclo de trabajo del 0.01% se traduzca al voltaje más bajo de la onda cuadrada filtrada, y el voltaje de control que debe producir el ciclo de trabajo del 99.99% se traduzca al voltaje más alto del filtrado ola cuadrada. Esto producirá un ancho de pulso que no es linealmente proporcional a la amplitud, pero está lo suficientemente cerca para muchos propósitos.
Recomiendo usar un IC de control de fuente de alimentación de bajo voltaje (BiCMOS) como el UCC3803 . La frecuencia de funcionamiento se puede configurar fácilmente con un simple R y C, y el control del ciclo de trabajo se realiza fácilmente con un potenciómetro. Funcionará en un carril de 5V.
El UCC3803 es compatible con clavijas con la serie UCx84x de controladores PWM. Si desea hacer PWM fácil, puede usar el esquema anterior, omitiendo R1, el potenciómetro de ajuste 2N2222 y 5k ISENSE (solo ate el pin 3 al suelo). Probablemente también puede omitir las dos resistencias de 4.7k en serie con el potenciómetro de ajuste del amplificador de error e ir directamente a Vref y Gnd, o usar un divisor de voltaje explícito si el ajuste no es necesario. (No especificó si necesita cambiar fácilmente el ciclo de trabajo).
El IC es capaz de conducir alrededor de 1A de corriente. (Si su servomotor tiene una entrada PWM, este es un punto discutible).