Arduino - Sensor de Luz

Neste tutorial, vamos aprender:

Hardware Necessário

1×Arduino Uno R3
1×Cabo USB 2.0 tipo A/B (para PC com USB-A)
1×Cabo USB 2.0 tipo C/B (para PC com USB-C)
1×Sensor de Luz
1×10 kΩ Resistor
1×Protoboard
1×Fios Jumper
1×(Recomendado) Shield com Bornes de Parafuso para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Case para Arduino Uno
1×(Recomendado) Placa Base de Prototipagem e Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

O sensor de luz LDR é muito barato, mas precisa de um resistor na ligação, o que pode deixar a montagem mais complexa. Para simplificar a ligação, você pode usar um módulo sensor de luz LDR como alternativa.

Sobre o Sensor de Luz

O sensor de luz usado neste tutorial é um fotorresistor, também chamado de resistor dependente de luz (LDR) ou fotocélula.

Ele é usado não apenas para detectar luz, mas também para medir o nível de brilho/iluminância da luz ambiente.

Pinagem

Um fotorresistor tem dois pinos. Como ele é um tipo de resistor, NÃO precisamos diferenciar esses pinos. Eles são simétricos.

Pinagem do Sensor de Luz

Como Funciona

Quanto mais luz incide sobre a face do fotorresistor, menor é a sua resistência. Por isso, medindo a resistência do fotorresistor, podemos saber o quanto a luz ambiente está clara.

Como o Sensor de Luz Funciona

WARNING

O valor do sensor de luz mostra apenas a tendência aproximada da intensidade da luz; ele NÃO representa o fluxo luminoso exato. Por isso, ele deve ser usado apenas em aplicações que NÃO exigem alta precisão.

Arduino - Sensor de Luz

Os pinos A0 a A5 do Arduino Uno podem funcionar como entrada analógica. O pino de entrada analógica converte a tensão (entre 0v e VCC) em valores inteiros (entre 0 e 1023), chamados de valor ADC ou valor analógico.

Conectando um pino do fotorresistor a um pino de entrada analógica, podemos ler o valor analógico do pino usando a função analogRead() e, assim, saber o nível de luz de forma relativa.

Diagrama de Ligação

Diagrama de Ligação do Arduino com Sensor de Luz

This image is created using Fritzing. Click to enlarge image

Código Arduino

O código abaixo lê o valor da fotocélula e determina o nível de luz de forma qualitativa

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-light-sensor */ void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } void loop() { // reads the input on analog pin A0 (value between 0 and 1023) int analogValue = analogRead(A0); Serial.print("Analog reading: "); Serial.print(analogValue); // the raw analog reading // We'll have a few threshholds, qualitatively determined if (analogValue < 10) { Serial.println(" - Dark"); } else if (analogValue < 200) { Serial.println(" - Dim"); } else if (analogValue < 500) { Serial.println(" - Light"); } else if (analogValue < 800) { Serial.println(" - Bright"); } else { Serial.println(" - Very bright"); } delay(500); }

Passos Rápidos

  • Copie o código acima e abra-o na Arduino IDE
  • Clique no botão Upload na Arduino IDE para carregar o código no Arduino
  • Abra o Serial Monitor
  • Aponte luz para o sensor
  • Veja o resultado no Serial Monitor:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Ln 11, Col 1
Arduino Uno on COM15
2

Sensor de Luz e LED

  • O código abaixo acende o LED quando está escuro; caso contrário, apaga o LED
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-light-sensor */ // constants won't change const int LIGHT_SENSOR_PIN = A0; // Arduino pin connected to light sensor's pin const int LED_PIN = 3; // Arduino pin connected to LED's pin const int ANALOG_THRESHOLD = 500; // variables will change: int analogValue; void setup() { pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { analogValue = analogRead(LIGHT_SENSOR_PIN); // read the input on analog pin if(analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }
  • Diagrama de ligação para o código acima:
Diagrama de Ligação do Arduino com Sensor de Luz e LED

This image is created using Fritzing. Click to enlarge image

Vídeo

Desafie-se

  • Acenda a luz automaticamente quando o seu quarto estiver escuro. Dica: Consulte Arduino - Relé.

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!