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:
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
}