O Light Meter é um medidor analógico de luminosidade que usa um LDR (Light Dependent Resistor) conectado a um divisor de tensão para quantificar a intensidade de luz ambiente. A leitura ADC (0–1023) é mapeada em cinco faixas de brilho, cada uma acendendo um número diferente de LEDs coloridos como uma escala de barra visual — do mais escuro (4 LEDs acesos) ao mais claro (nenhum LED aceso).
O projeto é acompanhado de monitoramento serial em tempo real, permitindo observar os valores brutos do sensor no Arduino IDE durante a calibração ou depuração.
| Quantidade | Componente | Especificação |
|---|---|---|
| 1x | Arduino Uno (ou compatível) | Microcontrolador ATmega328P |
| 1x | LDR (fotoresistor) | Resistência: ~1kΩ (luz) a ~1MΩ (escuro) |
| 1x | Resistor de pull-down | 10kΩ (divisor de tensão com o LDR) |
| 1x | LED Vermelho | Pino D4 |
| 1x | LED Verde | Pino D8 |
| 1x | LED Azul | Pino D12 |
| 1x | LED Branco | Pino D13 |
| 4x | Resistores para LEDs | 220Ω ou 330Ω (limitadores de corrente) |
| — | Jumper wires | Macho-macho |
| 1x | Protoboard | — |
Arduino Uno
├── A0 → Saída do divisor de tensão (LDR + 10kΩ) [INPUT analógico]
├── D4 → LED Vermelho + resistor 220Ω → GND
├── D8 → LED Verde + resistor 220Ω → GND
├── D12 → LED Azul + resistor 220Ω → GND
└── D13 → LED Branco + resistor 220Ω → GND
Divisor de tensão (sensor):
5V → LDR → nó A0 → 10kΩ → GND
5V
│
LDR ← resistência varia com a luz
│
├──── A0 ← tensão lida pelo Arduino
│
10kΩ ← resistor fixo de referência
│
GND
Quando o ambiente está escuro, o LDR tem alta resistência → maior queda de tensão sobre ele → tensão em A0 cai → valor ADC baixo.
Quando o ambiente está claro, o LDR tem baixa resistência → menor queda no LDR → tensão em A0 sobe → valor ADC alto.
O Arduino lê o pino A0 com analogRead(), que converte a tensão (0–5V) em um valor inteiro de 0 a 1023 (resolução de 10 bits, ~4.88 mV por passo).
sensorValue = analogRead(sensor); // lê A0O valor lido é comparado com cinco limiares para determinar quantos LEDs acender:
| Faixa ADC | Condição de luz | LEDs acesos |
|---|---|---|
< 250 |
Muito escuro | 4 (Vermelho + Verde + Azul + Branco) |
250–499 |
Escuro | 3 (Vermelho + Verde + Azul) |
500–749 |
Meia-luz | 2 (Vermelho + Verde) |
750–899 |
Pouca luz | 1 (Vermelho) |
≥ 900 |
Claro / Bem iluminado | 0 (todos apagados) |
if (sensorValue < 250) { /* acende 4 LEDs */ }
else if (sensorValue < 500) { /* acende 3 LEDs */ }
else if (sensorValue < 750) { /* acende 2 LEDs */ }
else if (sensorValue < 900) { /* acende 1 LED */ }
else { /* apaga todos */ }A cada ciclo do loop, o valor atual do sensor é enviado para a porta serial:
Leitura atual do sensor: 312
Leitura atual do sensor: 287
Leitura atual do sensor: 104
Isso permite ajustar os limiares durante a calibração, observando os valores reais do seu ambiente.
O delay(130) ao final do loop() define uma taxa de amostragem de ~7,7 Hz — rápida o suficiente para resposta visual instantânea, sem sobrecarregar o monitor serial.
light meter/
├── readme.md # Esta documentação
├── sketch_light_meter/
│ └── sketch_light_meter.ino # Código completo do projeto
└── circuit_images/
├── image_simulador.png # Simulação no Wokwi/Tinkercad
└── Circuito_real.jpg # Foto do circuito físico montado
- Monte o circuito conforme o esquemático: divisor de tensão no A0 e LEDs nos pinos D4, D8, D12 e D13.
- Abra o sketch:
sketch_light_meter/sketch_light_meter.inono Arduino IDE. - Selecione a placa:
Tools → Board → Arduino Uno. - Selecione a porta:
Tools → Port → COMx. - Faça upload:
Ctrl+U. - Observe os LEDs acendendo e apagando conforme a luminosidade muda.
- Abra o Serial Monitor (
Ctrl+Shift+M, baud rate 9600) para ver os valores brutos do sensor.
Os valores 250, 500, 750 e 900 foram definidos para um ambiente típico de escritório. Seu LDR pode ter características diferentes. Para calibrar:
- Abra o Serial Monitor e observe os valores em diferentes condições de luz.
- Ajuste os limiares no código conforme os valores observados:
if (sensorValue < SEU_VALOR_1) { ... } else if (sensorValue < SEU_VALOR_2) { ... } // ...
- Re-upload o sketch.
Desenvolvido por Felipe Grolla

