Tabla de contenido:

Cálculo de intensidad de luz usando BH1715 y Arduino Nano: 5 pasos
Cálculo de intensidad de luz usando BH1715 y Arduino Nano: 5 pasos

Video: Cálculo de intensidad de luz usando BH1715 y Arduino Nano: 5 pasos

Video: Cálculo de intensidad de luz usando BH1715 y Arduino Nano: 5 pasos
Video: Calculo de iluminacion 2024, Noviembre
Anonim
Image
Image

Ayer estuvimos trabajando en pantallas LCD y, mientras las revisábamos, nos dimos cuenta de la importancia del cálculo de la intensidad de la luz. La intensidad de la luz no solo es importante en el dominio físico de este mundo, sino que también tiene un papel bien dicho en el dominio biológico. La estimación precisa de la intensidad de la luz juega un papel fundamental en nuestro ecosistema, en el crecimiento de las plantas, etc. Entonces, para cumplir este propósito, estudiamos este sensor BH1715, que es un sensor de luz ambiental del tipo de salida en serie de 16 bits.

En este tutorial, vamos a demostrar el funcionamiento de BH1715 con Arduino Nano.

El hardware que vas a necesitar para este fin es el siguiente:

1. BH1715 - Sensor de luz ambiental

2. Arduino nano

3. Cable I2C

4. Escudo I2C para Arduino Nano

Paso 1: Descripción general del BH1715:

Que necesitas..!!
Que necesitas..!!

En primer lugar, nos gustaría familiarizarlo con las características básicas del módulo sensor que es BH1715 y el protocolo de comunicación en el que funciona.

BH1715 es un sensor de luz ambiental digital con una interfaz de bus I²C. El BH1715 se usa comúnmente para obtener los datos de luz ambiental para ajustar la potencia de la retroiluminación de la pantalla LCD y el teclado para dispositivos móviles. Este dispositivo ofrece una resolución de 16 bits y un rango de medición ajustable, lo que permite la detección de.23 a 100, 000 lux.

El protocolo de comunicación sobre el que trabaja el sensor es I2C. I2C significa circuito interintegrado. Es un protocolo de comunicación en el que la comunicación se realiza a través de líneas SDA (datos en serie) y SCL (reloj en serie). Permite conectar varios dispositivos al mismo tiempo. Es uno de los protocolos de comunicación más simples y eficientes.

Paso 2: ¡¡Lo que necesitas …

Que necesitas..!!
Que necesitas..!!
Que necesitas..!!
Que necesitas..!!
Que necesitas..!!
Que necesitas..!!

Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:

1. BH1715 - Sensor de luz ambiental

2. Arduino Nano

3. Cable I2C

4. I2C Shield para Arduino nano

Paso 3: Conexión de hardware:

Conexión de hardware
Conexión de hardware
Conexión de hardware
Conexión de hardware

La sección de conexión de hardware básicamente explica las conexiones de cableado necesarias entre el sensor y la Raspberry Pi. Asegurar las conexiones correctas es la necesidad básica al trabajar en cualquier sistema para obtener la salida deseada. Entonces, las conexiones requeridas son las siguientes:

El BH1715 funcionará sobre I2C. Aquí está el diagrama de cableado de ejemplo, que demuestra cómo cablear cada interfaz del sensor.

Fuera de la caja, la placa está configurada para una interfaz I2C, por lo que recomendamos usar esta conexión si, por lo demás, es agnóstico. ¡Todo lo que necesitas son cuatro cables!

Solo se requieren cuatro conexiones Vcc, Gnd, SCL y pines SDA y estos se conectan con la ayuda del cable I2C.

Estas conexiones se muestran en las imágenes de arriba.

Paso 4: Código Arduino de medición de intensidad de luz:

Código Arduino de medición de intensidad de luz
Código Arduino de medición de intensidad de luz
Código Arduino de medición de intensidad de luz
Código Arduino de medición de intensidad de luz

Comencemos ahora con el código Arduino.

Mientras usamos el módulo de sensor con Arduino, incluimos la biblioteca Wire.h. La biblioteca "Wire" contiene las funciones que facilitan la comunicación i2c entre el sensor y la placa Arduino.

El código completo de Arduino se proporciona a continuación para la conveniencia del usuario:

#incluir

// BH1715 La dirección I2C es 0x23 (35) #define Addr 0x23 void setup () {// Inicializa la comunicación I2C como MASTER Wire.begin (); // Inicializar la comunicación en serie, establecer la velocidad en baudios = 9600 Serial.begin (9600); // Iniciar I2C Transmission Wire.beginTransmission (Addr); // Enviar energía al comando Wire.write (0x01); // Detener la transmisión I2C Wire.endTransmission (); // Iniciar I2C Transmission Wire.beginTransmission (Addr); // Enviar comando de medición continua Wire.write (0x10); // Detener la transmisión I2C Wire.endTransmission (); retraso (300); } bucle vacío () {datos int sin firmar [2]; // Solicitar 2 bytes de datos Wire.requestFrom (Addr, 2); // Leer 2 bytes de datos // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); datos [1] = Wire.read (); } retraso (300); // convierte los datos float luminance = ((data [0] * 256) + data [1]) / 1.20; // Salida de datos al monitor en serie Serial.print ("Luminancia de luz ambiental:"); Serial.print (luminancia); Serial.println ("lux"); }

La siguiente parte del código inicia la comunicación i2c y la comunicación en serie con la ayuda de la función Wire.begin () y Serial.begin ().

// Inicializar la comunicación I2C como MASTER

Wire.begin (); // Inicializar la comunicación en serie, establecer la velocidad en baudios = 9600 Serial.begin (9600); // Iniciar I2C Transmission Wire.beginTransmission (Addr); // Enviar energía al comando Wire.write (0x01); // Detener la transmisión I2C Wire.endTransmission (); // Iniciar I2C Transmission Wire.beginTransmission (Addr); // Enviar comando de medición continua Wire.write (0x10); // Detener la transmisión I2C Wire.endTransmission (); retraso (300);

La intensidad de la luz se mide en la siguiente sección del código.

datos int sin firmar [2];

// Solicitar 2 bytes de datos Wire.requestFrom (Addr, 2); // Leer 2 bytes de datos // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); datos [1] = Wire.read (); } retraso (300); // convierte los datos float luminance = ((data [0] * 256) + data [1]) / 1.20; // Salida de datos al monitor en serie Serial.print ("Luminancia de luz ambiental:"); Serial.print (luminancia); Serial.println ("lux");

Todo lo que necesita hacer es grabar el código en arduino y verificar sus lecturas en el puerto serie. La salida se muestra en la imagen de arriba también para su referencia.

Paso 5: Aplicaciones:

Aplicaciones
Aplicaciones

BH1715 es un sensor de luz ambiental de salida digital que se puede incorporar en teléfonos móviles, televisores LCD, PC de NOTA, etc. También se puede emplear en máquinas de juegos portátiles, cámaras digitales, cámaras de video digitales, PDA, pantallas LCD y muchos más dispositivos que requieran aplicaciones de detección de luz eficientes.

Recomendado: