Interfacing / Programming Sensor Cahaya BH1750 dengan Arduino

Spread the love

Deskripsi

Pada artikel ini kita akan membahas tentang sensor cahaya BH1750 beserta contoh programnya menggunakan arduino.

BH1750FVI adalah sebuah IC sensor yang digunakan untuk mengukur intensitas cahaya sekitar dalam ukuran atau satuan lux. Sensor ini menggunakan protokol I2C untuk komunikasi dengan mikrokontroller atau minimum sistem.

Jangkauan deteksi sensor ini cukup lebar yaitu antara 1 – 65535 lux. 1 lux artinya besaran intensitas cahaya 1 lumen pada area seluas 1 meter persegi atau kalau dituliskan dalam persamaan menjadi :

1 Lux = 1 Lm / m2

Agar sensor BH1750 bisa digunakan, diperlukan sedikit komponen tambahan berupa capasitor dan atau resistor untuk keperluan reset timing internal dari sensor. Selain itu ada juga yang juga ditambahkan IC regulator untuk tujuan step down dari 5V ke 3.3V agar bisa menggunakan tegangan VCC 5V.

Untungnya, kebanyakan sensor BH1750 yang tersedia dipasaran adalah sudah dalam bentuk modul yang sudah siap untuk digunakan, sehingga kita tidak perlu repot-repot lagi untuk memikirkan rangkaian tambahan tersebut.

Berikut ini adalah contoh gambar modul sensor cahaya BH1750 :

Module BH1750
Module BH1750 Pin Out

Blok Diagram

Gambar dibawah memperlihatkan blok diagram internal dari sensor cahaya BH1750 :

BH1750 Block Diagram

Sedangkan tabel berikut merupakan deskripsi dari blok diagram diatas :

BlokDeskripsi
PDFoto dioda dengan cakupan kira-kira respons mata manusia
AMPIntegrator-OP AMP untuk mengubah dari arus yang dihasilkan PD ke tegangan
ADCAnalog to Digital Converter untuk mendapatkan data Digital 16bit
Logic + I2C InterfacePerhitungan Cahaya Sekitar dan Antarmuka Bus I2C. Ini termasuk register dibawah :
Data Register : Ini untuk register Data Cahaya Sekitar.
Nilai awalnya adalah “0000_0000_0000_0000”
Measurement Time Register : Ini untuk register waktu pengukuran. Nilai awalnya adalah “0100_0101”
OSCInternal Oscillator (320 KHz). Ini adalah CLK untuk internal logic.

Untuk mempelajari lebih detail mengenai sensor cahaya BH1750, silahkan download datasheet dari sensor tersebut di SINI.

Fitur

Berikut ini merupakan fitur dari sensor BH1750 :

  • I2C Bus Interface (f/s Mode Support)
  • Spectral Responsibility is approximately human eye response
  • Illuminance to Digital Converter
  • Wide range and High Resolution ( 1 – 65535 lx )
  • Low Current by Power Down Function
  • 50 Hz / 60 Hz Light Noise Rejection Funtion
  • 1.8V Logic Input Interface
  • Light Source Dependency is little
  • It is possible to select 2 I2C Address
  • Adjustable measurement result for influence of optical window
  • Small measurement variation ( +/- 20% )
  • The influence of Infrared is very small

Contoh Penggunaan

Sensor BH1750 ini banyak digunakan pada berbagai peralatan elektronik seperti :

  • Mobile Phone
  • LCD TV
  • Note PC
  • Portable Game Machine
  • Digital Camera
  • Car Navigation
  • PDA
  • LCD Display
  • etc

Bahan Yang Dibutuhkan

Adapun bahan-bahan yang diperlukan pada tutorial pemrograman sensor cahaya BH1750 kali ini antara lain :

1. Hardware

  • Modul BH1750
  • Arduiono UNO / Nano / Pro Mini
  • Beberapa kabel jumper M-F / FF

2. Software

  • Arduino IDE yang bisa download di website arduino.cc
  • Library BH1750 bisa download di SINI

Koneksi / Wiring Diagram

Modul BH1750Arduino UNO / Nano / Pro Mini
VCC3.3V atau 5V
GNDGND
SDASDA
SCLSCL

Kode Program

Setelah aplikasi Arduino IDE siap dan library BH1750 diatas didownload, ekstrak dan copy library tersebut ke dalam folder library dari Arduino IDE. Kemudian untuk testing, buka contoh program bawaan atau copy sketch dibawah :

#include <Wire.h> 
#include <BH1750.h>
BH1750 lightMeter;
void setup(){
   Serial.begin(9600);   // Initialize the I2C bus (BH1750 library doesn't do this automatically)   // On esp8266 devices you can select SCL and SDA pins using Wire.begin(D4, D3);
   Wire.begin();
   lightMeter.begin();
   Serial.println(F("BH1750 Test"));
}

void loop() {
   float lux = lightMeter.readLightLevel();
   Serial.print("Light: ");
   Serial.print(lux);
   Serial.println(" lx");
   delay(1000);
} 

Output

Setelah sketch atau program berhasil diupload ke board arduino, buka serial monitor untuk melihat output hasil pembacaan cahaya dari sensor BH1750 seperti dibawah :

+++++ Semoga Bermanfaat +++++

Be the first to comment

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*