#11Iniciante

Medição da intensidade da luz com LDR

4.6(80)
134 concluído
Medição da intensidade da luz com LDR
Quer ver a luminosidade do seu quarto em números? O LDR, um pequeno componente sensível à luz, mede a luz ambiente, e o Arduino exibe o valor na tela do computador a cada meio segundo. Cubra o sensor com a mão e veja o número mudar; esse é o primeiro passo para projetos como uma luz noturna que acende sozinha.

Vídeo

Esquema do circuito

Medição da intensidade da luz com LDR - Circuit

Código-fonte

Arduino (C++)
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.