
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Medição da intensidade da luz com LDR
4// ─────────────────────────────────────────
5// Lê a luz ambiente em A0 através de um divisor de tensão formado por um
6// LDR e um resistor de 10k, e mostra o valor 0-1023 no Monitor Serial a
7// cada 0.5 s. O valor sobe conforme a luz fica mais forte.
8//
9// Pinos:
10// A0 -> Junção do LDR com o resistor de 10k
11// Outra perna do LDR em 5V, outra perna do 10k em GND
12
13int value; // Leitura de luz (0-1023)
14
15void setup() {
16 Serial.begin(9600); // Serial a 9600 baud
17}
18
19void loop() {
20 value = analogRead(A0); // Lê a tensão do LDR
21 Serial.print("Value: ");
22 Serial.println(value);
23 delay(500); // Espera 0.5 s
24}
25
Perguntas frequentes
Como o LDR funciona?
Quanto mais luz incide sobre o LDR (resistor dependente de luz), menor é sua resistência. Ao montar um divisor de tensão com um resistor de 10 kΩ, as variações de luz se transformam em variações de tensão e podem ser lidas como um valor entre 0 e 1.023 usando `analogRead`.
Quais devem ser os valores lidos no claro e no escuro?
Depende da ligação; em geral, os valores são altos no claro e baixos no escuro (ou o contrário). Use o Monitor Serial para anotar os valores no claro e no escuro no seu ambiente; eles servirão para escolher os valores de limiar em projetos futuros.
Por que aparecem caracteres sem sentido no Monitor Serial?
A taxa de transmissão no Monitor Serial deve ser igual ao valor definido na função `Serial.begin()` do código (por exemplo, 9600). Se forem diferentes, aparecerão caracteres ilegíveis na tela.
Existe um sensor de luz mais sensível que o LDR?
Sim, sensores de luz I2C como o BH1750 medem a luz diretamente em lux (lx) e são muito mais consistentes que os LDRs. Um LDR é suficiente para luzes noturnas simples e detecção de escuridão.
