Arduino Uno 로 BH1750 I2C 디지털 조도센서의 사용방법을 알아보고 I2C 1602 캐릭터 LCD를 사용해서
간단한 Light Meter 를 만들어 보는 프로젝트 입니다
<BH1750 I2C 조도센서 모듈 이미지>
디지털 16bit 시리얼 출력타입 조도센서 IC BH1750FVI 기반의 I2C 인터페이스의 조도센서 입니다
포토레지스터 센서와 달리 아날로그 출력값을 디지털로 변환해야 하는 번거로움 없이
디지털 lux(Lx)출력값 (0 - 65535 lx)을 제공합니다
I2C 인터페이스 구성으로 아두이노 등의 마이크로컨트롤러 보드와 연결해 간편하게 사용 가능합니다
<BH1750 I2C 조도센서 모듈 상세사양>
사용된 부품
Arduino Uno R3 (Italy)
브래드 보드
BH1750 I2C 조도센서 모듈
점퍼케이블
구성 배선도-아두이노 IDE 시리얼 모니터로 실내 조도 변화에 따른 출력값 변화 확인해 보기
구성 배선도-I2C 1602 캐릭터 LCD 모듈로 실내 조도 변화에 따른 출력값 변화 확인해 보기
사용된 라이브러리
사용된 예제소스
주의사항
기본적으로 BH1750 과 LiquidCrystal_I2C 2가지의 라이브러리 설치가 필요합니다
라이브러리 설치 방법은 하단링크 포스팅을 참조해 주세요
Arduino IDE 설치하기
"I2C 1602 캐릭터 LCD 모듈로 실내 조도 변화에 따른 출력값 변화 확인해 보기" 테스트를 할때는
I2C 1602 LCD는 반드시 5V로 BH1750 I2C 조도센서는 3.3V로 각각 전원공급합니다
(캐릭터 LCD는 전류를 많이 소모하기 때문에 센서와 동일한 전원으로 공급하면 출력이 제대로 안될수 있습니다)
첫번째 "BH1750" 예제를 살펴보면
#include <Wire.h>
#include <BH1750.h>
위 두가지 라이브러를 사용합니다
void setup(){
Serial.begin(9600);
lichtMeter.begin();
}
void loop() {
uint16_t lux = lichtMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lux");
delay(500);
}
조도 변화에 따른 출력값을 lux 로 계산해서 시리얼 모니터로 출력해 줍니다
두번째 "BH1750 I2C 1602" 예제를 살펴보면
#include <BH1750.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
위 세가지 라이브러리를 사용합니다
BH1750 lightMeter;
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
I2C 1602 캐릭터 LCD 의 I2C 주소는 0x27 입니다
I2C 주소가 틀리다면 I2C 1602 캐릭터 LCD의 백라이트만 들어오고 글씨가 출력되지 않을수 있습니다
꼭 I2C 주소를 확인한 다음 테스트 합니다
I2C 1602 캐릭터 LCD의 I2C 주소 확인하는 방법
void setup() {
Wire.begin();
lightMeter.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("BH1750 Test");
lcd.setCursor(0,1);
lcd.print("Please wait...");
delay(3000);
lcd.clear();
}
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Light Intensity ");
lcd.setCursor(5, 1);
float lux = lightMeter.readLightLevel();
lcd.print(lux);
lcd.print(" Lux");
delay(2000);
}
조도 변화에 따른 출력값을 lux 로 계산해서 I2C 1602 캐릭터 LCD로 출력해 줍니다
delay 타임(2000)을 수정해서 테스트 해봅니다
프로젝트 동영상-아두이노 IDE 시리얼 모니터로 실내 조도 변화에 따른 출력값 변화 확인해 보기
프로젝트 동영상-I2C 1602 캐릭터 LCD 모듈로 실내 조도 변화에 따른 출력값 변화 확인해 보기
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 HC-SR04 초음파센서를 사용해서 I2C 1602 캐릭터 LCD에 거리측정값 출력해 보기 (0) | 2022.10.14 |
---|---|
Arduino Uno 로 버튼(스위치)과 TTP223B 터치센서를 사용해서 3색 RGB LED 제어해 보기 (0) | 2022.09.26 |
Arduino Uno 로 조이스틱 모듈(Joystick Module)을 사용해 SG90 마이크로 서보모터 제어해 보기 (0) | 2022.08.26 |
Arduino Uno 로 IR 적외선 장애물 감지센서를 사용해서 서보모터 제어해 보기 (1) | 2022.07.22 |
Arduino Uno 로 KY-038 사운드 센서를 사용해서 심플 사운드 메터 만들어 보기 (0) | 2022.04.02 |
댓글