Envico_Luxmeter.php 8286 Bytes 12-02-2018 11:22:06
ENVICO®light
Luxmeter Adapter
✈ Circuit Description
This Adapter / Sensor consists only of three integrated circuits. One is an eeprom which holds information such as type of sensor,
warning and alarm levels, one is a voltage regulator and the third one is an integrated light sensor with an internal integrating Analog Digital Converter.
The ADC provides 16-bit resolution and is capable of rejecting 50Hz flicker caused by artificial light sources. The I2C interface
provides four user programmable lux sensitivity ranges for optimised counts/lux in a variety of lighting conditions. Fotunately
its SCL and SDA pins are 5 V tolerant (even when running at 3.3 V)
✈ Some Illumination examples ...
Range |
Example |
Range 1 = 0 lux to 1'000 lux |
Lighting in an office : 500 lux |
Range 2 = 0 lux to 4'000 lux |
Lighting in a TV-Studio : 1'000 lux |
Range 3 = 0 lux to 16'000 lux |
Operation room : 10'000 lux |
Range 4 = 0 lux to 64'000 lux |
Sunlight on an cloudy day : 20'000 lux |
✈ Downloads
✈ Arduino Sketch - The TEST - Code
Double click on code to select ...
/*
Standalone Sketch to test the Luxmeter sensor with an ISL76683.
https://www.changpuak.ch/electronics/envico/ENVICO_LUXMETER/ISL76683.pdf
(Just to test the sensor and the I2C communication)
Do not forget to supply the arduino with Vin, +12V !!!
Alexander C. Frank, 15.06.2015, Version 1.0
*/
#include <Wire.h>
byte I2C_address = 0x44;
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600); // start serial for output
// INIT LUXSENSOR
Wire.beginTransmission(I2C_address);
Wire.write(0x00); // Command
Wire.write(B10000000);
Wire.endTransmission();
delay(10);
Wire.beginTransmission(I2C_address);
Wire.write(0x01); // Control
Wire.write(B00001100);
Wire.endTransmission();
delay(10);
Wire.beginTransmission(I2C_address);
Wire.write(0x02); // High byte of HI interrupt threshold. Default is 0xFF
Wire.write(0xFF);
Wire.endTransmission();
delay(10);
Wire.beginTransmission(I2C_address);
Wire.write(0x03); // High byte of LO interrupt threshold. Default is 0x00
Wire.write(0x00);
Wire.endTransmission();
delay(234);
Serial.print("LUX Sensor Test\n");
}
void loop()
{
Wire.beginTransmission(I2C_address);
Wire.write(0x04);
Wire.endTransmission();
Wire.requestFrom(I2C_address,2);
int lux_lo = Wire.read();
int lux_hi = Wire.read();
unsigned long int lumi = (( lux_hi << 8 ) | lux_lo ) ;
Serial.print(lumi,DEC); Serial.write(" lux");Serial.write("\n");
delay(1000);
}
✈ Share your thoughts
The webmaster does not read these comments regularely. Urgent questions should be send via email.
Ads or links to completely uncorrelated things will be removed.
Your Browser says that you allow tracking. Mayst we suggest that you check that DNT thing ?