PWM ajustable electrónicamente con temporizador 555

Me gustaría crear un generador PWM con un temporizador 555 (como se sugiere aquí ), pero me gustaría poder ajustar el ciclo de trabajo con un microcontrolador. Simplemente usaría PWM del microcontrolador, pero necesito una alta frecuencia ya que conduzco motores y producen un tono con la frecuencia del PWM. Esto pasa a ser audible cuando se usa PWM desde el microcontrolador. (La frecuencia es solo 490Hz)

Tenga en cuenta que esta señal no accionará directamente el motor, ya que se alimentará a un controlador que acciona el motor.

¿Cuál sería la mejor manera de lograr esto?

¿Está conduciendo el motor directamente desde el PWM? Tenga en cuenta que necesitará un búfer y un diodo de retorno o corre el riesgo de destruir su 555.
@Felthry lo siento, olvidé mencionar que este PWM se alimentará a un controlador, por lo que no debería ser un problema. Actualizaré la pregunta.
¿Por qué no puede generar un PWM más rápido en su microcontrolador?
@jonk No estoy programando directamente el microcontrolador, ya que estoy usando Johnny-Five para controlarlo desde una Raspberry Pi. Lamentablemente, el firmware que se utiliza en el AVR (Firmata) no es compatible con PWM de alta frecuencia.
@jonk 490Hz es aproximadamente la frecuencia del pwm incorporado en la placa Arduino.
@Felthry Estoy seguro de que un Arduino es capaz de PWM de mayor frecuencia. ¿No usan dispositivos ATmega AVR? Esas cosas pueden hacer MUCHO más rápido, servicio de memoria.
@jonk 490Hz es lo que obtienes cuando usas la función analogWrite() en un Arduino no modificado.
@Felthry ¿Entonces es solo un problema de código de biblioteca? No uses la biblioteca. Escriba un código real .
@jonk por favor mira mi comentario anterior.
@JohnLeuenhagen Estoy confundido. Parece que Johnny-Five funciona con un RPi. ¿Hay un segundo micro sistema aquí? O solo el uno? ... Mejor aún, ¿por qué no DIAGRAMAS lo que tienes? Están saliendo fragmentos en los comentarios que deben estar claramente establecidos en la pregunta.
@jonk El RPi está conectado en serie al microcontrolador (USB en el caso de Arduino), y el RPi puede enviar mensajes en serie al AVR para hacer cualquier cosa que pueda programar para que haga un AVR.
¡Bienvenido a EE.SE! Tenga en cuenta que las preguntas sobre optimización requieren una definición sobre las dimensiones del problema que se optimizarán para su aplicación, como el tamaño, la velocidad, el consumo de energía, la experiencia del usuario, etc. tener una buena idea de cuáles son más importantes para usted y ser capaz de articularnos eso claramente.
@JohnLeuenhagen Entonces, al eliminar todos estos pequeños fragmentos que se filtran lentamente con el tiempo, deduzco que el AVR está ejecutando Johnny-Five y controla el controlador del motor y usted envía mensajes al AVR desde un RPi. ¿Me equivoco?
@jonk: Tengo la impresión de que "Johnny Five" se está ejecutando en RPi y que algo llamado "Firmata" se está ejecutando en Arduino. Pero podría estar equivocado, y estoy de acuerdo, esto es "muerte por mil cortes" en términos de sacar información del OP.
@DaveTweed Creo que lo resolviste mejor que yo. Creo que el OP se beneficiaría mejor al profundizar su conocimiento de lo que ya tienen en lugar de agregar otro módulo electrónico (555) a un montón creciente de ellos. Uno puede permanecer superficial, supongo, y simplemente agregar una bolsa de colostomía tras otra para hacer el trabajo. Pero no es interesante para mí, entonces. Oh bien.

Respuestas (2)

El LTC6992 de Linear podría ser lo que desea.

ingrese la descripción de la imagen aquí

Figura 1. El LTC6992 proporciona una salida PWM a una frecuencia establecida de hasta 1 MHz para una señal de entrada analógica de 0 a 1 V.

Luego, puede usar su PWM de baja frecuencia y su filtro de paso bajo para generar un voltaje analógico, reducirlo a 0 a 1 V y generar su PWM de alta frecuencia con el LTC6992.

Habrá una penalización en el tiempo de respuesta con este enfoque y esto se puede calcular en función de la constante de tiempo RC de su filtro.

"Mejor" es un concepto algo flexible. Suponiendo que tenga acceso a algún tipo de bus serie, pensaría en un potenciómetro digital de doble canal. Tal vez algo como esto: http://www.analog.com/en/products/digital-to-analog-converters/digital-potentiometers/ad5122.html

Y haga un reemplazo completo de las resistencias en la configuración astable tradicional 555.