Arduino Nano ESP32 - LED RGB

Este tutorial ensina como controlar um LED RGB para emitir qualquer cor usando o Arduino Nano ESP32.

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×RGB LED
1×(Alternativa) Módulo LED RGB
1×Protoboard
1×Fios Jumper
1×(Opcional) Conector de Alimentação DC
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o LED RGB

O LED RGB pode emitir qualquer cor misturando as 3 cores básicas: vermelho, verde e azul. Um único LED RGB é composto por 3 LEDs: vermelho, verde e azul. Esses três LEDs são colocados em um único encapsulamento, de modo que parece um único LED.

Pinagem do LED RGB

O LED RGB possui quatro pinos:

  • Pino R (vermelho): controla o elemento de cor vermelha
  • Pino G (verde): controla o elemento de cor verde
  • Pino B (azul): controla o elemento de cor azul
  • Pino Comum (Cátodo-): conecte este pino ao GND (0V)
RGB LED Pinout

Para ligar o LED RGB ao ESP32, precisamos adicionar resistores limitadores de corrente. Isso pode complicar a ligação. Felizmente, podemos usar um módulo LED RGB que já vem com resistores limitadores de corrente.

O Módulo LED RGB também possui quatro pinos:

  • Pino Comum (Cátodo-): precisa ser conectado ao GND (0V)
  • R (vermelho): o pino é usado para controlar o vermelho
  • G (verde): o pino é usado para controlar o verde
  • B (azul): o pino é usado para controlar o azul
RGB LED Module Pinout

※ Nota:

De acordo com o pino comum, existem dois tipos de LED: ânodo comum e cátodo comum. Este tutorial usa um LED de cátodo comum.

Como o LED RGB funciona

Em termos de física, uma cor é a combinação de três elementos de cor: Vermelho (R), Verde (G) e Azul (B). O valor de cada elemento de cor varia de 0 a 255. A combinação dos valores dos três elementos de cor cria 256 x 256 x 256 cores no total.

Se gerarmos sinais PWM nos pinos R, G e B, o LED RGB exibe uma cor correspondente aos valores do duty cycle do PWM. Alterando o duty cycle dos sinais PWM (de 0 a 255), o LED RGB pode exibir qualquer cor. Os valores de cor do Vermelho (R), Verde (G) e Azul (B) correspondem ao duty cycle do PWM nos pinos R, G e B, respectivamente.

Diagrama de Ligação entre o LED RGB e o Arduino Nano ESP32

  • Diagrama de ligação entre o Arduino Nano ESP32 e o LED RGB
The wiring diagram between Arduino Nano ESP32 and RGB LED

This image is created using Fritzing. Click to enlarge image

  • Diagrama de ligação entre o Arduino Nano ESP32 e o módulo LED RGB
The wiring diagram between Arduino Nano ESP32 and RGB LED module

This image is created using Fritzing. Click to enlarge image

Como Controlar o LED RGB

Vamos supor que queremos exibir a cor #00979D no LED RGB. Podemos seguir estes passos:

  • Encontre o código da cor. Dicas:
  • Converta o código da cor em valores R, G, B usando a ferramenta do w3school. Anote esses valores. Neste caso: R = 0, G = 151, B = 157
RGB LED color picker
  • Defina os pinos do Arduino Nano ESP32 que se conectam aos pinos R, G e B. Por exemplo:
#define PIN_RED D11 // The Arduino Nano ESP32 pin connected to R pin #define PIN_GREEN D10 // The Arduino Nano ESP32 pin connected to G pin #define PIN_BLUE D9 // The Arduino Nano ESP32 pin connected to B pin
  • Configure esses pinos do Arduino Nano ESP32 no modo de saída
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Controle o LED para emitir essa cor (#00979D → R = 0, G = 151, B = 157)
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Arduino Nano ESP32 - Código de Exemplo do LED RGB

O código abaixo muda a cor do LED entre as seguintes cores em sequência:

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-rgb */ #define PIN_RED D11 // The Arduino Nano ESP32 pin connected to R pin #define PIN_GREEN D10 // The Arduino Nano ESP32 pin connected to G pin #define PIN_BLUE D9 // The Arduino Nano ESP32 pin connected to B pin 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 }

Ao usar muitas cores, podemos encurtar o código criando uma função:

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-rgb */ #define PIN_RED D11 // The Arduino Nano ESP32 pin connected to R pin #define PIN_GREEN D10 // The Arduino Nano ESP32 pin connected to G pin #define PIN_BLUE D9 // The Arduino Nano ESP32 pin connected to B pin 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); }

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!