Este exemplo demonstra o uso da função analogWrite() para apagar um LED em fade (variação gradual). AnalogWrite usa um pulso PWM, alternando o pino digital on e off rapidamente, criando o efeito de fade.

O Que Vou Aprender?

- Acender e apagar um LED em fade
- Intensificar o conceito de PWM

Conhecimentos Prévios

- PWM
- Função AnalogWrite()
- Polaridade de um LED
- Incrementar e manipular variáveis

Código Fonte

Download do arquivo em formato .ino

Materiais Necessários

Para este tutorial você vai precisar de 1 Arduino Uno R3, 1 LED, 1 Resistor 330Ω, 1 Protoboard, 1 Cabo USB - AB e Jumpers premium. Ou você pode utilizar os componentes do Kit Iniciante com Arduino Uno R3.

Tutorial Multilógica-Shop Arduino Fade

 

Diagrama

Tutorial Multilógica-Shop Arduino Fade

 

Código Fonte

Conecte a perna mais longa do LED no pino digital 9 de seu Arduino através de um resistor de 330Ω. Conecte a perna mais curta do LED diretamente ao terra.

Após definir que o pino 9 será seu ledPin, nada mais deverá ser feito na função setup() do código.

A função analogWrite() que você vai usar no loop principal do código requer dois argumentos: um deles informando à função qual pino deve acionar e outra indicando qual valor PWM utilizar.

Para executar o fade no LED, gradualmente aumente o valor PWM de 0 (totalmente desligado) a 255 (totalmente ligado) e depois diminua novamente a 0 para completar o ciclo. No código abaixo, o valor PWM é definido usando uma variável chamada brightness. Cada vez que o loop roda ele aumenta o valor da variável de acordo com o fadeAmount.

Se brightness é definida entre os valores extremos (0 ou 255), então fadeAmount muda para seu negativo. Por exemplo, se fadeAmount é 5, em seguida ele é definido como -5. Se é -5, então seria definido 5. A próxima vez que rodar o loop, esta mudança causa que o incremento de brightness mude também de direção.

analogWrite() pode mudar o valor PWM muito rapidamente, então o delay no final do código controla a velocidade do fade. Tente modificar o valor do delay e veja como isso muda o programa.

/*
 Fade
 
 Este exemplo mostra como executar um fade em um LED no pino 9 usando a funcao analogWrite().
 Este exemplo e de dominio publico
 */

int led = 9;           // pino do LED
int brightness = 0;    // intensidade do brilho do LED
int fadeAmount = 5;    // em quantos pontos aplicar o fade no LED

void setup()  {
  // define o pino 9 como saida:
  pinMode(led, OUTPUT);
}

// o loop roda em sequencia continuamente:
void loop()  {
  // define o brilho do pino 9:
  analogWrite(led, brightness);    

  // muda o brilho para o proximo loop:
  brightness = brightness + fadeAmount;

  // inverte a direcao do fade ao final do mesmo:
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }    
  // aguarda 30 milissegundos para ver o efeito dimer:    
  delay(30);                            
}

 

Dicas

Outros elementos também utilizam sinais PWM e têm diferentes funções:

Micromotor metálico
Variar a velocidade do giro do motor
Tutorial Multilógica-Shop Arduino Fade

 

Servomotor
Variar a posição do servo motor em graus.
Tutorial Multilógica-Shop Arduino Fade

 

Este tutorial é parte integrante do Guia Iniciante Arduino, desenvolvido pela equipe da Multilógica-Shop. Faça download grátis do arquivo com 11 tutoriais. Neste guia você também vai encontrar, além de indicações de instalação e tutoriais, uma grande quantidade de informações sobre todo o ambiente que está ao redor desta plataforma.

Guia Arduino Iniciante Multilógica-Shop