Paso 4: Código de Arduino
Primero muchas gracias por garras , él creó una biblioteca para BH1750, usted puede comprobar hacia fuera.
Preparé una biblioteca para él, trató de resolver algún problema tales como:
1) multi dispositivo de conexión, puede conectar 2 dispositivos de BH1750 con diferentes direcciones, depende de estado del Pin de ADDR.
Si ADDR = bajo, la dirección será 0x23
Si ADDR = alta, la dirección será 0x5C
Potencia 2) modo, usted puede poner el sensor en modo de ahorro de energía por lo que se consume 0.01uA.
Puede descargar la librería desde Github , descomprimir el archivo adjunto y ponerlo en la carpeta de bibliotecas en arduino camino, luego reinicie el IDE de arduino.
Puede abrir el bosquejo viene con esta biblioteca.
Primer programa: leer el valor de Lux por puerto serie.
Código:
/*
Este es un codigo simple para probar senosr de luz BH1750FVI
se comunican usando el protocolo I2C
Esta biblioteca permite 2 dirección del dispositivo esclavo
Dirección 0x23
dirección secundaria 0x5C
conectar este sensor como siguiendo:
VCC >>> 3.3V
SDA >>> A4
SCL >>> A5
addr >> A3
Tierra >>> tierra
Escrito por: Mohannad Rawashdeh
*/
En primer lugar definir la biblioteca:
#include < BH1750FVI.h > / / Biblioteca de Sensor
#include < Wire.h > / / Librería I2C
LightSensor BH1750FVI;
void setup() {/ / Pon tu código de instalación, para ejecutar una vez:
Serial.Begin(9600);
LightSensor.begin();
/*
La dirección de este sensor
puede utilizar 2 dirección diferente
Device_Address_H "0x5C"
Device_Address_L "0x23"
usted debe conectarse Addr pin A3.
*/
LightSensor.SetAddress (Device_Address_H); //Address 0x5C
Para ajustar al esclavo en otra dirección, descomentar esta línea
lightMeter.SetAddress(Device_Address_L); Dirección 0x5C
//-----------------------------------------------
/*
configurar el modo de trabajo de este sensor
Seleccione el modo siguiente:
Continuous_H_resolution_Mode
Continuous_H_resolution_Mode2
Continuous_L_resolution_Mode
OneTime_H_resolution_Mode
OneTime_H_resolution_Mode2
OneTime_L_resolution_Mode
La hoja de datos recomendada para uso Continuous_H_resolution_Mode
*/
LightSensor.SetMode(Continuous_H_resolution_Mode);
Serial.println("Running...");
}
void loop() {}
Pon tu código principal, para ejecutar varias veces:
lux uint16_t = LightSensor.GetLightIntensity(); / / obtener el valor de Lux
Serial.Print ("luz:");
Serial.Print(Lux);
Serial.println ("lux");
Delay(1000);
}