Hexiware Ambient Light code using OPT3001

Committer:
agaikwad
Date:
Wed Mar 22 01:11:03 2017 +0000
Revision:
0:92ddc9baf27b
Hexiware Ambient Light code using OPT3001

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agaikwad 0:92ddc9baf27b 1 #include "mbed.h"
agaikwad 0:92ddc9baf27b 2 #include "math.h"
agaikwad 0:92ddc9baf27b 3
agaikwad 0:92ddc9baf27b 4 I2C i2c(PTD9,PTD8);
agaikwad 0:92ddc9baf27b 5 Serial pc(USBTX, USBRX);
agaikwad 0:92ddc9baf27b 6 AnalogIn check(PTB6);
agaikwad 0:92ddc9baf27b 7
agaikwad 0:92ddc9baf27b 8 const int addr = 0x88;
agaikwad 0:92ddc9baf27b 9 //const int addr1 = 0xC0;
agaikwad 0:92ddc9baf27b 10 int main() {
agaikwad 0:92ddc9baf27b 11 int exp,exp1,l=1;
agaikwad 0:92ddc9baf27b 12 float z;
agaikwad 0:92ddc9baf27b 13 float x;
agaikwad 0:92ddc9baf27b 14
agaikwad 0:92ddc9baf27b 15 i2c.frequency(100000); // set required i2c frequency
agaikwad 0:92ddc9baf27b 16 pc.baud(9600); //set baud rate
agaikwad 0:92ddc9baf27b 17 pc.printf("I2C started!\r\n");
agaikwad 0:92ddc9baf27b 18 char cmd[3]; //for byte transfer
agaikwad 0:92ddc9baf27b 19 while(1){
agaikwad 0:92ddc9baf27b 20 //ambient light sensor code
agaikwad 0:92ddc9baf27b 21 cmd[0] = 0x01; //configuration register
agaikwad 0:92ddc9baf27b 22 cmd[1]= 0xCC; //configuration data
agaikwad 0:92ddc9baf27b 23 cmd[2]= 0x01; //configuration data
agaikwad 0:92ddc9baf27b 24 i2c.write(addr, cmd, 3);
agaikwad 0:92ddc9baf27b 25 cmd[0] = 0x00; // data register
agaikwad 0:92ddc9baf27b 26 i2c.write(addr, cmd, 1);
agaikwad 0:92ddc9baf27b 27 wait(0.5);
agaikwad 0:92ddc9baf27b 28 i2c.read(addr, cmd, 2);
agaikwad 0:92ddc9baf27b 29
agaikwad 0:92ddc9baf27b 30 exp= cmd[0]>>4;
agaikwad 0:92ddc9baf27b 31 exp1= (cmd[0]-(exp<<4))*256+cmd[1];
agaikwad 0:92ddc9baf27b 32 l=1;
agaikwad 0:92ddc9baf27b 33 for(int r=0;r<exp;r++){l=l*2;};
agaikwad 0:92ddc9baf27b 34 z= (exp1*l)/100;
agaikwad 0:92ddc9baf27b 35 pc.printf("Lux = %.2f\n\r", z); // printing LUX value
agaikwad 0:92ddc9baf27b 36 wait(0.5);
agaikwad 0:92ddc9baf27b 37
agaikwad 0:92ddc9baf27b 38 }
agaikwad 0:92ddc9baf27b 39 }