Una vez hemos visto algunas nociones de programación, y hemos repasado el funcionamiento de algunos componentes, vamos a empezar con el cacharreo en sí.
En éste tutorial aprenderemos a configurar un determinado puerto como salida, y lo activaremos o desactivaremos para encender primero un led, y después unos cuantos de distintos colores. El resultado final lo podemos ver en el siguiente video.
Lista de componentes
- 1x Arduino Mega (podemos emplear cualquier Arduino).
- 1x Led Blanco 3mm.
- 1x Led Azul 3mm.
- 1x Led Verde 3mm.
- 1x Led Amarillo 3mm.
- 1x Led Rojo 3mm.
- 5x Resistencias de 220Ω.
- 1x Protoboard.
- 1x Juego de cables.
Empezando con un simple LED
Introducción al tutorial
Para comenzar podemos dejar todos los leds y coger sólo el blanco, así como una sola resistencia. Las placas arduino tienen un led conectado por defecto al pin 13, por lo que podríamos utilizarlo directamente para manejar una salida digital. Sin embargo, como queremos coger soltura cacharreando, utilizaremos en este caso el pin digital 50.
El led blanco que vamos a emplear funciona con una caída de tensión entre sus terminales de 3,2v, y una corriente de 20mA. Como queremos que su vida se alargue en la medida de lo posible, intentaremos no sobrepasar los 15mA. Como ya hemos aprendido, el valor de la resistencia que necesitaremos para el montaje podemos calcularla de tal forma que
[math]R=\frac{V}{I}=\frac{5V – 3,2V}{0,015A}=120\Omega[/math]
Como estaba un poco vago en el momento del montaje, tenía sobre la mesa resistencias de 47Ω y de 220Ω, así es que utilicé la de 220Ω, que proporcionaría al led una corriente de algo menos de 10mA, suficiente para que se ilumine.
En el caso de la potencia, aunque en éste montaje se ve a simple vista que no hay mucha exigencia, podemos calcularla también, así practicamos con las fórmulas:
[math]P=V^2/R=3,24V^2/220\Omega=0,015W[/math]
Así, podemos emplear cualquier tipo de resistencia, puesto que nuestro montaje exige tan sólo 0,015w.
Montaje del diseño
Haremos un esquema muy simple, como el siguiente:
Tan sólo tenemos que conectar la resistencia en serie con el led, y conectar la parte correspondiente al ánodo del LED (parte positiva) al pin 50 de Arduino y la parte correspondiente al cátodo del LED (parte negativa) a GND.
Escribiendo el programa
Para que nuestro arduino sepa que tiene que encender un led (en este caso blanco) en intervalos de 1 segundo, necesitaremos de un código como el que podéis ver y descargar a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/* Parpadeo de LED - Blink Enciende durante 1 segundo y apaga durante otro segundo un LED de forma ininterrumpida. Uso público bajo licencia: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Éste y más ejemplos en rDuinoStar.com, tu comunidad Arduino en Español */ int whiteLed = 50; // Pin digital al que conectamos el LED void setup() { pinMode(whiteLed, OUTPUT); // Configración del pin 50 como salida } void loop() { digitalWrite(whiteLed, HIGH); // Activamos el pin 50 (+5V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(whiteLed, LOW); // Apagamos el pin 50 (0V) delay(1000); // Esperamos un segundo (1000ms) } |
Lo nuevo que introducimos en éste tutorial con respecto a lo visto en la Estructura básica de un Sketch, aparece resaltado en el código de arriba. A continuación de cada instrucción aparecen los comentarios perfectamente explicativos de cada una de las sentencias, por lo que con un vistazo podemos comprender qué es lo que se está haciendo.
En la estructura básica no hemos comentado nada sobre la posibilidad de código fuera de las funciones, pero lo cierto es que es una buena práctica utilizar esta parte de nuestro programa para realizar una especie de traducción de variables que nos haga más fácil la programación. Así, hemos empleado la variable whiteLed para referirnos al número entero 50, que representará el pin 50 de arduino.
Utilizando 5 LEDs de colores
Introducción al tutorial
Si os ha sabido a muy poco, podéis intentar algo más complejo (tampoco mucho más), pero que os irá soltando en el manejo de variables, funciones propias de arduino, conexiones con la protoboard, etc…
Para ello, vamos a recoger el material que descartamos al principio del tutorial, y vamos a asegurarnos de no quemar los leds con las resistencias empleadas.
Montaje del diseño
Vamos a emplear un diagrama como el siguiente:
Del mismo modo que antes conectabamos el led blanco, haremos lo propio con el resto de leds, conectando el led azul a la salida digital 46, el verde a la 42, el amarillo a la 38 y el rojo a la 34.
Los leds azul y verde tienen las mismas características en cuanto a tensión y corriente que el led blanco que hemos empleado, luego resistencias del mismo valor nos servirían.
Por su parte, los leds rojo y amarillo tienen las mismas características en cuanto a corriente que los anteriores, pero su tensión ha de estar comprendida entre 1,9 y 2,1v. Para un valor intermedio:
[math]R=\frac{V}{I}=\frac{5V-2V}{0,015A}=200\Omega[/math]
Con lo cual, podemos utilizar más resistencias de 220Ω que, además, las tengo a mano. Con respecto a la potencia, podemos comprobar que incluso las de 1/4w nos valen de sobra:
[math]P=V^2/R=9V^2/220\Omega[/math]
Escribiendo el programa
Como en el caso anterior, aquí tenéis el código de ejemplo para seguir el tutorial, y más abajo el link para descargaros el sketch directamente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
/* Parpadeo de varios LEDs - Blinks Secuencias de parpadeos de LEDs. Uso público bajo licencia: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Éste y más ejemplos en rDuinoStar.com, tu comunidad Arduino en Español */ int whiteLed = 50; // Pin digital al que conectamos el LED blanco int blueLed = 46; // Pin digital al que conectamos el LED azul int greenLed = 42; // Pin digital al que conectamos el LED verde int yellowLed = 38; // Pin digital al que conectamos el LED amarillo int redLed = 34; // Pin digital al que conectamos el LED rojo void setup() { pinMode(whiteLed, OUTPUT); // Configración del pin 50 como salida pinMode(blueLed, OUTPUT); // Configración del pin 46 como salida pinMode(greenLed, OUTPUT); // Configración del pin 42 como salida pinMode(yellowLed, OUTPUT); // Configración del pin 38 como salida pinMode(redLed, OUTPUT); // Configración del pin 34 como salida } void loop() { digitalWrite(whiteLed, HIGH); // Activamos el pin 50 (+5V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(blueLed, HIGH); // Activamos el pin 46 (+5V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(greenLed, HIGH); // Activamos el pin 42 (+5V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(yellowLed, HIGH); // Activamos el pin 38 (+5V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(redLed, HIGH); // Activamos el pin 34 (+5V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(whiteLed, LOW); // Desactivamos el pin 50 (0V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(blueLed, LOW); // Desactivamos el pin 46 (0V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(greenLed, LOW); // Desactivamos el pin 42 (0V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(yellowLed, LOW); // Desactivamos el pin 38 (0V) delay(1000); // Esperamos un segundo (1000ms) digitalWrite(redLed, LOW); // Desactivamos el pin 34 (0V) delay(1000); // Esperamos un segundo (1000ms) } |
SeveralLEDBlink (2349 descargas )
Como veis tan sólo hay que ir repitiendo las instrucciones resaltadas en el código anterior en el orden que queramos, poniendo cuidado en si estamos encendiendo un led digitalWrite(redLed, HIGH); o apagándolo digitalWrite(greenLed, LOW);. Naturalmente, este código se podría simplificar con un bucle for, sin embargo, he querido extenderlo lo máximo posible para que se entendieran mejor las instrucciones.
Hasta el próximo tutorial!
gracias por este maravilloso tutorial, me ha ayudado mucho a terminar mi proyecto de este trimestre
un saludo.
Muy bueno y gracias por el aporte!
Muchas gracias por tu comentario 🙂
como encender un lep, pero una vez que se apague se mantenga apagado asta nuevo aviso.
Hola isaig,
Lo más sencillo es leer una entrada con un pulsador. Cuando se active la entrada, se enciende el led, se espera el tiempo que queramos, y se apaga de nuevo, siguiendo ejecutándose el método loop y volviendo a esperar una pulsación en la entrada del pulsador.
Espero haberte ayudado.
En verdad muchas gracias por este Tutorial 1 sobre LED
Apreciaré mucho los siguientes Tutoriales
Gerardo Vargas
Saludos desde Cuernavaca, Mor
Hola tiene los codigos con mas efectos para 5 leds para arduino mega 2560 igual al esquema hecho aqui. ya que soy nuevo en esto y no se de donde conseguir