Arduino Nano - LED - Fade

Este tutorial ensina você a programar o Arduino Nano para fazer o fade de um LED. Vamos ver três exemplos e comparar as diferenças entre eles:

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
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) 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

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 tem dois pinos:

  • Pino Catodo(-): deve ser ligado ao GND (0V)
  • Pino Anodo(+): usado para controlar o estado do LED
Pinagem do LED

Como Funciona

Quando o catodo(-) está ligado ao GND:

  • Se o GND estiver ligado ao anodo(+), o LED ficará DESLIGADO.
  • Se o VCC estiver ligado ao anodo(+), o LED ficará LIGADO.
  • Se um sinal PWM for aplicado ao anodo(+), o brilho do LED será ajustado de acordo com o valor do PWM, que vai de 0 a 255. Um valor de PWM maior deixa o LED mais brilhante, enquanto um valor de PWM menor deixa o LED mais escuro.
    • Quando o valor do PWM é 0, ele equivale ao GND, então o LED fica DESLIGADO.
    • Quando o valor do PWM é 255, ele equivale ao VCC, então o LED fica totalmente LIGADO.
    Como o LED funciona

    ※ Nota:

    Na maioria dos LEDs, é preciso colocar um resistor entre o anodo(+) e o VCC. O valor do resistor depende das especificações do LED.

    Arduino Nano - fade de LED

    Alguns dos pinos de um Arduino Nano podem ser programados para gerar um sinal PWM. Para fazer o fade de um LED, podemos ligar o pino anodo (+) do LED a um pino do Arduino Nano, o catodo (-) ao GND e programar o pino do Arduino Nano para gerar PWM.

Diagrama de Ligação

Diagrama de ligação do LED com Arduino Nano

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Como Programar

  • Configure uma saída digital em um pino do Arduino usando a função pinMode().
  • Por exemplo, isso pode ser feito para o pino 5:
pinMode(5, OUTPUT);
  • Ajuste o brilho do LED criando um sinal PWM com a função analogWrite():
analogWrite(5, brightness);

O brilho pode variar de 0 a 255.

Código Arduino Nano - Fade de LED

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // The Arduino PWM pin the LED is attached to int brightness = 0; // how bright the LED is int fade_step = 5; // how many points to fade the LED by // The setup function runs once on reset or power-up void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // The loop function repeats indefinitely. void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fade_step; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // wait for 30 milliseconds to see the dimming effect delay(30); }

Passos Rápidos

  • Conecte o Arduino Nano ao computador usando um cabo USB.
  • Abra o Arduino IDE e selecione a placa e a porta corretas.
  • Copie o código acima e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para compilar e fazer o upload do código para a placa Arduino Nano.
Upload de código no Arduino IDE
  • Observe a luminosidade do LED.

Explicação do Código

Confira a explicação linha por linha contida nos comentários do código-fonte!

※ Nota:

O exemplo acima usa a função delay() para criar o efeito de fade-in e fade-out. No entanto, esse método não é muito suave e impede que outro código seja executado. Nas próximas seções, vamos aprender a obter um fade-in e fade-out suave, sem bloquear 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 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // the Arduino PWM pin the LED is attached to #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long start_time; // The setup function runs once on reset or power-up void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 5 to be 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 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // the Arduino PWM pin the LED is attached to #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long start_time; // The setup function runs once on reset or power-up void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 5 to be 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

Desafie-se

Ajuste o brilho do LED com um potenciômetro. Dica: Veja o tutorial Arduino Nano - Potenciômetro para mais informações.

Conhecimento Adicional

  • A função analogWrite() do Arduino Nano gera um sinal PWM que faz o LED fazer fade. No entanto, se você tiver conhecimento avançado para criar uma função própria que produza um sinal PWM de baixa frequência, o LED vai piscar em vez de fazer fade.
  • Resumo: Os sinais PWM gerados pelo Arduino Nano podem ser usados para várias finalidades, como controlar servo motores, motores DC, produzir som com um buzzer piezo, fazer fade de LEDs e piscar LEDs.

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!