Tutorial: Salida digital PWM. LED y potenciómetro. Deja un comentario

Tutorial: Salida digital PWM. LED y potenciómetro.

 
Pulse Width Modulation (PWM), es una técnica utilizada para recrear un comportamiento analógico mediante señales digitales. Dicha señal digital es una onda cuadrada, la cual tiene dos valores: valor alto (5V en el caso de las placas Arduino) y valor bajo (0V).
La relación entre el tiempo que la señal está en nivel alto y nivel bajo se conoce como ciclo de trabajo (Duty Cycle, expresa en %). Por lo tanto, una señal que está 1ms en nivel alto y 1ms en nivel bajo, será una señal con 50% Duty Cycle. Entonces, ¿qué porcentaje queremos utilizar? Dependiendo de la tensión final que queramos tener. Es decir, se multiplican los 5 V de nivel alto que tienes por el % del ciclo de trabajo y tendrás la tensión final que tendremos en la salida PWM.
Ejemplo: 5V*50%= 2,5 V.
Ahora bien, ¿cómo generar la señal deseada en Arduino? Primero, hay que tener claro que no todas las salidas digitales valen, sólo las que están señaladas en la placa con las siglas PWM. Segundo, el generador PWM de la placa tien una resolución de 8 bits, por lo tanto, podrá trabajar con 256 valores (de 0 a 255).
Con estas dos premisas claras, basta con utilizar la función “analogWrite(pinPWM, valor);” y así obtener la señal cuadrada deseada. En la siguiente imagen se recogen ejemplos de la función analogWrite con la relación directa entre %DutyCycle y valor del generador PWM.

 


Se va a llevar a cabo un sencillo montaje para poder ver cómo la placa Arduino es capaz de regular la intensidad con la salida digital PWM.

Materiales

1x Arduino UNO

1x Resistencia 220 ohm

1x LED

1x Protoboard

Cables

Conexiones

Programa

int pinLED = 9; // LED conectado al pin digital 9 voidsetup() {   // nada que inicializar }  void loop() {   // intensidad desde el mínimo hasta el máximo incrementándose de 5 en 5   for(int valorintensidad = 0 ; valorintensidad <= 255; valorintensidad +=5) {     // sets the value (range from 0 to 255):     analogWrite(pinLED, valorintensidad);     // esperar 30 milisegundos para poder apreciar el cambio     delay(30);   }    // disminuir intensidad de forma contraria   for(int valorintensidad = 255 ; valorintensidad >= 0; valorintensidad -=5) {     // sets the value (range from 0 to 255):     analogWrite(pinLED, valorintensidad);     delay(30);   }  }
Vídeo

 

Content retrieved from:
http://elcajondeardu.blogspot.com.ar/2016/05/tutorial-salida-digital-pwm-led-y.html
.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?