Arduino - Sensor de luz

En este tutorial, vamos a aprender:

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor de Luz
1×10 kΩ Resistor
1×Protoboard
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y 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 (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

El sensor de luz LDR es muy asequible, pero requiere una resistencia para el cableado, lo que puede hacer que la instalación sea más compleja. Para simplificar el cableado, puedes usar un módulo de sensor de luz LDR como alternativa.

Acerca del sensor de luz

El sensor de luz utilizado en este tutorial es una fotorresistencia, que también se llama resistencia dependiente de la luz o fotocélula.

Se utiliza no solo para detectar la luz, sino también para medir el nivel de brillo o de iluminancia de la luz ambiental.

Diagrama de pines

Un fotorresistor tiene dos terminales. Ya que es un tipo de resistencia, no es necesario distinguir estos terminales. Son simétricos.

Pinout del sensor de luz

Cómo funciona

Cuánta más luz incide en la cara del fotorresistor, menor es su resistencia. Por lo tanto, al medir la resistencia del fotorresistor, podemos saber qué tan brillante es la luz ambiental.

Cómo funciona un sensor de luz

WARNING

El valor del sensor de luz solo refleja la tendencia aproximada de la intensidad de la luz. No representa el flujo luminoso exacto. Por lo tanto, debe utilizarse únicamente en una aplicación que no requiera alta precisión.

Arduino - Sensor de Luz

Los pines A0 a A5 del Arduino Uno pueden funcionar como entrada analógica. El pin de entrada analógica convierte el voltaje (entre 0 V y VCC) en valores enteros (entre 0 y 1023), llamados valor ADC o valor analógico.

Conectando un pin de la fotorresistencia a un pin de entrada analógica, podemos leer el valor analógico del pin utilizando la función analogRead(), y así podemos conocer los niveles de luz de forma relativa.

Diagrama de Cableado

Diagrama de cableado del sensor de luz Arduino

This image is created using Fritzing. Click to enlarge image

Código de Arduino

El código de abajo lee el valor de la fotocélula y determina el nivel de luz de forma cualitativa.

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.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); }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino
  • Abre el Monitor Serial
  • Emite luz al sensor
  • Mira el resultado en el Monitor Serial:
COM6
Send
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
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sensor de luz y LED

  • El código a continuación enciende el LED cuando está oscuro; de lo contrario, apaga el LED.
/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.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 cableado para el código anterior:
Diagrama de cableado de Arduino para sensor de luz y LED

This image is created using Fritzing. Click to enlarge image

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Ponte a prueba

  • Enciende automáticamente la luz cuando tu habitación esté oscura. Consejo: Consulte Arduino - Relay.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!