Будем проверять датчик интенсивности света BH1750FVI. Единицы измерения Люкс (Lux). Датчик работает на шине I2C, поэтому таких датчиком к Arduino можно подключить довольно много. Например можно сделать солнечный трекер или робота, перемещающегося в сторону света.
Подключение
Скетч
Для работы скетча понадобится установить библиотеку BH1750FVI (распаковать в папку Library)
#include <Wire.h> #include <BH1750FVI.h> BH1750FVI LightSensor; void setup() { Serial.begin(9600); LightSensor.begin(); LightSensor.SetAddress(Device_Address_L); LightSensor.SetMode(Continuous_L_resolution_Mode); Serial.println("Running..."); } void loop() { uint16_t lux = LightSensor.GetLightIntensity(); //Считываем данные от датчика Serial.print("Light: "); Serial.print(lux); Serial.println(" lux"); delay(100); }
Дополнительные команды для датчика
Sleep(); - принудительное отключения питания от сенсора
Reset(); - пробуждение сенсора
SetMode(<режим>); - режимы работы сенсора:
Continuous_H_resolution_Mode
Continuous_H_resolution_Mode2
Continuous_L_resolution_Mode
OneTime_H_resolution_Mode
OneTime_H_resolution_Mode2
OneTime_L_resolution_Mode
Типовая освещённость, примеры
по данным из Википедии