Rev Author Line No. Line
2069 kakl 1 // I2C Light Sensor
2  
3 #include <Wire.h>
4  
5 #define address 0x44 // A0 = L
6  
7 void setup()
8 {
9 Wire.begin(); // join i2c bus (address optional for master)
10 pinMode(3, OUTPUT); // LED pro blikani, aby bylo videt, ze to neco dela
11 Serial.begin(9600); // Zmerena intenzita osvetleni se bude vypisovat na seriovou linku
12 }
13  
14 int data = 0;
15  
16 void loop()
17 {
18 int lux=0;
19  
20 Serial.print("lux=");
21  
22 // Setup device
23 Wire.beginTransmission(address);
24 Wire.send(0x00); // sends address
25 Wire.send(0b11000000); // setup (eye light sensing; measurement range 2 [4000 lx])
26 Wire.endTransmission(); // stop transmitting
27  
28 // Delay for measurement
29 digitalWrite(3, HIGH); // set the LED on
30 delay(500);
31 digitalWrite(3, LOW); // set the LED off
32 delay(500);
33  
34  
35 // Connect to device and set register address
36 Wire.beginTransmission(address);
37 Wire.send(0x00); // sends address
38 Wire.endTransmission(); // stop transmitting
39 // Connect to device and request one byte
40 Wire.beginTransmission(address);
41 Wire.requestFrom(address, 1);
42 data = Wire.receive();
43 Wire.endTransmission(); // stop transmitting
44 // Serial.print(data, HEX);
45  
46 // Serial.print(" LSB=");
47 // Connect to device and set register address
48 Wire.beginTransmission(address);
49 Wire.send(0x01); // sends address
50 Wire.endTransmission(); // stop transmitting
51 // Connect to device and request one byte
52 Wire.beginTransmission(address);
53 Wire.requestFrom(address, 1);
54 data = Wire.receive();
55 Wire.endTransmission(); // stop transmitting
56 // Serial.print(data, HEX);
57 lux=data;
58  
59 // Serial.print(" MSB=");
60 // Connect to device and set register address
61 Wire.beginTransmission(address);
62 Wire.send(0x02); // sends address
63 Wire.endTransmission(); // stop transmitting
64 // Connect to device and request one byte
65 Wire.beginTransmission(address);
66 Wire.requestFrom(address, 1);
67 data = Wire.receive();
68 Wire.endTransmission(); // stop transmitting
69 // Serial.print(data, HEX);
70 lux+=data*256;
71  
72 Serial.print((unsigned)lux, DEC);
73  
74 Serial.print(" luxIR=");
75  
76 // Setup device
77 Wire.beginTransmission(address);
78 Wire.send(0x00); // sends address
79 Wire.send(0b11100000); // setup (eye light sensing; measurement range 2 [4000 lx])
80 Wire.endTransmission(); // stop transmitting
81  
82 // Delay for measurement
83 digitalWrite(3, HIGH); // set the LED on
84 delay(500);
85 digitalWrite(3, LOW); // set the LED off
86 delay(500);
87  
88  
89 // Connect to device and set register address
90 Wire.beginTransmission(address);
91 Wire.send(0x00); // sends address
92 Wire.endTransmission(); // stop transmitting
93 // Connect to device and request one byte
94 Wire.beginTransmission(address);
95 Wire.requestFrom(address, 1);
96 data = Wire.receive();
97 Wire.endTransmission(); // stop transmitting
98 // Serial.print(data, HEX);
99  
100 // Serial.print(" LSB=");
101 // Connect to device and set register address
102 Wire.beginTransmission(address);
103 Wire.send(0x01); // sends address
104 Wire.endTransmission(); // stop transmitting
105 // Connect to device and request one byte
106 Wire.beginTransmission(address);
107 Wire.requestFrom(address, 1);
108 data = Wire.receive();
109 Wire.endTransmission(); // stop transmitting
110 // Serial.print(data, HEX);
111 lux=data;
112  
113 // Serial.print(" MSB=");
114 // Connect to device and set register address
115 Wire.beginTransmission(address);
116 Wire.send(0x02); // sends address
117 Wire.endTransmission(); // stop transmitting
118 // Connect to device and request one byte
119 Wire.beginTransmission(address);
120 Wire.requestFrom(address, 1);
121 data = Wire.receive();
122 Wire.endTransmission(); // stop transmitting
123 // Serial.print(data, HEX);
124 lux+=data*256;
125  
126 Serial.println((unsigned)lux, DEC);
127  
128 }
129  
130