Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tresdeland - Tu mundo 3D
LOGIN / REGISTRO
ARTCULOS
0 00
CARRITO
VACO
BSQUEDA DE PRODUCTOS
LOVE IS SHARING
SOPORTE TCNICO
info@tr3sdland.com
T IENDA S A CT U A LIDA D
P EDIDOS
CONT A CT O
Inicio | Open Source | Arduino | Tutorial Arduino # 0003 Entrada Analgica y Salida PWM
SUSCRBETE
Tutorial Arduino #
0003 Entrada
Analgica y Salida
PWM
Si quieres estar
informado de todas
nuestras ltimas noticias
y novedades, suscrbete a
nuestro News Letter!!
Autor: Pablo
Fecha: 19
noviembre, 2011
INTRODUCE TU E-MAIL
Compartir en
SUSCRIBIR
PRODUCTOS
DESTACADOS
Nivel: Bsico
Coste: < 25
Tiempo: 15
SENSE
IMPRESORA
ESCNER
3D
pequeo Arduino Uno para utilizarla en dos ejemplos, primero variaremos la frecuencia de
HOME &3D
KIDS UP!
parpadeo de un diodo LED con un potencimetro conectado a una entrada analgica y luego
434.90
MINI
utilizaremos el mismo circuito para realizar una modulacin del ancho de un pulso en una
799.00
POST POPULARES
NOV EXPO 3D MADRID, EL
27
ENCUENTRO DE
IMPRESIN 3D DE LA
CAPITAL
publicado por Jose Manuel
JUL
Sanchez
09
VUELVE EL EVENTO DE
IMPRESIN 3D A
ZARAGOZA
DIC
09
Productos Mejor
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
1/13
29/1/2015
Tresdeland - Tu mundo 3D
Valorados
19.90
19.90
19.90
1 x Diodo Led
1 x Resistencia 470
1 x Potencimetro 1K
ltimos Tweets
Ya tenemos abierta
1 x Protoboard
la tienda on-line!!
Pronto iremos
1 x Juego de cables
actualizando ms
productos y
nuevos
contenidos! :)
En este proyecto Ar duino vamos a realizar dos ejemplos con un mismo circuito, la diferencia
#3dprinting
16/12/2014
http://t.co/u5fRuGktx7
15:34:35
RT @JalMakerFaire:
La inspiracin
existe pero tiene
que encontrarte
trabajando.....
Picasso
05/12/2014
20:47:17
RT @tumaku_: Hoy
me he encontrado
a Pablo "arduteka"
en #Expo3DMad y
me ha dicho que
Un potencimetro es una resistencia de tipo variable con tres patillas, entre las dos de sus
extremos tendremos siempre una resistencia fija dada por del valor mximo de nuestro
potencimetro, pero entre cualquiera de esos extremos y la patilla central obtendremos la
variacin de resistencia, tenis disponible un tutorial sobre este componente AQUI.
En este proyecto, vamos a utilizar el potencimetro como un divisor de tensin, primero
estn a punto de
abrir tienda
@Tr3sdland en el
centro
04/12/2014
21:08:29
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
2/13
29/1/2015
Tresdeland - Tu mundo 3D
Como podemos ver, debemos colocar uno de los extremos a masa, otro a +Vcc y nuestra
patilla central ser nuestra tensin de salida regulable, esta salida ser la que conectemos a
Arduino y que variar de 0v a 5v dependiendo de la posicin de nuestro potencimetro.
Podemos ver la variacin de tensin en el siguiente video:
Si estamos utilizando un Arduino Uno, las entradas analgicas vienen identificadas desde A0
hasta A5 como podemos ver en la siguiente imagen:
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
3/13
29/1/2015
Tresdeland - Tu mundo 3D
Per o.. Qu es el PW M?
A menudo necesitaremos algo ms que una seal de 0 o 1 en nuestros proyectos, para variar
la velocidad de giro de un motor, para variar la intensidad con la que luce un diodo, para
transmitir los grados de giro de un servo, etc..
Para todo esto, y mucho ms, nos servir el PWM, que emula una seal analgica a partir de
una seal digital.
Las siglas PWM vienen de Pulse Width Modultation, o Modulacin de Ancho de Pulso.
Lo que hace este tipo de seal es emitir, en lugar de una seal continua en nuestra salida,
emite una serie de pulsos que podremos variar su duracin pero con una frecuencia constante
de aproximadamente 490Hz, de manera que la tensin promedio resultante, es directamente
proporcional a la duracin de estos dentro del rango de nuestro periodo, es decir, cuanto ms
juntos estn esos pulsos de +5v, mayor ser la tensin promedio de nuestra salida, y cuanto
ms distantes sean estos, menor ser dicha tensin:
Veamos un video del PWM en accin, observar como se corresponde la intensidad lumnica del
LED con el ancho de pulso observado en el osciloscopio:
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
4/13
29/1/2015
Tresdeland - Tu mundo 3D
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
5/13
29/1/2015
Tresdeland - Tu mundo 3D
void setup() {
// Declaramos el pin del Led como salida:
pinMode(pinLed, OUTPUT);
}
void loop() {
// Leemos el valor del sensor y lo almacenamos:
valorSensor = analogRead(pinSensor);
// encendemo el diodo LED:
digitalWrite(pinLed, HIGH);
// Detenemos el programa durante <valorSensor> milisegundos:
delay(valorSensor);
// Apagamos el diodo Led:
digitalWrite(pinLed, LOW);
// Detenemos el programa durante <valorSensor> milisegundos:
delay(valorSensor);
}
En este programa tenemos como novedad la siguiente instruccin:
analogRead(pinSensor)
Esta instruccin nos permite leer cualquier sensor que conectemos al pin analgico
establecido en pinSensor, por defecto, nuestra placa Arduino nos realizar una conversin
analgico-digital para toda seal (40mA mximo) de 0v a 5v con una resolucin de 10 bit, lo
que nos da 2 10 (1024) valores de referencia para nuestro programa, siendo 0 en 0v y 1023
en +5v, en posteriores ejemplos veremos como ese rango de tensin en el que se realizan las
mediciones se puede variar para que, por ejemplo, empiece a lanzarnos valores a partir de
2,2v.
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
6/13
29/1/2015
Tresdeland - Tu mundo 3D
Con esto, y observando un poco el programa, podemor ver que el intervalo entre encendido y
apagado de nuestro diodo LED podr variar entre 0 y 1023 milisegundos, si quisiramos
aumentar ms el tiempo de los intervalos podramos aplicar alguna operacin matemtica al
valor de nuestro sensor, por ejemplo, si aadiramos la lnea de cdigo que se puede observar
debajo de la toma de datos del sensor obtendramos un incremento del tiempo cuatro veces
mayor:
// Leemos el valor del sensor y lo almacenamos:
valorSensor = analogRead(pinSensor);
valorSensor = valorSensor*4;
Sin variar el circuito, vamos a introducir un nuevo cdigo para realizar un ejemplo diferente, en
este proyecto, nuestro diodo LED variar su intensidad lumnica en funcin del valor que est
aportando el potencimetro a nuestra entrada analgica, esto es el llamado efecto fading
(desvanecimiento), puede observarse que se ha elegido la salida nmero 9, ya que esta s que
es compatible con la opcin PWM como se explica algo ms arriba.
Veamos el cdigo al completo:
/*
Tutorial Arduino # 0003 - Efecto Fading
En este tutorial, mostramos como se desvanece un LED
en funcin del valor recogido en un entrada analgica.
Este proyecto es de dominio pblico.
*/
int pinSensor = A0;
int pinLed = 9;
int valorSensor = 0;
void setup() {
pinMode(pinLed, OUTPUT); // Establecemos el pin como salida.
}
void loop() {
// Leemos el valor del sensor y lo almacenamos:
valorSensor = analogRead(pinSensor);
// Establecemos el valor analgico para la salida PWM
analogWrite(pinLed, valorSensor / 4);
// Detenemos el programa durante 30 milisegundos:
delay(30);
}
Podemos observar una nueva instruccin:
analogWrite(pinLed, valorSensor / 4);
Esta ser la instruccin que nos permitir emular una seal analgica a partir de una digital en
nuestros circuitos, como explicaba algo ms arriba.
El rango de salida de esta instruccin varia de 0 a 255, siendo 0 = 0v y 255 = 5v, por lo que es
tan sencillo como introducir un valor determinado para la tensin de salida que nosotros
queramos conseguir, si quisiramos conseguir 2,5v el valor a asignar sera 127.
As que lo nico que debemos hacer es transformar mediante una simple operacin
matemtica la seal tomada en nuestro potencimetro para adaptarla a nuestra salida PWM.
Como hemos visto en el ejemplo anterior, los niveles de entrada son de 0 a 1023, y si los
niveles de salida, deben ser de 0 a 255 Os dejo a vosotros la deduccin, y la lnea de cdigo
por si no cais en cuenta.
analogWrite(pinLed, valorSensor / 4);
Esta es una manera algo tosca para realizar esta conversin, ms adelante veremos como hay
una instruccin que hace esto por nosotros.
Bueno, eso es todo por el momento!!
Si necesitis algn tipo de aclaracin no dudis en dejar un comentario!!
Hasta pronto!!!
COMENTARIOS
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
7/13
29/1/2015
Tresdeland - Tu mundo 3D
GATOLOCO65
mar, 26 - 2012
GATOLOCO65
MIGUEL
abr, 2 - 2012
Inicia sesin
para responder
LEANDRO
PABLO
Hola!
MURILLO
oct, 25 - 2012
Inicia sesin
http://www.arduino.cc/es/Tutorial/KnockSensor
para responder
Un saludo!!
LEANDRO
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
8/13
29/1/2015
Tresdeland - Tu mundo 3D
NICKO
oct, 27 - 2012
Inicia sesin
para responder
TXIBU
PABLO
MURILLO
nov, 2 - 2012
Inicia sesin
para responder
JUAN CARLOS
nov, 18 - 2012
Inicia sesin
para responder
PEDRO ALDO
PABLO
MURILLO
dic, 5 - 2012
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
29/1/2015
Tresdeland - Tu mundo 3D
CLAUDIA
PABLO
MURILLO
dic, 16 - 2012
Inicia sesin
para responder
CARESTH
LUDWING
Gracias!!!!!!
feb, 13 - 2013
Inicia sesin
para responder
Hola!
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
10/13
29/1/2015
Tresdeland - Tu mundo 3D
PABLO
MURILLO
feb, 15 - 2013
Inicia sesin
http://www.arduteka.com/wpcontent/uploads/2011/11/Proyecto-Arduino-0003Protoboard.jpg
veo la representacion,pero no entiendo como siguen los
cables,,aparecen por un lado,,desaparecen,aparecen por
otro lado,nose si son el mismo cable o esque hay que
pinchar otro,,please una ayuda a esta aprendiz!!
PABLO
Hola!
MURILLO
feb, 18 - 2013
Inicia sesin
RONAL JR.
PABLO
Hola!
MURILLO
mar, 21 - 2013
Inicia sesin
para responder
JOSE
feb, 21 - 2013
Inicia sesin
para responder
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
11/13
29/1/2015
Tresdeland - Tu mundo 3D
PABLO
Hola!
MURILLO
mar, 21 - 2013
Inicia sesin
para responder
LPEZ
PABLO
Hola!
MURILLO
mar, 21 - 2013
Inicia sesin
para responder
SANTI
feb, 24 - 2013
Inicia sesin
para responder
TRACKBACK O PINGBACK
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
12/13
29/1/2015
Tresdeland - Tu mundo 3D
http://www.tr3sdland.com/2011/11/tutorial-arduino-0003-entrada-analogica-y-salida-pwm/
13/13