Projeto 3 – Brilho oscilante

Nos projetos anteriores vimos como ligar e desligar o nosso LED. Mas e se quiséssemos variar o brilho dessa luz? Com diversos componentes às vezes queremos variar a sua intensidade, e não apenas ligar ou desligar. Um motor, por exemplo, podemos querer variar a sua velocidade. Para isso usaremos uma função diferente do Arduino, a sua saída analógica.

Funcionamento projeto 3

O que são portas digitais e analógicas?

Os pinos do Arduino são chamados de portas e é por elas que a placa controla entrada ou saída de energia. Uma porta de saída controla um dispositivo e porta de entrada entrada lê um sinal de um dispositivo externo. Nos exemplos anteriores, usamos uma porta de saída para ligar um LED. Nos projetos futuros, veremos como utilizar uma porta de entrada para receber informações dos sensores. Assim, o Arduino pode ser ligado em conjunto com dispositivos externos para controlá-los ou para ler suas informações.

As portas do Arduino podem ser digitais ou analógicas. Quando estávamos fazendo o LED piscar, estávamos utilizando uma saída digital do Arduino. Uma saída digital é composta por apenas dois estados, ligado ou desligado. Um exemplo disso poderíamos ter ao jogar uma moeda que possui apenas dois estados: ou cara ou coroa.

Por outro lado, uma saída analógica é composta por vários estados, podendo ser alto, pouco alto, médio, pouco baixo, baixo. Por exemplo, um aparelho de som pode ter o volume muito alto, alto, médio, pouco baixo ou baixo.

Sinal digital analógico

Usando as portas analógicas podemos também variar o brilho de um LED. No programa, fazemos isso através da função analogWrite(), que manda um valor para uma saída analógica. Assim, em vez de termos apenas dois estados, ligado/desligado, podemos ter vários estados intermediários, variando assim o brilho do LED. Da mesma forma, é possível variar velocidade de motores, volume de um som, temperatura em um chuveiro e etc. Mas isso é possível apenas nos pinos que estão marcados com um til “~” indicando que o pino suporta a saída analógica. Para o nosso exemplo, iremos utilizar o pino 11, que possui o indicador de saída analógica.

Material necessário

1x LED Vermelho 5mm
1x Resistor 220 ohm
1x Protoboard
2x Jumper macho-macho
1x Cabo USB
1x Placa Uno

Montagem do circuito

Neste projeto continuaremos com o mesmo circuito dos projetos anteriores

Montagem circuito PWM com Arduino e LED

Programa Projeto 3 Brilho do LED

//   Projeto 3 - Brilho do LED 


// configura a saída 11 como pino do LED
int pinoLed = 11;

void setup() {
  // configura pino do LED como saída
  pinMode(pinoLed,OUTPUT);
}

void loop(){
  acendeBrilho(5);
  apagaBrilho(5);
}

void acendeBrilho(int increamento){
  // muda o brilho pelo loop for
  for (byte value = 0 ; value < 255; value+=increamento){
    // controla o brilho no pino do LED
    analogWrite(pinoLed, value);
    delay(30);
  } 
}

void apagaBrilho(int decreamento){
  // muda o brilho pelo loop for
  for (byte value = 255; value >0; value-=decreamento){
    // controla o brilho no pino do LED
    analogWrite(pinoLed, value); 
    delay(30); 
  }
}

Possíveis erros

Caso o projeto não funcione, verifique alguns dos possíveis erros:

  • Verifique se os jumpers estão na mesma coluna dos terminais dos componentes, fazendo assim a conexão;
  • Verifique se os jumpers estão ligados nos pinos corretos no Arduino;
  • Verifique se o LED não está conectado invertido, ou seja, terminal negativo no pino 11 e positivo no pino GND;
  • Verifique se o código carregou na placa através da IDE Arduino.

Desafios

Veja abaixo alguns desafios que você pode tentar!

  • Troque o LED por outro de cor diferente;
  • Monte o circuito de uma maneira alternativa usando outros furos e posições na protoboard;
  • Mude o intervalo de tempo que o LED pisca mudando o valor na programação na linha delay(30); por exemplo: delay(350);

Alguma dúvida, comentário ou algo que queira acrescentar? Entre no tópico do nosso fórum!