
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Measuring Light Intensity with an LDR
4// ─────────────────────────────────────────
5// Reads the ambient light on A0 through a voltage divider made of an LDR
6// and a 10k resistor, and prints the 0-1023 value to the Serial Monitor
7// every 0.5 s. The value rises as the light gets brighter.
8//
9// Pins:
10// A0 -> Junction of the LDR and the 10k resistor
11// LDR other leg to 5V, 10k other leg to GND
12
13int value; // Light reading (0-1023)
14
15void setup() {
16 Serial.begin(9600); // Serial at 9600 baud
17}
18
19void loop() {
20 value = analogRead(A0); // Read the LDR voltage
21 Serial.print("Value: ");
22 Serial.println(value);
23 delay(500); // Wait 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.
