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