#include
int
IRsensorAddress = 0xB0;
int
slaveAddress;
int
ledPin = 13;
boolean ledState =
false
;
byte data_buf[16];
int
i;
int
Ix[4];
int
Iy[4];
int
s;
void
Write_2bytes(byte d1, byte d2)
{
Wire.beginTransmission(slaveAddress);
Wire.send(d1); Wire.send(d2);
Wire.endTransmission();
}
void
setup()
{
slaveAddress = IRsensorAddress >> 1;
Serial.begin(38400);
pinMode(ledPin, OUTPUT);
Wire.begin();
Write_2bytes(0x30,0x01); delay(10);
Write_2bytes(0x30,0x08); delay(10);
Write_2bytes(0x06,0x90); delay(10);
Write_2bytes(0x08,0xC0); delay(10);
Write_2bytes(0x1A,0x40); delay(10);
Write_2bytes(0x33,0x33); delay(10);
delay(100);
}
void
loop()
{
ledState = !ledState;
if
(ledState) { digitalWrite(ledPin,HIGH); }
else
{ digitalWrite(ledPin,LOW); }
Wire.beginTransmission(slaveAddress);
Wire.send(0x36);
Wire.endTransmission();
Wire.requestFrom(slaveAddress, 16);
for
(i=0;i i=0;
while
(Wire.available() && i < 16) {
data_buf[i] = Wire.receive();
i++;
}
Ix[0] = data_buf[1];
Iy[0] = data_buf[2];
s = data_buf[3];
Ix[0] += (s & 0x30) < Iy[0] += (s & 0xC0) <
Ix[1] = data_buf[4];
Iy[1] = data_buf[5];
s = data_buf[6];
Ix[1] += (s & 0x30) < Iy[1] += (s & 0xC0) <
Ix[2] = data_buf[7];
Iy[2] = data_buf[8];
s = data_buf[9];
Ix[2] += (s & 0x30) < Iy[2] += (s & 0xC0) <
Ix[3] = data_buf[10];
Iy[3] = data_buf[11];
s = data_buf[12];
Ix[3] += (s & 0x30) < Iy[3] += (s & 0xC0) <
for
(i=0; i {
if
(Ix[i] < 1000)
Serial.print(
" "
);
if
(Ix[i] < 100)
Serial.print(
" "
);
if
(Ix[i] < 10)
Serial.print(
" "
);
Serial.print(
int
(Ix[i]) );
Serial.print(
","
);
if
(Iy[i] < 1000)
Serial.print(
" "
);
if
(Iy[i] < 100)
Serial.print(
" "
);
if
(Iy[i] < 10)
Serial.print(
" "
);
Serial.print(
int
(Iy[i]) );
if
(i Serial.print(
","
);
}
Serial.println(
""
);
delay(3);
}