Saber a quantidade de luz em um ambiente por ser útil de diversas maneiras, uma delas é poder controlar a iluminação de acordo não apenas com o horário, mas com as condições de iluminação, por exemplo, dia nublado, chuvoso ou de extremo Sol.
Para essa tarefa precisamos apenas de um Arduino:
Um LDR (Light dependent resistor – Resistor dependente de luz) que quanto mais luz recebe menor é sua resistência e o inverso também é verdadeiro, ou seja, quanto menos luz receber maior será sua resistência:
Também vamos precisar de um resistor, para fazer uma divisor de tensão e dessa forma determinar com mais precisão a resistência do LDR em relação a iluminação:
O valor resistor pode variar de acordo com o seu projeto e da aplicação e da sensibilidade que se espera. Utilizei um de 100 K ohm.
Ligue um terminal do resistor a um terminal do LDR. O outro terminal do resistor ligue o pino GND do Arduino e o outro terminal do LDR ao pino 5V do Arduino. Os pinos do resistor e do LDR que estão ligados juntos devem ser ligados ao pino analógico 0 (A0) do Arduino. Tudo montado e ligações OK:
O código:
{code}
int valor = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
valor = analogRead(0);
Serial.println(valor);
delay(1000);
}
{/code}
Entendendo o código:
Com Serial.begin(9600) iniciamos a comunicação serial com o computador com velocidade de 9.600bps.
Na linha valor = analogRead(0) lemos o valor analógico do pino analógico 0 (A0) do Arduino e armazenamos na variável valor.
Serial.prinln(valor) irá enviar serialmente o conteúdo da variável valor para o computador, valor que será visto pelo Serial Monitor do ambiente Arduino:
Para fazer o valor variar bloqueie ou libere luz no LDR.