(Logo, pesquisa)

Cursos Materiais Sobre Contato

Sensor de Iluminância com LDR e Arduino: Montagem e Análise Experimental

 

1. Introdução

Este artigo descreve a montagem e o funcionamento de um sistema simples para monitoramento de iluminância (lux) utilizando um sensor LDR (Light Dependent Resistor) em conjunto com um Arduino Uno. Através da leitura analógica da tensão em um divisor de tensão formado por um LDR e um resistor de 10 kΩ, é possível estimar a iluminância do ambiente com base em uma curva de resposta típica do sensor. 

Neste projeto, um LDR é utilizado como sensor primário, sendo lido através da entrada analógica de um microcontrolador Arduino Uno. O objetivo é estimar os valores de iluminância do ambiente em tempo real, exibindo-os no Monitor Serial. O projeto fornece uma solução acessível e didática para introdução ao sensoriamento ambiental. Temos que lembrar que o LDR não apresenta uma variação linear de resistência em função a iluminância, como apresentado neste artigo


1.1 Fórmula do Divisor de Tensão:

A leitura da intensidade luminosa é feita indiretamente, medindo a tensão de saída de um divisor resistivo formado por um resistor fixo de 10 kΩ e o LDR. O ponto de leitura (nó central) é conectado à entrada analógica A0 do Arduino. É necessário calcular valores aproximados para essa curva de resistência em função da iluminância, como a seguir:

A tensão de saída VoutV_{out} é dada por:

Vout=R10kRLDR+R10k×VinV_{out} = \frac{R_{10k}}{R_{LDR} + R_{10k}} \times V_{in}

Reorganizando para obter a resistência do LDR:

RLDR=R10k×(VinVout1)R_{LDR} = R_{10k} \times \left( \frac{V_{in}}{V_{out}} - 1 \right)


1.2. Estimando a Iluminância (lux):

A relação entre a resistência do LDR e a iluminância geralmente segue uma curva do tipo:

RLDR=AEBR_{LDR} = A \cdot E^{-B}

ou

log(RLDR)=log(A)Blog(E)\log(R_{LDR}) = \log(A) - B \cdot \log(E)

Assumindo uma forma aproximada com base nos valores fornecidos (500Ω a 180kΩ para baixa a alta luz), podemos estimar:

E(lux)=10(log10(A)log10(RLDR))/BE(lux) = 10^{\left(\log_{10}(A) - \log_{10}(R_{LDR})\right)/B}

Vamos ajustar com dados experimentais aproximados:

  • A ≈ 100000

  • B ≈ 0.7 (também chamado de Gamma)


2. Materiais Utilizados

  • 01 Arduino Uno

  • 01 LDR (resistência de 500Ω a 180kΩ - presente no TinkerCAD)

  • 01 resistor de 10 kΩ (±5%)

  • Jumpers

  • Protoboard

  • Cabo USB


3. Circuito



4. Programação


const int LDR_PIN = A0;
const float VCC = 5.0;
const float R_FIXED = 10000.0; // resistor de 10kΩ

void setup() {
  Serial.begin(9600);
}

void loop() {
  int leitura = analogRead(LDR_PIN);
  
  // Calcula a tensão em A0
  float Vout = leitura * (VCC / 1023.0);

  // Calcula a resistência do LDR
  float R_LDR = (R_FIXED * (VCC - Vout)) / Vout;

  // Estimar a iluminância (lux)
  // Fórmula baseada em ajuste experimental aproximado:
  float lux = pow(10, (log10(100000.0) - log10(R_LDR)) / 0.7);

  Serial.print("Leitura ADC: ");
  Serial.print(leitura);
  Serial.print(" | Resistencia LDR: ");
  Serial.print(R_LDR);
  Serial.print(" ohms | Iluminancia estimada: ");
  Serial.print(lux);
  Serial.println(" lux");

  delay(1000);
}

5. Conclusão e Notas Finais


Com o circuito montado, é possível observar valores variando de aproximadamente 20 lux em ambiente escuro até 5000 lux sob luz solar indireta. O sistema apresenta bom comportamento qualitativo, sendo sensível a mudanças rápidas na luz, como passagem de sombras ou acendimento de luminárias. Pela simplicidade, não é possível utilizar como instrumento de medição por baixa confiabilidade e aproximações necessárias da curva. Lembrando:
  • A equação para lux é aproximada e baseada em características típicas deste LDR específico (do TinkerCAD).

  • Para maior certeza na medição, use uma tabela de calibração com medidor de lux real.

  • Você pode ajustar os parâmetros A e B conforme o modelo do LDR usado.