Arduino Nano - LED RGB

Este tutorial te enseña cómo usar Arduino Nano para controlar un LED RGB. En detalle, aprenderemos:

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×RGB LED
3×220 ohm Resistor
1×(Alternativo) Módulo LED RGB
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca de LED RGB

El LED RGB es capaz de producir cualquier color mediante la combinación de los tres colores primarios: rojo, verde y azul. Está compuesto por tres LEDs distintos (rojo, verde o azul) que están alojados en una única carcasa.

El pinout del LED RGB

Un LED RGB tiene cuatro pines:

  • Pin común (cátodo): debe conectarse a tierra (0 V)
  • R (rojo): el pin se utiliza para ajustar el rojo
  • G (verde): el pin se utiliza para ajustar el verde
  • B (azul): el pin se utiliza para ajustar el azul
Pinout del LED RGB

Para hacer que un LED RGB funcione con Arduino Nano, necesitamos unas resistencias para limitar la corriente. Puede volverse bastante complicado cablear todo. Pero, afortunadamente, podemos simplemente usar este genial módulo de LED RGB que ya trae esas resistencias integradas!

El módulo LED RGB también incluye cuatro pines:

  • Pin común (cátodo): debe conectarse a GND (0V)
  • R (rojo): el pin se usa para controlar el rojo
  • G (verde): el pin se usa para controlar el verde
  • B (azul): el pin se usa para controlar el azul
Pinout del módulo LED RGB

※ Nota:

El pin común del LED RGB puede ser cátodo o ánodo, dependiendo del tipo de LED RGB. Este tutorial utiliza un cátodo común.

Cómo funciona

En física, un color está compuesto por tres componentes: Rojo (R), Verde (G) y Azul (B). El rango de cada valor de color es de 0 a 255. La combinación de tres valores crea un total de 256 x 256 x 256 colores.

Podemos usar Arduino Nano para crear cualquier color que deseemos suministrando señales PWM (con un ciclo de trabajo que va de 0 a 255) a los pines R, G y B de un LED RGB.

El ciclo de trabajo de las señales PWM enviadas a los pines R, G y B es proporcional a los valores de color Rojo (R), Verde (G) y Azul (B), respectivamente.

Diagrama de Cableado

  • Diagrama de cableado entre Arduino Nano y LED RGB
Diagrama de cableado de LED RGB para Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado entre Arduino Nano y el módulo LED RGB
Diagrama de cableado del módulo LED RGB de Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Cómo controlar un LED RGB

Aprendamos a controlar el LED GRB para cualquier color, por ejemplo #00979D, paso a paso:

  • Primero, determina qué color quieres mostrar y obtén su código de color. Consejos:
  • Luego, convierte el código de color a valores R, G, B usando la herramienta de w3schools. Anota estos valores. En este caso: R = 0, G = 151, B = 157
Selector de color para LED RGB
  • Especifica los pines del Arduino Nano que están conectados a los pines R, G y B. Por ejemplo:
const int PIN_RED = 11; const int PIN_GREEN = 10; const int PIN_BLUE = 9;
  • Configura los pines del Arduino Nano en modo de salida:
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Controla el LED para que emita el color #00979D, que está compuesto por rojo = 0, verde = 151 y azul = 157.
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Arduino Nano - Código de ejemplo para LED RGB

El código de Arduino Nano a continuación cambia el color del LED en un orden específico:

  • #00C9CC (Rojo = 0, Verde = 201, Azul = 204)
  • #F7788A (Rojo = 247, Verde = 120, Azul = 138)
  • #34A853 (Rojo = 52, Verde = 168, Azul = 83)
/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-led-rgb */ const int PIN_RED = 11; const int PIN_GREEN = 10; const int PIN_BLUE = 9; void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // keep the color 1 second }

Al usar muchos colores, podríamos acortar el código de Arduino Nano creando una función:

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-led-rgb */ const int PIN_RED = 11; const int PIN_GREEN = 10; const int PIN_BLUE = 9; void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // keep the color 1 second } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

Conocimientos adicionales

Para un LED RGB con ánodo común, necesitas:

  • Conecta el pin común al 3.3V del Arduino Nano.
  • Utiliza la función analogWrite() con los valores de R, G y B como 255 menos el valor deseado para cada color, respectivamente.

Una secuencia de LEDs RGB conectados entre sí crea la tira de LEDs RGB. Las tiras de LEDs pueden dividirse en tiras de LEDs direccionables y tiras de LEDs no direccionables. Crearemos tutoriales para ambos tipos de tiras de LEDs.

※ Nota:

No use una única resistencia en el pin común de un LED RGB en lugar de tres resistencias en los otros pines. Esto se debe a que, aunque en teoría es aceptable usar una única resistencia en el pin común, en la práctica no es así. Los LEDs en un paquete RGB no son idénticos, lo que significa que las resistencias para cada LED serán diferentes. Esto provocará una distribución desigual de la corriente, dando lugar a diferentes niveles de brillo y, potencialmente, dañando uno o más de los LEDs, y finalmente afectando a los otros LEDs.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!