Controlando o Brilho do LED com Sensor de Luz (LDR) e PWM

Hoje vamos avançar no projeto anterior: em vez de acender o LED de forma brusca, agora o brilho será ajustado gradualmente com base na luz ambiente. Isso torna o sistema mais inteligente e suave, como acontece em automações residenciais.

📦 Materiais necessários:

  • 1 LED
  • 1 Resistor de 220 Ohm (para o LED)
  • 1 LDR (sensor de luz)
  • 1 Resistor de 10k Ohm (para o divisor com o LDR)
  • Protoboard
  • Cabos jumper
  • Arduino Uno

📷 Esquema de ligação



💻 Código para controle de brilho com LDR


int pinoLDR = A0;
int pinoLED = 9;

void setup() {
  pinMode(pinoLED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int leituraLDR = analogRead(pinoLDR);
  int brilho = map(leituraLDR, 0, 1023, 255, 0); // mais luz = menos brilho

  analogWrite(pinoLED, brilho);

  Serial.print("Luz: ");
  Serial.print(leituraLDR);
  Serial.print(" → Brilho: ");
  Serial.println(brilho);

  delay(100);
}

🧠 Explicação:

Com o analogRead(), obtemos um valor entre 0 e 1023 da luminosidade. Usamos map() para converter esse valor em intensidade de PWM (0 a 255). O LED então acende com mais ou menos brilho conforme a luz do ambiente.

💡 Dica:

Você pode inverter a lógica trocando os valores no map() se quiser que o LED brilhe mais quanto mais luz houver.

🚀 No próximo conteúdo

Vamos usar o sensor de temperatura LM35 para acionar o LED com base na variação de temperatura ambiente. Um passo rumo ao controle térmico com Arduino!

🔋 Continue acompanhando o Eletrocondutor para aprender eletrônica aplicada, do básico ao avançado!

Comentários

Postagens mais visitadas deste blog

contador 9999 com pic 16f628

CNC fotos cordenadas x y z dicas

codigo assembler braço mecanico para 5 motores