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 :
Blok Diagram
Gambar dibawah memperlihatkan blok diagram internal dari sensor cahaya BH1750 :
Sedangkan tabel berikut merupakan deskripsi dari blok diagram diatas :
Blok | Deskripsi |
PD | Foto dioda dengan cakupan kira-kira respons mata manusia |
AMP | Integrator-OP AMP untuk mengubah dari arus yang dihasilkan PD ke tegangan |
ADC | Analog to Digital Converter untuk mendapatkan data Digital 16bit |
Logic + I2C Interface | Perhitungan 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” |
OSC | Internal 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 BH1750 | Arduino UNO / Nano / Pro Mini |
VCC | 3.3V atau 5V |
GND | GND |
SDA | SDA |
SCL | SCL |
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 +++++
Leave a Reply