Bargraph de LDR

Com este exemplo você aprenderá como criar um bargraph com LED e fazê-lo acender de maneira proporcional a intensidade da luminosidade em cima do LDR.

Dificuldade:

Montagem:

Programação:


Material Utilizado:

Arduino Uno

Cabo USB A para B

Protoboard 400

Resistor 330Ω

Resistor 10KΩ

LDR

LED Vermelho

LED Amarelo

LED Verde

Alguns Jumpers

A Montagem

O Sketch

#define LDR A0 //Define LDR como A0
#define L_1  2 //Define L_1 como 2
#define L_2  3 //Define L_2 como 3
#define L_3  4 //Define L_3 como 4
#define L_4  5 //Define L_4 como 5
#define L_5  6 //Define L_5 como 6
#define L_6  7 //Define L_6 como 7
#define L_7  8 //Define L_7 como 8
#define L_8  9 //Define L_8 como 9
#define L_9  10 //Define L_9 como 10
#define L_10 11 //Define L_10 como 11

float luminosidade; //Variável para armazenar o valor da luminosidade
float amostra; //Variável para armazenar o amostratória

void
setup()
{   

//Configura todos os pinos do Bargraph (2 a 10) e desligao s LEDs

  for(int i=2 ; i<= 10 ; i++)
  {
  pinMode(i, OUTPUT); //Configura os pinos de acionamento dos LED como saída
  digitalWrite(i, LOW); //Desliga todos os LEDs
  }   //===============================================================

}

void
loop()
{   

amostra = 0; //Zera a variável amostra

 //Pega 1000 amostras   
for(int i=0; i < 100 ; i++)  
 {   
luminosidade = analogRead(LDR);//Armazena o valor lido pelo LDR luminosidade = (luminosidade / 1024) * 100; //Transforma o valor lido em porcentagem   
amostra = amostra + luminosidade; //Armazena na variável amostra   
}  
//=================      

amostra = amostra/100; //Tira a média das amostras
     
delay
(250); //Delay de 250 milissegundos      

bargraph(); //Vai para a função do Bargraph e depois volta

}

void
bargraph()
{      

if(amostra >= 10) digitalWrite(L_1, HIGH); //Aciona o L_1 se luminosidade for maior ou igual que 10%   
else
digitalWrite(L_1, LOW); //Senão desliga o L_1      

if(amostra >= 20) digitalWrite(L_2, HIGH); //Aciona o L_2 se luminosidade for maior ou igual que 20%   
else digitalWrite(L_2, LOW); //Senão desliga o L_2     

if(amostra >= 30) digitalWrite(L_3, HIGH); //Aciona o L_3 se luminosidade for maior ou igual que 30%   
else digitalWrite(L_3, LOW); //Senão desliga o L_3      

if(amostra >= 40) digitalWrite(L_4, HIGH); //Aciona o L_4 se luminosidade for maior ou igual que 40%   
else digitalWrite(L_4, LOW); //Senão desliga o L_4      

if(amostra >= 50) digitalWrite(L_5, HIGH); //Aciona o L_5 se luminosidade for maior ou igual que 50%   
else
digitalWrite(L_5, LOW); //Senão desliga o L_5      

if(amostra >= 60) digitalWrite(L_6, HIGH); //Aciona o L_6 se luminosidade for maior ou igual que 60%   
else
digitalWrite(L_6, LOW); //Senão desliga o L_6      

if(amostra >= 70) digitalWrite(L_7, HIGH); //Aciona o L_7 se luminosidade for maior ou igual que 70%   
else
digitalWrite(L_7, LOW); //Senão desliga o L_7      

if(amostra >= 80) digitalWrite(L_8, HIGH); //Aciona o L_8 se luminosidade for maior ou igual que 80%   
else
digitalWrite(L_8, LOW); //Senão desliga o L_8      

if(amostra >= 85) digitalWrite(L_9, HIGH); //Aciona o L_9 se luminosidade for maior ou igual que 85%   
else
digitalWrite(L_9, LOW); //Senão desliga o L_9      

if
(amostra >= 95) digitalWrite(L_10, HIGH); //Aciona o L_10 se luminosidade for maior ou igual que 90%   
else
digitalWrite(L_10, LOW); //Senão desliga o L_10   

}