Arduino UNO R4 - Fade LED

Este tutorial ensina como programar o Arduino UNO R4 para fazer um LED variar o brilho (fade e dim). Em detalhes, vamos aprender:

Arduino UNO R4 Fade LED

Sobre o LED

Pinagem

O LED tem dois pinos:

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

Como Funciona

Depois de conectar o lado negativo (catodo) ao terra (GND):

  • Se você conectar o terra (GND) ao lado positivo (anodo) do LED, ele desliga.
  • Se você conectar a fonte de alimentação (VCC) ao lado positivo (anodo) do LED, ele liga.
  • Se você enviar um sinal de Modulação por Largura de Pulso (PWM) ao lado positivo (anodo) do LED, você pode mudar o brilho. O valor do PWM pode ficar entre 0 e 255. Um valor de PWM maior deixa o LED mais brilhante, e um valor menor o deixa mais fraco.
    • Se o valor do PWM for 0, é como conectar ao GND, então o LED desliga.
    • Se o valor do PWM for 255, é como conectar ao VCC, então o LED fica totalmente ligado.
    Como o LED Funciona

    ※ Nota:

    Para a maioria dos LEDs, você precisa conectar um resistor entre o terminal positivo (anodo) e a fonte de alimentação (VCC). O valor do resistor varia de acordo com as especificações do LED.

    Arduino UNO R4 - fade LED

    Podemos fazer um LED variar o brilho (fade/dim) usando alguns dos pinos do Arduino UNO R4 que conseguem gerar um sinal PWM. Primeiro, conecte o pino positivo (+) do LED a um dos pinos do Arduino UNO R4. Depois, conecte o pino negativo (-) do LED ao terra (GND). Em seguida, você pode configurar o pino escolhido do Arduino para produzir um sinal PWM.

Diagrama de Ligação

Diagrama de Ligação do LED com Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

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

Como Programar

  • Defina o modo do pino de um Arduino UNO R4 como saída digital usando a função pinMode(). Por exemplo, para o pino 9:
pinMode(9, OUTPUT);
  • Ajuste o brilho do LED usando a função analogWrite() para criar o sinal PWM apropriado.
analogWrite(9, brightness);

O brilho pode variar de 0 a 255.

Código Arduino UNO R4 - Exemplo Fade da Arduino IDE

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-fade-led */ #define LED_PIN 9 // The Arduino UNO R4 pin connected to the LED int brightness = 0; // how bright the LED is int fade_step = 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 + 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

Siga estas instruções passo a passo:

  • Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima na Arduino IDE.
  • Conecte o LED ao Arduino Uno R4 de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Copie o código acima e cole-o na Arduino IDE.
  • Clique no botão Upload na Arduino IDE para enviar o código ao Arduino UNO R4.
Arduino IDE Upload do Código
  • Observe o brilho do LED.

Explicação do Código

A explicação está nos comentários do código Arduino acima.

※ Nota:

No exemplo acima, usamos uma função chamada delay() para deixar a luz mais brilhante e mais fraca aos poucos. No entanto, usar delay() faz a luz mudar de forma menos suave e impede que as outras partes do programa funcionem enquanto ele espera. Na próxima parte, vamos aprender a fazer a luz mudar de forma suave, sem parar o resto do programa, usando a função millis().

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

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

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

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

Vídeo

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!