Wish List 0

Bh1745Nuc 16Bit I2C Color Sensor

Rs. 435.00 Rs. 522.00

-The BH1745NUC is virtual colour sensor IC with I²C bus interface.

-This IC senses Red, Green and Blue mild (RGB) and converts them to digital values.

-The high sensitivity, wide dynamic range and extraordinary Ircut traits makes this IC the maximum appropriate to reap the illuminance and shade temperature of ambient mild for adjusting LCD backlight of TV, cell cellphone and tablet PC.

-It is feasible to come across very extensive variety light depth. (zero.1/2 – 40k lx)

Features

-The High Sensitivity and Wide Dynamic Range (0.005 – 40k lx)

-Supports Low Transmittance (Dark) Window

-Correspond to I²C Bus Interface

-Low Current by Power Down Function

-Rejecting 50Hz/60Hz Light Noise

-Correspond to 1.8V Logic Interface

-Programmable Interrupt Function

-It is possible to select 2 type of I²C bus slave address (ADDR =’L’: “0111000”, ADDR =’H’: “0111001”)

SPECIFICATIONS:
VCC Voltage Range            2.3V to 3.6V
Maximum Sensitivity          0.005Lx/step
Current Consumption          130μA (Typ)
Standby Mode Current         0.8μA (Typ)
Operating Temperature Range  -40°C to +85°C
OVERVIEW:
VCC Voltage Range            2.3V to 3.6V
Maximum Sensitivity          0.005Lx/step
Current Consumption          130µA (Typ)
Standby Mode Current         0.8µA (Typ)
Operating Temperature Range  -40°C to +85°C

PACKAGE INCLUDES:

1 PCS x Bh1745Nuc 16Bit I2C Color Sensor


//SOURCE CODE TAKEN FROM BELOW LINK

//http://arduinolearning.com/code/arduino-and-bh1745nuc-luminance-and-colour-sensor-example.php


#include <Wire.h>

 

// I2C address of the BH1745NUC

#define Addr 0x38

 

void setup()

{

    // Initialise I2C communication as MASTER

    Wire.begin();

    // Initialise serial communication, set baud rate = 9600

    Serial.begin(9600);

 

    // Start I2C Transmission

    Wire.beginTransmission(Addr);

    // Select mode control register1

    Wire.write(0x41);

    // Set RGBC measurement time 160 msec

    Wire.write(0x00);

    // Stop I2C Transmission

    Wire.endTransmission();

 

    // Start I2C Transmission

    Wire.beginTransmission(Addr);

    // Select mode control register2

    Wire.write(0x42);

    // Set measurement mode is active, gain = 1x

    Wire.write(0x90);

    // Stop I2C Transmission

    Wire.endTransmission();

 

    // Start I2C Transmission

    Wire.beginTransmission(Addr);

    // Select mode control register3

    Wire.write(0x44);

    // Set default value

    Wire.write(0x02);

    // Stop I2C Transmission

    Wire.endTransmission();

    delay(300);

}

 

void loop()

{

    unsigned int data[8];

    for(int i = 0; i < 8; i++)

    {

        // Start I2C Transmission

        Wire.beginTransmission(Addr);

        // Select data register

        Wire.write((80+i));

        // Stop I2C Transmission

        Wire.endTransmission();

 

        // Request 1 byte of data from the device

        Wire.requestFrom(Addr, 1);

 

        // Read 8 bytes of data

        // Red lsb, Red msb, Green lsb, Green msb, Blue lsb, Blue msb

        // cData lsb, cData msb

        if(Wire.available() == 1)

        {

            data[i] = Wire.read();

        }

        delay(300);

    }

 

    // Convert the data

    int red = ((data[1] & 0xFF) * 256) + (data[0] & 0xFF);

    int green = ((data[3] & 0xFF) * 256) + (data[2] & 0xFF);

    int blue = ((data[5] & 0xFF) * 256) + (data[4] & 0xFF);

    int cData = ((data[7] & 0xFF) * 256) + (data[6] & 0xFF);

 

    // Output data to serial monitor

    Serial.print("Red Color luminance  : ");

    Serial.println(red);

    Serial.print("Green Color luminance : ");

    Serial.println(green);

    Serial.print("Blue Color luminance : ");

    Serial.println(blue);

    Serial.print("Clear Data Color luminance : ");

    Serial.println(cData);

}

15 days

Write a review

Please login or register to review