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