S?guenos en Facebook
S?guenos en Twitter
S?guenos en Instagram
Crazy Design
Alicante
ROBÓTICA EDUCATIVA      •      IMPRESIÓN 3D      •      DISEÑO      •      WEB      •      TIENDA DE ELECTRÓNICA
Mi Carrito
    Total: 0€
    Emitir color personalizado en led RGB por PWM
    ¿Quieres comprar las piezas de este tutorial para experimentar en casa? Pulsando en lo botones de abajo se añadiran los productos del tutorial automaticamente a tu carrito. Pulsa sobre el botón Añadir Todo si quieres que se añadan todas las piezas necesarias para este tutorial incluido protoboard, cables dupont y placa (Arduino, Raspberry Pi, MicroBit, ESP...) o pulsa sobre Añadir solo sensores para añadir todas las piezas menos las protoboard, cables dupont y placa (Arduino, Raspberry Pi, MicroBit, ESP...).

    Es este tutorial vamos a aprender a controlar el tono de color 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?.


    En este tutorial vamos a user un Led RGB de Cátodo Común. Conectamos la patita más larga cátodo a un pin GND de nuestro arduino. La patita del Led Rojo la conectaremos al pin 13, La Verde al pin 12 y la Azul al pin 11.


    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, mediante señales PWM, controlemos el tono de color que va a emitir nuestro led rgb. Lo primero que tendremos que tener en cuenta, es que para trabajar con intensidades en leds tendremos que usar salidas PWM, es decir salidas que van de un rango de intensidad de 0 a 255, dentro de nuestras placas, no todas las salidas digitales pueden ser usadas con PWM, para ello tendremos que buscar el PINOUT de nuestra placa específica o en el caso de las placas Arduino, suelen venir indicados con el símbolo ~ al lado del número de pin (ese simbolo quiere decir que se pueden usar como PWM).


    Si no sabemos como es la mezcla RGB del color que queremos mostrar en nuestro Led RGB podemos buscar en internet la referencia del color seguido de RGB, por ejemplo, en el buscador de internet podemos poner "color lila RGB" y le damos a buscar. Esto nos llevara a páginas donde nos va a indicar la mezcla de color en RGB necesaria. 


    Ese es el valor que pondremos en nuestro analogWrite para cada uno de los pines de color: 182 para Rojo, 149 para Verde y 192 para el pin Azul.


    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,...

    ANALOGWRITE()

    El comando analogWrite se utiliza para escribir o cambiar el estado de pin digital controlando la onda de señal PWM . Su estructura es la siguiente: analogWrite( número de pin, valor), donde en el número de pin pondremos el pin sobre el que queremos realizar la acción y en valor pondremos el valor que queremos que escriba en valores entre 0 y 255.

    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, que nos mostrará el color lila que hemos buscado previamente en nuestro LED:

    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() {    analogWrite(13, 182);  //Ponemos el pin 13 Rojo a 182    analogWrite(12, 149);  //Ponemos el pin 12 Verde a 149    analogWrite(11, 192);  //Ponemos el pin 11 Azul a 192}