Publicado por el 16 julio, 2016 Deja tus dudas en los comentarios
Dificultad bajaComplejidad baja
CC BY-SA 4.0

¿Qué ocurre cuando para controlar un dispositivo necesitamos una salida analógica? es decir, una señal que puede obtener cualquier valor comprendido entre, por ejemplo, 0 y 5 voltios. Esta señal puede ser generada de muchas formas, por ejemplo con un potenciómetro, pero en este caso lo vamos a hacer con un microcontrolador y de manera más concreta con Arduino.



La base del sistema será una señal PWM generada por Arduino la cual la haremos pasar por un filtro paso bajos de primer orden, al salir del filtro habremos eliminado la señal PWM y nos quedaremos solo con la componente continua.

Una señal cuadrada como la de PWM es una señal compuesta por otras muchas señales.

Si eres ingenier@ seguro que te suena Fourier y si no lo eres, te animo a que investigues sobre las series de Fourier. Simplificándolo mucho, Fourier dice que cualquier señal periódica puede ser reproducida usando señales senoidales y una señal constante.

El valor medio de una señal PWM varia en función de el duty cicle de la señal. A mayor ciclo de trabajo, mayor valor medio de tensión portará la señal PWM. Al hacer pasar la señal PWM por un filtro paso bajos, todas las componentes del PWM se atenúan salvo la componente continua.

Tal y como se ve en la siguiente captura de pantalla del osciloscopio, la salida analógica obtenida no es totalmente continua, si no que tiene algo de rizo. Esto es debido a que es muy difícil atenuar por completo las componentes cuya frecuencia sea distinta de cero.

PWM salida analogica en Osciloscopio

PWM salida analogica en Osciloscopio

Es importante tener en cuenta que al hablar de un filtro RC la corriente que podremos extraer tras el filtro será muy baja ya que tenemos una resistencia en serie, en este caso el valor de R es 560Ω y su caída de tensión es de 5v por tanto la corriente que circulará por ella será de 8.9mA.

filtro-paso-bajos

filtro-paso-bajos

Puedes echarle un vistazo al vídeo para verlo en acción.


 

Generando una salida analógica con Arduino y PWM

El siguiente código es un ejemplo muy sencillo sobre como generar una señal PWM usando Arduino.

El ejemplo realiza un barrido desde 0 hasta 255, generando una salida analógica de tensión ascendiente desde 0 hasta 5 voltios.



/*
PWM to analog
By: Enrique
RincónIngenieril
Date: July 7th, 2016
License: This code is public domain.
*/

void setup(){
pinMode(6,OUTPUT);
}

void loop(){
for(int i=0; i < 256; i++){
analogWrite(6,i);
delay(10);archiconocidos
}
}
Sobre el autor
Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en enrique.rinconingenieril.es
Artículos relacionados
Deja un comentario