Lista de materiales para este tutorial
Pieza | Cantidad | |
---|---|---|
Diodo Led RGB - Transparente | 1 | |
Resistencias 1/4 W - 220R | 3 | |
Arduino UNO R3 Compatible ATMEGA328 | 1 | |
40 x Cables Hembra-Macho 20cm jumper dupont 2.54 | 1 |
Es este tutorial vamos a aprender a controlar un led RGB de manera fácil con nuestro arduino. Si quieres aprender como funciona internamente un led te recomendamos que visites el tutorial de ¿Que es un led RGB?.
Con Arduino Uno
Con Arduino Mega
Con Arduino Nano
Ya lo tenemos todo listo para pasar a la programación. En este caso vamos a programar nuestra placa para que encienda el cada uno de los colores Rojo, Verde, Azul secuencialmente cada 1 segundo para que se vea la mezcla básica del color y después lo apagaremos uno a uno, en el mismo orden a ciclos de 1 segundo entre cada uno de ellos.
Para ello vamos a explicar las funciones que vamos a usar dentro de nuestro Arduino IDE:
SETUP()
En nuestro software Arduino, la función setup es una función que solo se ejecuta en el encendido de nuestro Arduino, por lo que aquí es donde pondremos la configuración de los pines (pinMode), los iniciadores (begin) que pueda tener cualquier librería que hayamos añadido o cualquier configuración del aparato o variables que queremos que se realicen durante el encendido.
PINMODE()
El pinMode se utiliza para configurar el uso de los pines digitales o analógicos que vayamos a usar de manera digital dentro del Arduino. Su estructura es pinMode(número de pin, Modo de uso), donde en el número de pin, pondremos el pin que queremos configurar (que hayamos conectado) y en Modo de uso pondremos:
- INPUT (si va a ser una entrada, por ejemplo botones, lectura de sensores... )
- OUTPUT (si va a ser una salida, por ejemplo, encendido de un led o encendido de sensor...)
- INPUT_PULLUP (si va a ser una entrada pero queremos usar la resistencia PULLUP interna de nuestro arduino, en caso de botones por ejemplo)
Esta función tendremos que añadirla tantas veces como pines de entrada o salida tengamos conectados en nuestro prototipo. En el caso de este tutorial solo lo pondremos una vez.
LOOP()
En nuestro software Arduino, la función loop es una función que se ejecuta en bucle (continuamente) mientras nuestro arduino está en marcha de manera secuencial, es decir, en orden de líneas que existen dentro del loop. En ella pondremos todas las funciones y chequeos que va a realizar durante su ciclo normal de trabajo: lectura de sensores, encendido y apagado de leds, cálculos que necesitemos realizar con la captura de los sensores,...
DIGITALWRITE()
El comando digitalWrite se utiliza para escribir o cambiar el estado de un pin digital de encendido a apagado. Su estructura es la siguiente: digitalWrite( número de pin, Estado), donde en el número de pin pondremos el pin sobre el que queremos realizar la acción y en estado pondremos:
- HIGH (si queremos que encienda la salida, por ejemplo, encender un led)
- LOW (si queremos que apague la salida, por ejemplo, apagar un led)
DELAY()
El comando delay se utiliza para añadir un tiempo de espera en el programa. Esta función tiene la siguiente estructura: delay(tiempo de espera en milisegundos), donde en tiempo de espera en milisegundos pondremos los milisegundos que queremos que espere el programa para continuar.
Una vez visto un resumen del uso de los comandos, vamos a pasar a programar en nuestro Arduino IDE con el siguiente código:
Código completo
void setup() {
pinMode(13, OUTPUT); //Declaramos el pin 13 como sálida
pinMode(12, OUTPUT); //Declaramos el pin 12 como sálida
pinMode(11, OUTPUT); //Declaramos el pin 11 como sálida
}
void loop() {
digitalWrite(13, HIGH); //Ponemos el pin 13 a Alto(Encendido)
delay(1000); //Añadimos un retardo de 1000 milisegundos ( 1 segundo)
digitalWrite(12, HIGH); //Ponemos el pin 12 a Alto(Encendido)
delay(1000); //Añadimos un retardo de 1000 milisegundos ( 1 segundo)
digitalWrite(11, HIGH); //Ponemos el pin 11 a Alto(Encendido)
delay(1000); //Añadimos un retardo de 1000 milisegundos ( 1 segundo)
digitalWrite(13, LOW); //Ponemos el pin 13 a Bajo(Apagado)
delay(1000); //Añadimos un retardo de 1000 milisegundos ( 1 segundo)
digitalWrite(12, LOW); //Ponemos el pin 12 a Bajo(Apagado)
delay(1000); //Añadimos un retardo de 1000 milisegundos ( 1 segundo)
digitalWrite(11, LOW); //Ponemos el pin 11 a Bajo(Apagado)
delay(1000); //Añadimos un retardo de 1000 milisegundos ( 1 segundo)
}