Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

💡 Light Meter

Medidor de luminosidade ambiental com LDR e escala de LEDs coloridos

Arduino C++ MIT License


📋 Descrição

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.


⚙️ Componentes Utilizados

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

🔌 Pinagem

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

Como Montar o Divisor de Tensão

    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.


🖼️ Esquemático

Simulação Circuito Real


💻 Como Funciona

Leitura Analógica

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ê A0

Mapeamento por Faixas (Thresholds)

O 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   */ }

Monitoramento Serial

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.

Cadência de Leitura

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.


🗂️ Estrutura dos Arquivos

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

🚀 Como Usar

  1. Monte o circuito conforme o esquemático: divisor de tensão no A0 e LEDs nos pinos D4, D8, D12 e D13.
  2. Abra o sketch: sketch_light_meter/sketch_light_meter.ino no Arduino IDE.
  3. Selecione a placa: Tools → Board → Arduino Uno.
  4. Selecione a porta: Tools → Port → COMx.
  5. Faça upload: Ctrl+U.
  6. Observe os LEDs acendendo e apagando conforme a luminosidade muda.
  7. Abra o Serial Monitor (Ctrl+Shift+M, baud rate 9600) para ver os valores brutos do sensor.

🔧 Calibração dos Limiares

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:

  1. Abra o Serial Monitor e observe os valores em diferentes condições de luz.
  2. Ajuste os limiares no código conforme os valores observados:
    if      (sensorValue < SEU_VALOR_1) { ... }
    else if (sensorValue < SEU_VALOR_2) { ... }
    // ...
  3. Re-upload o sketch.

Desenvolvido por Felipe Grolla

About

A digital light meter and lux monitoring system designed for accurate ambient light and illuminance measurement in real time.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages