0% encontró este documento útil (0 votos)
72 vistas15 páginas

PWM

El documento describe la modulación por ancho de pulso (PWM), incluyendo sus salidas en el Arduino UNO, diagramas de tiempo y el uso de filtros pasa banda. También proporciona un ejemplo de código Arduino para generar una señal PWM analógica y un ejemplo para controlar un servo con PWM.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
72 vistas15 páginas

PWM

El documento describe la modulación por ancho de pulso (PWM), incluyendo sus salidas en el Arduino UNO, diagramas de tiempo y el uso de filtros pasa banda. También proporciona un ejemplo de código Arduino para generar una señal PWM analógica y un ejemplo para controlar un servo con PWM.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

PWM

Contenido:
• PWM (Modulación por ancho de pulso)
• Salidas de PWM en el arduino UNO
• Diagramas de tiempo
• Filtro de pasa banda conversión análogo digital.
• Ejemplo de uso
PWM
¿Qué es PWM?

►La modulación de ancho de pulso (PWM), es una


modulación donde se mantiene constante la frecuencia
(es decir, el tiempo entre disparo de pulsos), mientras
que se hace variar la anchura del pulso.
Salidas PWM
Diagramas de tiempo
Filtro

• Es importante recordar en todo momento que en


una salida PWM el valor de tensión
realmente es Vcc. Por ejemplo, si estamos
alimentando un dispositivo que necesita 3V, y
usamos una pulsada, en realidad estaremos
suministrando 5V durante un 60% del tiempo y
0V durante el 40%. Pero si el dispositivo, por
ejemplo, soporta como máximo 3V, podemos
dañarlo si lo alimentamos mediante un
PWM.
El esquema eléctrico es el siguiente, donde
vemos que hemos superpuesto la red RC de
filtrado entre la salida PWM y la señal
filtrada, que es la que recibe la carga.
La respuesta del sistema es una señal
amortiguada de la señal PWM, pero
que sigue sin ser una señal analógica
perfecta.
Debemos observar que la señal producida tiene
dos parámetros relevantes.
• Tiempo de respuesta: El tiempo le cuesta la
señal el estado estacionario (un tanto por
ciento de la señal deseada)
• Rizado: La pequeña oscilación que se
mantiene tras el filtro.
Estos dos efectos son "opuestos" entre sí. Es
decir:
• Si intentamos reducir el rizado, necesitaremos
tiempos de respuesta muy largos.
• Si intentamos reducir el tiempo de respuesta,
debemos admitir un mayor rizado.
Limitaciones de un filtro
pasivo
El filtro de paso bajo planteado resulta útil para
proporcionar un valor te tensión casi analógico, e incluso
alimentar pequeñas cargas. Sin embargo, no sirve para
alimentar grandes cargas..
Las cagas de potencia superior tienen impedancias
inferiores. Cuando esta impedancia es inferior a la de la
red RC, el consumo de la carga produce que la señal
obtenida se aleje de la teórica.
Una forma sencilla de evitar esto es emplear un
amplificador operacional para hacer un seguidor de
tensión, que aísla la influencia de la carga del
funcionamiento de la red RC.
No obstante, ya que vamos a emplear un amplificador
operacional, podríamos unificar ambos componentes
empleando un filtro activo.
Instrucciones

const int analogOutPin = 11; // Analog output pin

byte outputValue = 0; // valor del PWM

void setup()
{
}

void loop() {
analogWrite(analogOutPin, outputValue);
delay(10);
outputValue++;
}
Arduino con servo
Ejemplo
#include <Servo.h>

Servo myservo; // create servo object to control a servo

int potpin = 0; // analog pin used to connect the potentiometer


int val; // variable to read the value from the analog pin

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo
object
}

void loop() {
val = analogRead(potpin); // reads the value of the
potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 180); // scale it to use it with the
servo (value between 0 and 180)
myservo.write(val); // sets the servo position
according to the scaled value
delay(15); // waits for the servo to get there
}

También podría gustarte