Arduino Nano ESP32 - LED - Fade

Este tutorial ensina como usar:

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×LED Kit
1×LED (red)
1×LED Module
1×(Alternativa) Button and LED Kit
1×220Ω Resistor
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.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Sobre o LED

Pinagem do LED

O LED possui dois pinos:

  • Pino Cátodo(-): conecte este pino ao GND (0V)
  • Pino Ânodo(+): é usado para controlar o estado do LED
LED Pinout

Como o LED Funciona

Depois de conectar o cátodo(-) ao GND:

  • Se conectarmos o GND ao ânodo(+), o LED fica DESLIGADO.
  • Se conectarmos o VCC ao ânodo(+), o LED fica LIGADO.
  • Se gerarmos um sinal PWM no pino do ânodo(+), o brilho do LED é proporcional ao duty cycle do PWM. O duty cycle do PWM varia de 0 a 255. Quanto maior o duty cycle do PWM, mais brilhante é o LED.
    • Se o valor do PWM é 0, equivale ao GND ⇒ LED DESLIGADO
    • Se o valor do PWM é 255, equivale ao VCC ⇒ LED LIGADO com o brilho máximo.
    How LED Works

    ※ Nota:

    Normalmente, é necessário um resistor para proteger o LED contra queima. O valor da resistência depende da especificação do LED.

    Arduino Nano ESP32 - fade de LED

    Os pinos de saída digital do ESP32 podem ser programados para gerar sinal PWM. Conectando o pino ânodo(+) do LED a um pino do Arduino Nano ESP32, o cátodo(-) do LED ao GND, e programando o Arduino Nano ESP32 para mudar o duty cytle do PWM, podemos fazer o fade do LED.

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

The wiring diagram between Arduino Nano ESP32 and LED

This image is created using Fritzing. Click to enlarge image

Como Programar

  • Configure um pino do Arduino Nano ESP32 como pino de saída digital usando a função pinMode(). Por exemplo, o pino D5:
pinMode(D5, OUTPUT);
  • Defina o brilho do LED gerando um sinal PWM com o duty cycle correspondente usando a função analogWrite():
analogWrite(D5, brightness);

Onde brightness é um valor de 0 a 255.

Código Arduino Nano ESP32 - Exemplo Simples de Fade

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente do Arduino Nano ESP32 no Arduino IDE.
  • Ligue os componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Copie o código abaixo e cole no Arduino IDE.
/* * 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-fade */ #define LED_PIN D5 // The Arduino Nano ESP32 pin D5 connected to LED int brightness = 0; // how bright the LED is int fade_amount = 5; // how many points to fade the LED by // The setup function runs once on reset or power-up void setup() { // configure the Arduino Nano ESP32 pin as an output: pinMode(LED_PIN, OUTPUT); } // The loop function repeats indefinitely. void loop() { // set the brightness analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fade_amount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fade_amount = -fade_amount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE
Arduino IDE Upload Code
  • Veja o brilho do LED

Explicação do Código Linha por Linha

O código acima do Arduino Nano ESP32 contém uma explicação linha por linha. Por favor, leia os comentários no código!

※ Nota:

O exemplo acima usa a função delay() para fazer fade-in e fade-out. A função delay() faz o LED fazer o fade de forma irregular e bloqueia o outro código. Nas próximas partes, aprenderemos como fazer fade-in e fade-out de forma suave, sem bloquear o outro código, usando a função millis()

Como fazer fade-in de um LED em um período sem usar delay()

/* * 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-fade */ #define LED_PIN D5 // The Arduino Nano ESP32 pin D5 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long start_time; // The setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // configure the Arduino Nano ESP32 pin as an output start_time = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // restart fade again } }

Como fazer fade-out de um LED em um período sem usar delay()

/* * 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-fade */ #define LED_PIN D5 // The Arduino Nano ESP32 pin D5 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long start_time; // The setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // configure the Arduino Nano ESP32 pin as an output start_time = millis(); } // fade-out in loop, and restart after finishing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // restart fade again } }

Vídeo

Referências da Linguagem

※ 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!