반응형

BH1750FVI 는 ROHM사의 조더 센서로 0-65535 룩스까지 출력 된다. 이 센서는 I2C 방식으로 출력한다.


1) 국내 판매 사이트

 - http://www.devicemart.co.kr/goods/view.php?seq=32789


I2C방식이므로 arduino의 Analog In의 4번 핀을 SDA 에 5번 핀을 SCL에 입력하면 된다. BH1570FVI의 Datasheet를 보면 ADD에 High를 인가하느냐 Low 를 인가하느냐에 따라서 I2C Address가 달라진다. Slave Address는 ADD에 High를 인가하면 "1011100" 으로 16진수로 0x5C가 되며 ADD 에 Low를 인가하면 "0100011" 으로 16진수로 0x23이 된다. 센서에서 데이터를 가져오기 위해서는 다음과 같이 Write Instruction을 보내고 Read Instruction을 보내면 된다.




즉 address에 0(write)을 붙인 byte를 device로 보내고 instruction을 보낼때는 다음의 opcode를 보내면 write instruction이 되며 이후 address에 1(read)를 붙인 byte를 device로 보내고 2 byte를 device에서 읽으면 조도가 나온다. 조도 계산은 (highbyte*256+lowByte)/1.2를 하게 되면 된다. 명령어 셋은 다음과 같다.



Measure mode에 따른  Resolution은 다음과 같다.


device의 상태 변화는 다음과 같다.


다음은 조도 센서를 arduino에 연결한사진이다.


다음은 조도를 측정하는 sketch이다.



arduino의 Wire library는 endTransmission을 호출해야 byte를 send한다. 따라서 각 byte에서 beginTransmission과 endTransmission을 호출해야 한다.

반응형
Posted by alias
,