PWM Con Arduino
PWM Con Arduino
Geek Electrónica
Explicaciones, tutoriales y noticias sobre electrónica y tecnología en general
ELECTRÓNICA ANÁLOGA
ELECTRÓNICA DIGITAL
ARDUINO
MICROCONTROLADORES
NOTICIAS
Arduino Microcontroladores
Esta señal PWM por lo general es producida por un circuito digital como por ejemplo un
microcontrolador, dicho circuito genera una señal cuadrada a la que le puede variar el ciclo
útil y con lo cual emular una señal análoga de diferentes amplitudes de voltaje con la cual
controlar la carga que desee, algunas de las aplicaciones en las que más se usa el PWM es el
control de velocidad de motores o el control de intensidad de brillo de un bombillo.
El ciclo útil o ciclo de trabajo de la señal viene determinado por los tiempos que dura en alto
la señal cuadrada, respecto al periodo de la señal.
Donde:
D= Ciclo útil o ciclo de trabajo
t1= Tiempo que la señal dura en valor alto (en un periodo)
T= Periodo de la señal
El resultado de ese ciclo útil es un valor de porcentaje que representará el porcentaje del
valor máximo de la señal que le será entregado a la carga que se quiere controlar. Por ejemplo
si se tiene un ciclo útil del 50% y un valor máximo de señal de 5 voltios, el valor análogo
emulado es de 2,5 voltios.
Arduino cuenta con la posibilidad de generar señales PWM, la cantidad de señales que puede
generar depende de la tarjeta que se esté utilizando, por ejemplo la tarjeta Arduino UNO
puede generar hasta 6 señales PWM (Pines 3, 5, 6, 9, 10, 11) o para el caso del Arduino MEGA
puede generar hasta 15 señales PWM (Pines 2 al 13 y 44 al 46).
Los PWM de Arduino tienen una resolución de 8 bits, ósea que puede representar 256 valores
(0 a 255), estos valores entre 0 y 255 son los que acepta el comandoanalogWrite en el
parámetro de valor para especificar el ciclo útil, lo que quiere decir que si se quiere ajustar un
ciclo útil del 100% se deberá colocar 255 en el espacio del parámetro que antes indicamos
como valor.
En la línea de código anterior se está configurando una señal PWM que va a ser generada por
el pin 13 del Arduino y que va a tener un ciclo útil de 49.8%, se puede calcular de forma
sencilla el ciclo útil del PWM o el valor que se debe colocar en la
instrucción analogWrite mediante una sencilla regla de 3, teniendo en cuenta que un ciclo útil
del 100% debe ser representado como un 255 dentro del comandoanalogWrite.
Es importante tener claro ya que es algo que suele confundir a quienes están comenzando en
electrónica, que aunque la traducción literal del comandoanalogWrite sea “Escritura análoga”,
en ningún momento se está generando una señal análoga por el arduino, la señal PWM que se
genera es una señal de tipo digital que puede emular de cierta forma a una señal análoga sin
llegar a serlo.
(Código
Ejemplo de PWM con Arduino)
Hay que tener en cuenta que si se va a utilizar una lectura de un canal análogo del Arduino
como medio de control del ciclo útil del PWM, que ambos dispositivos (ADC y PWM) trabajan
con resoluciones diferentes, mientras el convertidor análogo a digital del arduino trabaja por
defecto con una resolución de 10 bits (1024 valores), el PWM de Arduino trabaja con una
resolución de 8 bits (256 valores), por lo cual es necesario implementar alguna estrategia para
que los valores del ADC de 10 bits puedan ser utilizados para controlar el ciclo útil del PWM
de 8 bits. Para el caso especifico del código anterior se opto por dividir el valor de convertidor
análogo a digital entre 4.01176.
Permalink
buenas tardes muy bien explicado sobre la señal PWM.
disculpe soy principiante en arduino y me interesa saber como puedo realizar un proyecto de un sensor CKP(sensor
del árbol de levas) y CMP (sensor del sigueñal), esto en el área automotriz. ya que me gustaria realizar un proyecto
de un simulador de ECU (computadora autromotriz).
para poder realizar hay que poder simular todos los sensores de un vehiculo como son:
sensor CKP
sensor CMP
sensor TPS
sensor IAC
valvula IAC
inyectores, con la explicacion del PWM que comento usted ya tengo una idea.
bobinas
ETC,ETC.
Respuesta
Para poder ayudarte me gustaría que me dijeras cuales son las referencias de los sensores que vas a utilizar y así
observar el modo de funcionamiento de los mismos, con esto ya me podría hacer una idea de las funciones o
características de arduino que se podrían utilizar.
Respuesta
Willton
Permalink
Buen dia compañero quisiera saber si es posible generar una onda senoidal de frecuencia varíable y cual seria el min
y max de esta frecuencia. Gracias por la atención.
Respuesta
o
Iván Cuadros AcostaAutor
el septiembre 12, 2017 a las 2:24 pm
Permalink
Hola buen día y gracias por visitar el blog.
Si se puede generar una señal senoidal a partir de una señal PWM generada por arduino, pero no es un proceso
directo, sino que por el contrario hay que seguir varias etapas.
* Determinar una relación entre los valores de la señal senoidal y los valores del ciclo util del PWM. Los valores
mas pequeños de la señal senoidal van a representar menores valores de ciclo util y viceversa.
* Generar el PWM con arduino utilizando los valores de ciclo util determinados en el punto anterior.
* A la salida del arduino en el pin que genera el PWM implementar un filtro pasabajos para que a la salida del
filtro si se pueda ver la señal senoidal.
En cuanto a la frecuencia de las señales va a depender de la frecuencia del PWM que para el caso de arduino, el
valor de frecuencia del PWM por defecto es 490 Hz, esta frecuencia se podría cambiar pero ya se tendría que
empezar a modificar los valores de configuración del microcontrolador.
Por el momento te puedo dejar el siguiente enlace de un articulo donde explican paso a paso como hacer el
proceso de utilizar un PWM para generar una señal
senoidal. http://revistas.utp.edu.co/index.php/revistaciencia/article/view/551/289
Espero que te sirva y recuerda que puedes seguirnos en Facebook, Twitter y Youtube para estar al día de todas las
publicaciones de Geek Electrónica.