Ambient Light Sensor BH1750: Pengertian, Fungsi, Pinout, Cara Kerja dan Arduino
Ambient Light Sensor BH1750 merupakan sensor cahaya digital yang digunakan untuk mengukur intensitas cahaya di lingkungan sekitar. Berbeda dengan sensor cahaya analog sederhana yang menghasilkan perubahan tegangan, BH1750 dapat memberikan hasil pengukuran cahaya secara digital melalui komunikasi I2C.
Sensor BH1750 banyak digunakan dalam berbagai proyek elektronika, Arduino, mikrokontroler, Internet of Things (IoT), sistem otomasi, hingga perangkat yang membutuhkan pengukuran intensitas cahaya secara otomatis.
Pada artikel ini kita akan membahas secara lengkap mengenai BH1750 Ambient Light Sensor, mulai dari pengertian, fungsi, spesifikasi, pinout, cara kerja, wiring dengan Arduino Uno, contoh program, cara membaca nilai lux, aplikasi, hingga troubleshooting.
Apa Itu Ambient Light Sensor?
Ambient Light Sensor atau sensor cahaya sekitar adalah sensor yang digunakan untuk mendeteksi dan mengukur tingkat pencahayaan di lingkungan.
Sensor ini dapat digunakan untuk mengetahui apakah kondisi lingkungan sedang gelap, redup, terang, atau sangat terang. Data tersebut kemudian dapat digunakan oleh mikrokontroler untuk mengambil keputusan secara otomatis.
Contohnya, sebuah sistem dapat menyalakan lampu ketika intensitas cahaya lingkungan terlalu rendah dan mematikannya ketika kondisi sudah cukup terang.
Apa Itu Sensor BH1750?
BH1750 adalah IC digital ambient light sensor yang menggunakan antarmuka komunikasi I2C. Sensor ini dirancang untuk mengukur intensitas cahaya dan menghasilkan data digital yang dapat dibaca oleh mikrokontroler.
Salah satu kelebihan BH1750 adalah hasil pengukurannya dapat dinyatakan dalam satuan lux (lx), sehingga lebih praktis untuk digunakan dalam aplikasi pengukuran intensitas cahaya.
Menurut dokumentasi teknis ROHM, BH1750FVI memiliki ADC 16-bit dan rentang pengukuran yang luas hingga 1 sampai 65.535 lux, tergantung mode pengukuran yang digunakan. :contentReference[oaicite:2]{index=2}
Apa Itu Lux?
Lux (lx) adalah satuan yang digunakan untuk menyatakan iluminansi atau tingkat penerangan yang diterima oleh suatu permukaan.
Semakin besar nilai lux yang terukur, secara umum semakin terang kondisi pencahayaan yang diterima sensor.
Contohnya, kondisi ruangan yang redup akan menghasilkan nilai lux yang lebih rendah dibandingkan kondisi di luar ruangan pada siang hari.
Dengan menggunakan BH1750, Arduino dapat membaca nilai intensitas cahaya tersebut secara digital dan menggunakannya untuk mengontrol perangkat lain.
Fungsi Sensor BH1750
Fungsi utama BH1750 adalah mengukur intensitas cahaya sekitar secara digital. Beberapa penerapannya antara lain:
- Mengukur intensitas cahaya lingkungan.
- Membaca tingkat pencahayaan dalam satuan lux.
- Mengontrol kecerahan lampu secara otomatis.
- Mengatur brightness LCD atau display.
- Sistem lampu otomatis.
- Proyek Arduino dan mikrokontroler.
- Sistem otomasi rumah atau smart home.
- Perangkat IoT.
- Sistem monitoring pencahayaan.
- Perangkat elektronik yang membutuhkan pengukuran cahaya sekitar.
Spesifikasi Umum BH1750
Berikut beberapa karakteristik penting dari IC BH1750FVI berdasarkan dokumentasi teknisnya:
| Parameter | Keterangan |
|---|---|
| Jenis sensor | Digital Ambient Light Sensor |
| Antarmuka | I2C |
| Resolusi | Hingga 1 lux pada mode resolusi tinggi |
| Rentang pengukuran | 1 – 65.535 lux |
| Output | Data digital |
| Alamat I2C | 0x23 atau 0x5C |
| Tegangan IC | Sekitar 2,4 – 3,6 V |
| Komunikasi | I2C |
Catatan: spesifikasi modul breakout BH1750 yang dijual di pasaran dapat berbeda dari spesifikasi IC BH1750FVI karena modul dapat memiliki regulator atau rangkaian tambahan. Selalu periksa spesifikasi modul yang digunakan.
Pinout Modul BH1750
Modul BH1750 yang umum digunakan biasanya memiliki empat pin utama, yaitu VCC, GND, SCL, dan SDA.
| Pin | Fungsi |
|---|---|
| VCC | Catu daya |
| GND | Ground |
| SCL | Clock I2C |
| SDA | Data I2C |
Pada beberapa breakout board BH1750 juga terdapat pin ADDR. Pin tersebut digunakan untuk menentukan alamat I2C sensor.
Alamat I2C BH1750
BH1750 dapat menggunakan dua alamat I2C yang dipilih berdasarkan kondisi pin ADDR.
| Kondisi ADDR | Alamat I2C |
|---|---|
| LOW | 0x23 |
| HIGH | 0x5C |
Hal ini memungkinkan penggunaan lebih dari satu BH1750 pada bus I2C yang sama selama alamatnya dikonfigurasi dengan benar. Datasheet BH1750FVI menyebutkan bahwa alamat slave dapat dipilih melalui pin ADDR. :contentReference[oaicite:3]{index=3}
Cara Kerja Sensor BH1750
Secara sederhana, BH1750 bekerja dengan mendeteksi cahaya menggunakan elemen photodiode di dalam IC. Sinyal dari sensor kemudian diproses dan dikonversi menjadi data digital.
Data hasil pengukuran kemudian dapat dibaca oleh mikrokontroler melalui komunikasi I2C.
Prosesnya dapat digambarkan sebagai berikut:
- Cahaya dari lingkungan mengenai sensor BH1750.
- Photodiode mendeteksi intensitas cahaya.
- Sinyal sensor diproses oleh rangkaian internal.
- ADC mengubah hasil pengukuran menjadi data digital.
- BH1750 mengirimkan data melalui komunikasi I2C.
- Arduino membaca data tersebut.
- Program Arduino mengubah data menjadi nilai intensitas cahaya dalam lux.
BH1750 juga dirancang dengan respons spektral yang mendekati respons mata manusia sehingga cocok untuk berbagai aplikasi pengukuran cahaya sekitar. :contentReference[oaicite:4]{index=4}
Komunikasi I2C pada BH1750
Salah satu alasan BH1750 populer untuk proyek Arduino adalah penggunaan komunikasi I2C.
Komunikasi I2C menggunakan dua jalur utama:
- SDA = jalur data.
- SCL = jalur clock.
Dengan hanya menggunakan dua jalur komunikasi tersebut, beberapa perangkat I2C dapat dihubungkan ke mikrokontroler yang sama selama alamat masing-masing perangkat tidak bertabrakan.
Wiring BH1750 dengan Arduino Uno
Berikut contoh koneksi modul BH1750 dengan Arduino Uno.
| BH1750 | Arduino Uno |
|---|---|
| VCC | 3.3V / sesuai spesifikasi modul |
| GND | GND |
| SCL | A5 |
| SDA | A4 |
| ADDR | GND atau sesuai kebutuhan alamat |
Pada Arduino Uno, jalur I2C menggunakan A4 sebagai SDA dan A5 sebagai SCL.
Untuk modul breakout BH1750, perhatikan label tegangan yang tercetak pada board. IC BH1750FVI sendiri memiliki rentang supply sekitar 2,4–3,6 V, sehingga jangan menganggap semua breakout otomatis aman diberi 5 V tanpa memeriksa rangkaiannya. :contentReference[oaicite:5]{index=5}
Library BH1750 untuk Arduino
Untuk mempermudah penggunaan BH1750, kita dapat menggunakan library BH1750 yang tersedia melalui Arduino IDE.
Selain library BH1750, komunikasi I2C pada Arduino menggunakan library bawaan:
#include <Wire.h>
Setelah library BH1750 terpasang, sensor dapat diinisialisasi dan dibaca melalui program Arduino.
Contoh Program Arduino untuk Membaca BH1750
Berikut contoh program sederhana untuk membaca intensitas cahaya menggunakan BH1750 dan menampilkan hasilnya pada Serial Monitor.
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup() {
Serial.begin(9600);
Wire.begin();
if (lightMeter.begin()) {
Serial.println("BH1750 berhasil terhubung.");
} else {
Serial.println("BH1750 tidak ditemukan.");
}
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Intensitas Cahaya: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}
Setelah program di-upload, buka Serial Monitor dan gunakan baud rate 9600.
Jika sensor dan koneksi berhasil, Arduino akan menampilkan nilai intensitas cahaya dalam satuan lux.
Contoh Hasil Pembacaan BH1750
Contoh tampilan pada Serial Monitor:
BH1750 berhasil terhubung.
Intensitas Cahaya: 125.00 lx
Intensitas Cahaya: 128.00 lx
Intensitas Cahaya: 130.00 lx
Intensitas Cahaya: 127.00 lx
Nilai tersebut akan berubah sesuai kondisi pencahayaan yang diterima oleh sensor.
Contoh Proyek BH1750 Arduino: Lampu Otomatis
Salah satu proyek sederhana yang dapat dibuat dengan BH1750 adalah sistem lampu otomatis.
Konsepnya cukup sederhana. Arduino membaca nilai lux dari BH1750 kemudian menentukan apakah lampu perlu dinyalakan atau dimatikan.
Contohnya:
- Jika lux < 50 → lampu menyala.
- Jika lux > 100 → lampu mati.
Nilai ambang tersebut hanyalah contoh. Dalam aplikasi sebenarnya, threshold harus disesuaikan dengan kebutuhan sistem dan kondisi lingkungan.
Kelebihan BH1750
- Output berupa data digital.
- Menggunakan komunikasi I2C.
- Dapat membaca intensitas cahaya dalam satuan lux.
- Memiliki rentang pengukuran yang luas.
- Mudah digunakan dengan Arduino.
- Tidak membutuhkan rangkaian ADC eksternal untuk membaca output digitalnya.
- Cocok untuk proyek IoT dan mikrokontroler.
- Dapat digunakan untuk sistem kontrol pencahayaan otomatis.
Kekurangan BH1750
- Jangkauan dan akurasi praktis dapat dipengaruhi desain modul dan kondisi pemasangan.
- Perlu memperhatikan tegangan kerja sensor.
- Menggunakan komunikasi digital sehingga membutuhkan mikrokontroler yang mendukung I2C.
- Hasil pengukuran dapat dipengaruhi posisi sensor terhadap sumber cahaya.
- Untuk aplikasi khusus dengan kebutuhan akurasi tinggi, sensor perlu dievaluasi dan dikalibrasi sesuai kondisi penggunaannya.
Perbedaan BH1750 dengan LDR
BH1750 dan LDR sama-sama dapat digunakan untuk mendeteksi cahaya, tetapi cara menghasilkan datanya berbeda.
| BH1750 | LDR |
|---|---|
| Sensor cahaya digital | Sensor cahaya berbasis resistansi |
| Menggunakan I2C | Biasanya membutuhkan rangkaian pembagi tegangan |
| Data dapat dibaca sebagai lux | Output perlu dikonversi atau dikalibrasi |
| Mudah digunakan untuk pengukuran digital | Sangat sederhana dan murah |
| Cocok untuk sistem digital dan IoT | Cocok untuk rangkaian sederhana |
Contoh Penerapan BH1750
1. Lampu Otomatis
BH1750 dapat digunakan untuk menentukan kapan lampu harus menyala berdasarkan tingkat pencahayaan lingkungan.
2. Smart Home
Sensor dapat menjadi bagian dari sistem smart home untuk mengatur lampu berdasarkan kondisi pencahayaan ruangan.
3. Kontrol Kecerahan Display
Data cahaya dari BH1750 dapat digunakan untuk menentukan tingkat brightness display agar menyesuaikan kondisi lingkungan.
4. Sistem Monitoring Cahaya
BH1750 dapat digunakan untuk memantau perubahan intensitas cahaya secara berkala dan mengirimkan data tersebut ke sistem monitoring.
5. Proyek IoT
Nilai lux dapat dikirimkan oleh mikrokontroler ke server atau platform IoT sehingga kondisi pencahayaan dapat dipantau dari jarak jauh.
6. Robotika
Dalam proyek robotika tertentu, sensor cahaya dapat digunakan sebagai salah satu input untuk menentukan respons robot terhadap kondisi pencahayaan.
Troubleshooting BH1750
Jika BH1750 tidak memberikan data atau hasil pembacaannya tidak sesuai, beberapa hal berikut dapat diperiksa:
- Pastikan VCC dan GND terhubung dengan benar.
- Periksa kembali koneksi SDA dan SCL.
- Pastikan SDA Arduino Uno terhubung ke A4.
- Pastikan SCL Arduino Uno terhubung ke A5.
- Pastikan library BH1750 sudah terpasang.
- Periksa alamat I2C sensor.
- Gunakan I2C scanner jika sensor tidak terdeteksi.
- Pastikan modul mendapatkan tegangan sesuai spesifikasinya.
- Jauhkan sensor dari sumber cahaya yang sangat dekat jika ingin melakukan pengukuran lingkungan.
- Periksa apakah sensor tertutup benda atau casing yang memengaruhi cahaya yang masuk.
Cara Mengetahui Alamat I2C BH1750
Jika Arduino tidak menemukan BH1750, salah satu langkah yang dapat dilakukan adalah menggunakan program I2C Scanner.
Pada konfigurasi umum, BH1750 dapat muncul pada alamat:
0x23
atau:
0x5C
Alamat tersebut bergantung pada kondisi pin ADDR. Dokumentasi BH1750FVI menyatakan bahwa terdapat dua pilihan alamat slave yang ditentukan oleh level pada pin ADDR. :contentReference[oaicite:6]{index=6}
Tips Menggunakan BH1750
- Pastikan sensor tidak tertutup casing yang menghalangi cahaya.
- Jangan menempatkan sensor terlalu dekat dengan sumber cahaya jika ingin mengukur kondisi ambient.
- Gunakan kabel I2C yang baik untuk koneksi yang stabil.
- Periksa alamat I2C ketika menggunakan beberapa perangkat I2C.
- Perhatikan spesifikasi tegangan modul yang digunakan.
- Gunakan threshold yang sesuai dengan kondisi lingkungan.
- Untuk aplikasi pengukuran serius, lakukan pengujian dan kalibrasi sesuai kebutuhan.
Kesimpulan
Ambient Light Sensor BH1750 merupakan sensor cahaya digital yang praktis digunakan untuk mengukur intensitas cahaya lingkungan dalam satuan lux.
BH1750 menggunakan komunikasi I2C, sehingga hanya membutuhkan jalur SDA dan SCL untuk berkomunikasi dengan mikrokontroler. Sensor ini juga memiliki rentang pengukuran yang luas dan dapat memberikan data digital dengan resolusi tinggi. :contentReference[oaicite:7]{index=7}
Dengan menghubungkan BH1750 ke Arduino, kita dapat membuat berbagai proyek seperti lampu otomatis, smart home, monitoring cahaya, kontrol brightness display, robotika, dan perangkat IoT.
Bagi Anda yang sedang belajar Arduino atau mengembangkan proyek elektronika, BH1750 dapat menjadi salah satu sensor yang menarik untuk dipelajari karena penggunaannya relatif sederhana dan data yang dihasilkan sudah berbentuk digital.
Butuh Komponen Elektronika untuk Proyek Anda?
Sedang mencari BH1750, sensor Arduino, modul mikrokontroler, IC, sensor, atau sparepart elektronik lainnya?
Jabbar Electronics membantu menyediakan berbagai kebutuhan komponen elektronika dan sparepart industri, termasuk membantu pengadaan komponen yang sulit ditemukan di pasaran Indonesia.
Jika komponen yang Anda cari tidak tersedia, Anda juga dapat menanyakan kebutuhan indent atau custom order kepada Jabbar Electronics.
Hubungi Jabbar Electronics melalui WhatsApp:
👉 Klik di sini untuk menghubungi Jabbar Electronics via WhatsApp
FAQ BH1750
Apa itu BH1750?
BH1750 adalah digital ambient light sensor yang digunakan untuk mengukur intensitas cahaya sekitar dan berkomunikasi dengan mikrokontroler melalui I2C.
BH1750 mengukur apa?
BH1750 digunakan untuk mengukur intensitas cahaya atau iluminansi yang dinyatakan dalam satuan lux.
Apakah BH1750 bisa digunakan dengan Arduino?
Ya. BH1750 dapat digunakan dengan Arduino melalui komunikasi I2C. Pada Arduino Uno, jalur yang umum digunakan adalah A4 untuk SDA dan A5 untuk SCL.
Berapa alamat I2C BH1750?
BH1750 memiliki dua pilihan alamat I2C, yaitu 0x23 dan 0x5C, yang ditentukan oleh kondisi pin ADDR.
Apakah BH1750 lebih baik daripada LDR?
Untuk pengukuran cahaya secara digital, BH1750 memiliki keunggulan karena dapat memberikan data iluminansi dalam lux melalui I2C. Sementara itu, LDR lebih sederhana dan murah tetapi umumnya membutuhkan rangkaian tambahan serta proses kalibrasi untuk mendapatkan estimasi intensitas cahaya.
Apakah BH1750 bisa digunakan untuk lampu otomatis?
Bisa. Arduino dapat membaca nilai lux dari BH1750 kemudian menggunakan nilai tersebut sebagai dasar untuk menyalakan atau mematikan lampu.
Apakah BH1750 menggunakan komunikasi I2C?
Ya. BH1750 menggunakan antarmuka I2C untuk komunikasi dengan mikrokontroler. :contentReference[oaicite:8]{index=8}
Referensi
Materi dasar: Ambient Light Sensor BH1750 – Edukasi Elektronika
Dokumentasi teknis: BH1750FVI Technical Note – ROHM Semiconductor