Arduino AnalogWrite y su frecuencia y efectividad

5

Leyendo sobre la función de escritura analógica de arduino. Comprendo que utiliza PWM para la tensión de CC variable. (controlando el ancho del pulso)

Sin embargo, ¿cómo controlamos la frecuencia del pulso? Encontré algunos artículos sobre el mismo pero no pude obtenerlos. Cualquier ayuda es apreciada.

Además, ¿qué tan efectivo es usar esa tensión analógica como, por ejemplo, una tensión de polarización? O tal vez como una variable Vcc en sí. ¿El hecho de que la CC se obtenga a través de PWM afectará el funcionamiento del circuito subyacente esperado (donde el circuito subyacente es todo lo que uno puede hacer con un transistor)?

    
pregunta Dhruv Kapur

3 respuestas

2

La frecuencia del pulso se puede controlar mediante la manipulación directa de los registros de control del temporizador. Los detalles varían bastante dependiendo del temporizador y del pin que estés usando. Algunos pines permiten un control preciso tanto de la frecuencia como del ciclo de trabajo, mientras que otros solo permiten controlar uno u otro. Para muchas aplicaciones (por ejemplo, LED), la frecuencia exacta no importa siempre que sea lo suficientemente alta.

En última instancia, una señal PWM se comporta de manera muy diferente a las señales analógicas reales. Para algunas aplicaciones, por ej. controlando los LED, una señal PWM es más conveniente que la analógica real (es decir, la relación del ciclo de trabajo de PWM con el brillo), pero para las aplicaciones que menciona (voltaje de polarización), PWM no es realmente adecuada.

    
respondido por el microtherion
2

El conjunto de comandos de Arduino no admite directamente el cambio de frecuencia de PWM, pero se puede hacer. Para esto necesitas saber un par de cosas:

  • encuentre la hoja de datos del microcontrolador exacto (ATmega ..) que se encuentra en su Arduino
  • qué pin Arduino desea que cambie la frecuencia PWM;
  • a qué pin en el controlador está conectado (esto se describe en enlace );
  • encuentre el capítulo sobre PWM en la hoja de datos que describe los pines del controlador que le interesan.

Además de eso, algunos de los pines de PWM están conectados a timer0, que es muy confiable para otras tareas del sistema (como delay(); ). Así que jugar con PWM puede cambiar la velocidad de ejecución de algunos códigos.

    
respondido por el jippie
0

La biblioteca de frecuencia PWM Arduino funciona de manera excelente. La biblioteca es una biblioteca de fuente abierta de terceros, que no forma parte de la distribución estándar.

Hay una discusión en el foro que incluye la documentación de la biblioteca y el historial de actualizaciones aquí .

He usado esta biblioteca ampliamente, no tengo quejas.

Con respecto a la obtención de la variable DC de PWM, la técnica estándar es utilizar un filtro de paso bajo: en la forma más simple, una resistencia y un condensador.

Cuanto más baja sea la frecuencia de esquina de este filtro, más lento responderá a los cambios del ciclo de trabajo PWM, pero menor será la ondulación en la salida, dada una frecuencia PWM significativamente más alta que la frecuencia de esquina.

A la inversa, para reducir la ondulación y aún tener una salida de CC sensible, se usaría una frecuencia PWM más alta, junto con una frecuencia de corte más alta para el filtro de paso bajo.

La contribución de rizado también aumenta con una mayor corriente de carga, por lo que para contrarrestar que también se utilizan frecuencias más altas.

    
respondido por el Anindo Ghosh

Lea otras preguntas en las etiquetas