¿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.
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 Astable le brinda una frecuencia PWM variable y también permite un ciclo de trabajo ajustable (ecuaciones de tiempo alto y tiempo 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 de mi respuesta en comparación con otras 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 de comparación/onda triangular común. No veo mucho sentido en construir un generador de ondas triangulares (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 necesitas. Ojalá la gente no los odiara tanto.
Onda triangular. Comparador. Umbral de control. Esa es la forma básica de hacerlo.
Sin embargo, si desea controlar un servo de hobby, esta no es la mejor manera. El ciclo de trabajo varía entre el 5 % y el 10 % (ancho de pulso de 1 ms a 2 ms en un período de 20 ms), que es corto y lo más probable es que desee controlarlo con cierta precisión. En un 5V triángulo hay que variar el umbral del comparador entre 4,5V y 4,75V. Cualquier desviación y no podrá controlar el servo en todo su rango. Eso requiere componentes de precisión. Además, el generador de ondas triangulares necesita 2 amplificadores operacionales, y luego está el comparador. Hay una mejor manera.
Primero genere una onda cuadrada de 50Hz. La forma más sencilla:
Para el 74HC1G14 a 250k resistencia y un capacitor de 100nF le darán un período de 20ms.
Alimente la onda cuadrada en un MMV (multivibrador monoestable). Puede hacer esto con un LM555 o usar un dispositivo lógico como el 74HC123A . Si usa este último, el tiempo de pulso está definido por y :
Tiempo en s, R en k , y C en nF.
Para obtener un ancho de pulso que varíe entre 1 ms y 2 ms, use C = 100nF y R = 10k en serie con un 10k potómetro.
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 para un microcontrolador era complicado, pero hoy eso ya no es así. También puedes tener una interfaz de programación por unos pocos euros. Entonces, la solución parecería tan fácil que ninguna solución sin controlador puede competir con ella: 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 del ADC. ¡Eso es! 3 (tres) componentes. Convertir la lectura del ADC en 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 flexible que con otros circuitos integrados o componentes discretos.
una nota
De su otra pregunta, veo que usa microcontroladores. ¿Por qué quieres evitarlos aquí?
La forma Ye Olde Phashioned de hacer PWM con ciclo de trabajo controlado analógico es comparar la señal de control analógico 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 funcionaban según 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. Permitirles que sean un poco exponenciales puede simplificar el circuito.
Mark Rages señaló que cuando dice "servomotor", podría estar refiriéndose a los pequeños motores de pasatiempo controlados por posición que se usan 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 impulsar el motor. No se aplica a estos "servos de hobby". 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 deben ser de 1 a 2 ms repetidos cada 20 a 50 ms aproximadamente. Si esta pregunta es realmente sobre servos de hobby, entonces debería solucionarse para dejarlo claro.
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 a 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 escalando el voltaje de control en el comparador de modo que el voltaje de control que debería producir un ciclo de trabajo del 0,01 % se traducirá al voltaje más bajo de la onda cuadrada filtrada, y el voltaje de control que debería producir un ciclo de trabajo del 99,99 % se traducirá al voltaje más alto de la onda filtrada ola cuadrada. Esto producirá un ancho de pulso que no es del todo linealmente proporcional a la amplitud, pero es lo suficientemente cercano 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 pines con la serie UCx84x de controladores PWM. Si desea hacer un PWM fácil, puede usar el esquema anterior, omitiendo R1, el 2N2222 y el potenciómetro de ajuste ISENSE de 5k (solo ate el pin 3 a tierra). Probablemente también pueda omitir las dos resistencias de 4.7k en serie con el potenciómetro de ajuste de amplificador de error e ir directamente a Vref y Gnd, o usar un divisor de voltaje explícito si no es necesario el ajuste. (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).
olin lathrop
el fotón
nick johnson
yippie
stevenvh
olin lathrop
stevenvh
Wouter van Ooijen
stevenvh
Wouter van Ooijen
stevenvh
yippie