Arduino - LED - Fade

Neste tutorial, vamos aprender:

※ Nota:

Este tutorial traz um conhecimento aprofundado que ajuda você a entender o princípio de funcionamento. Para facilitar, você pode usar a biblioteca Arduino - LED.

Hardware Necessário

1×Arduino Uno R3
1×Cabo USB 2.0 tipo A/B (para PC com USB-A)
1×Cabo USB 2.0 tipo C/B (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×(Recomendado) Shield com Bornes de Parafuso para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Case para Arduino Uno
1×(Recomendado) Placa Base de Prototipagem e Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
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

O LED tem dois pinos:

  • Pino catodo(-): precisa ser conectado ao GND (0V)
  • Pino anodo(+): é usado para controlar o estado do LED
Pinagem do LED

Como Funciona

Depois de conectar o catodo(-) ao GND:

  • Se conectar o GND ao anodo(+), o LED fica DESLIGADO.
  • Se conectar o VCC ao anodo(+), o LED fica LIGADO.
  • Se gerarmos um sinal PWM no anodo(+), o brilho do LED muda de acordo com o valor do PWM. O valor do PWM varia de 0 a 255. Quanto maior o valor do PWM, mais brilhante fica o LED. Quanto menor o valor do PWM, mais escuro fica o LED.
    • Se o valor do PWM for 0, é o mesmo que GND, então o LED fica DESLIGADO
    • Se o valor do PWM for 255, é o mesmo que VCC, então o LED fica totalmente LIGADO
    Como o LED funciona

    ※ Nota:

    Para a maioria dos LEDs, é preciso usar um resistor entre o anodo(+) e o VCC. O valor do resistor depende da especificação do LED.

    Arduino - fade no LED

    Alguns pinos do Arduino podem ser programados para gerar sinal PWM. Podemos fazer fade no LED conectando o pino anodo(+) do LED a um pino do Arduino, o catodo(-) do LED ao GND, e programando o pino do Arduino para gerar PWM.

Diagrama de Ligação

Diagrama de ligação do LED com Arduino

This image is created using Fritzing. Click to enlarge image

Como Programar

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

Onde brightness é um valor de 0 a 255.

Código Arduino - Exemplo de Fade do Arduino IDE

Passos Rápidos

  • Conecte o Arduino ao PC por meio do cabo USB
  • Abra o Arduino IDE e selecione a placa e a porta corretas
  • Copie o código abaixo e cole-o no Arduino IDE
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Clique no botão Upload do Arduino IDE para carregar o código no Arduino
Arduino IDE - Carregar o código
  • Observe o brilho do LED

Explicação do Código

Leia a explicação linha por linha nos comentários do código!

※ Nota:

O exemplo acima usa a função delay() para fazer o fade-in e o fade-out. A função delay() faz o fade do LED ficar irregular e bloqueia outros códigos. Nas próximas partes, vamos aprender a fazer o fade-in e o fade-out de forma suave, sem bloquear outros códigos, usando a função millis()

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

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

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

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Vídeo

Desafie-se

Mude o brilho do LED usando um potenciômetro. Dica: veja Arduino - Potenciômetro.

Conhecimento Adicional

  • O sinal PWM gerado pela função analogWrite() faz fade no LED. Isso acontece porque é um PWM de alta frequência. Se criarmos uma função personalizada (exige conhecimento avançado) que gere um sinal PWM de baixa frequência, o LED vai piscar em vez de fazer fade.
  • Resumo: o sinal PWM pode ser usado no Arduino para: controlar servo motor, controlar motor DC, gerar som com um buzzer piezo, fazer fade no LED, piscar o LED...

Referências de Funções

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