KUNJUNGI KAMI

KUNJUNGI KITA DI BUKALAPAK, TOKOPEDIA DAN SHOPEE

Arduino dengan Sensor Cahaya Lingkungan BH1750

BH1750 adalah sensor cahaya lingkungan 16-bit. Dalam panduan ini, Anda akan belajar bagaimana menggunakan sensor cahaya lingkungan BH1750 dengan Arduino board. Sensor ini berkomunikasi dengan mikrokontroler menggunakan protokol komunikasi I2C."



Anda akan belajar cara menghubungkan sensor ke board Arduino, menginstal library yang dibutuhkan, dan menggunakan sketsa sederhana untuk menampilkan pembacaan sensor di Monitor Serial.


Panduan ini mencakup topik-topik berikut:


Memperkenalkan Sensor Cahaya Lingkungan BH1750

BH170 Pinout 

Antarmuka I2C BH17500

Contoh: BH1750: Membaca Cahaya Lingkungan dengan Arduino


Memperkenalkan Sensor Cahaya Lingkungan BH1750

BH1750 adalah sensor cahaya lingkungan 16-bit yang berkomunikasi melalui protokol I2C. Sensor ini menghasilkan pengukuran kecerahan dalam satuan lux (satuan terderivasi SI untuk pencahayaan). Rentang pengukurannya mulai dari minimum 1 lux hingga maksimum 65535 lux.


Sensor ini mungkin tersedia dalam berbagai format breakout board. Lihat gambar di bawah ini. Kedua gambar tersebut merupakan representasi dari sensor BH1750.


Fitur-fitur BH1750

Berikut adalah daftar fitur-fitur dari sensor BH1750. Untuk informasi lebih lanjut, silakan lihat datasheet sensor BH1750.


- Antarmuka bus I2C

- Tanggung jawab spektral mendekati respons mata manusia

- Konverter pencahayaan menjadi data digital

- Rentang pengukuran: 1 - 65535 lux

- Konsumsi arus rendah melalui fungsi power down

- Fungsi penolakan gangguan cahaya 50Hz / 60Hz

- Dapat memilih 2 alamat I2C slave yang berbeda

- Variasi pengukuran kecil (+/- 20%)

- Pengaruh sinar inframerah sangat kecil

- Mendukung mode pengukuran berkelanjutan

- Mendukung mode pengukuran satu kali (one-time measurement mode)


Mode Pengukuran

Sensor ini mendukung dua mode pengukuran yang berbeda: mode pengukuran berkelanjutan (continuous measurement mode) dan mode pengukuran satu kali (one-time measurement mode). Setiap mode mendukung tiga mode resolusi yang berbeda.

Mode Resolusi Rendah Presisi 4 lux Waktu pengukuran 16 ms
Mode Resolusi Tinggi Presisi 1 lux Waktu pengukuran 120 ms
Mode Resolusi Tinggi 2 Presisi 0.5 lux Waktu pengukuran 120 ms

Pada mode pengukuran berkelanjutan, sensor terus-menerus mengukur nilai cahaya lingkungan. Pada mode pengukuran satu kali, sensor mengukur nilai cahaya lingkungan satu kali saja, dan kemudian beralih ke mode power down.

Aplikasi 

BH1750 adalah sensor cahaya lingkungan sehingga dapat digunakan dalam berbagai macam proyek. Contohnya:


untuk mendeteksi apakah sudah siang atau malam;

untuk mengatur atau menghidupkan/mematikan kecerahan LED sesuai dengan cahaya lingkungan;

untuk mengatur kecerahan LCD dan layar;

untuk mendeteksi apakah sebuah LED menyala;"


BH1750 Pinout

Berikut adalah pinout BH1750:

VCC Menyuplai daya ke sensor (3.3V atau 5V)
GND Koneksi GND (Tanah)
SCL Pin SCL untuk komunikasi I2C
SDA Pin SDA untuk komunikasi I2C
ADD Memilih alamat (opsional)

Pin ADD digunakan untuk mengatur alamat sensor I2C. Jika tegangan pada pin ini kurang dari 0.7VCC (pin dibiarkan mengambang atau terhubung ke GND), alamat I2C adalah 0x23. Namun, jika tegangan lebih tinggi dari 0.7xVCC (pin terhubung ke VCC), alamatnya adalah 0x5C. Ringkasnya:


  • Pin ADD mengambang atau terhubung ke GND → alamat: 0x23
  • Pin ADD terhubung ke VCC → alamat: 0x5C


Antarmuka I2C BH1750

Sensor cahaya lingkungan BH1750 mendukung antarmuka I2C.

Anda dapat menghubungkan sensor BH1750 ke Arduino menggunakan pin I2C default (ini adalah pin untuk Arduino UNO, jika Anda menggunakan model lain, periksa pin I2C-nya):

BH1750 Arduino
SCL A5
SDA A4
SDA Pin SDA untuk komunikasi I2C
ADD Memilih alamat (opsional)


BH1750: Membaca Cahaya Lingkungan dengan Arduino

Sekarang setelah Anda lebih familiar dengan sensor BH1750, mari kita coba mengujinya. Pada bagian ini, kami akan membangun proyek sederhana yang membaca cahaya lingkungan dan menampilkannya di Monitor Serial Arduino IDE.


Komponen yang Dibutuhkan

Untuk menyelesaikan panduan ini, Anda memerlukan komponen-komponen berikut:


Sensor cahaya lingkungan BH1750

Arduino (baca tentang Best Arduino starter kits)

Breadboard (opsional)

Kabel jumper (opsional)

Anda dapat menggunakan tautan sebelumnya atau langsung pergi ke tokopedia.com/cncstorebandung untuk menemukan semua komponen untuk proyek Anda dengan harga terbaik!


Skematik - Arduino dengan BH1750

Hubungkan sensor BH1750 ke pin I2C Arduino. Anda dapat mengikuti skematik diagram berikut.



Anda juga dapat mengikuti tabel berikut:

BH1750 Arduino
VCC 5V
GND GND
SCL A5
SDA (Data) A4
ADD* Don’t connect


Dengan tidak menghubungkan pin ADD, kita memilih alamat I2C 0x23. Hubungkan pin ADD ke 3.3V untuk memilih alamat 0x5C.


Menginstal  BH1750 Library

Terdapat beberapa library untuk membaca sensor BH1750. Kita akan menggunakan BH1750 Library buatan Christopher Laws. Library ini kompatibel dengan ESP32, ESP8266, dan Arduino.


Buka Arduino IDE Anda dan pergi ke Sketch > Include Library > Manage Libraries. Library Manager akan terbuka.


Cari "BH1750" pada kotak pencarian dan instal library BH1750 buatan Christopher Laws.



Kode - Membaca Sensor Cahaya Lingkungan BH1750


Salin kode berikut ke Arduino IDE Anda. Kode ini hanya membaca cahaya lingkungan dalam satuan lux dan menampilkan nilainya di Monitor Serial. Ini adalah contoh kode dari library bernama BH1750test (Anda dapat mengaksesnya di File > Examples > BH1750 > BH1750test).


/*
  Example of BH1750 library usage. This example initialises the BH1750 object using the default high resolution continuous mode and then makes a light level reading every second.
*/

#include <Wire.h>
#include <BH1750.h>

BH1750 lightMeter;

void setup(){
  Serial.begin(9600);

  // Initialize the I2C bus (BH1750 library doesn't do this automatically)
  Wire.begin();
  // On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3);
  // For Wemos / Lolin D1 Mini Pro and the Ambient Light shield use Wire.begin(D2, D1);

  lightMeter.begin();

  Serial.println(F("BH1750 Test begin"));
}

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


Library ini juga menyediakan contoh-contoh lain yang layak untuk dieksplorasi.


Cara Kerja Kode Ini

Kita mulai dengan menyertakan library yang diperlukan. Library Wire.h digunakan untuk menggunakan protokol komunikasi I2C, dan library BH1750.h digunakan untuk membaca dari sensor.


#include <Wire.h>
#include <BH1750.h>


Kemudian, kita membuat objek BH1750 yang disebut lightMeter.


BH1750 lightMeter;


Dalam setup(), inisialisasi Monitor Serial dengan kecepatan baud 9600.

Contoh Kode C++ untuk BH1750


Serial.begin(9600);


Inisialisasi protokol komunikasi I2C. Ini akan memulai komunikasi I2C pada pin I2C default mikrokontroler. Jika Anda ingin menggunakan pin I2C yang berbeda, sertakan pin-pi tersebut dalam metode begin() seperti ini: Wire.begin(SDA, SCL).


Wire.begin();


Inisialisasi sensor menggunakan metode begin() pada objek BH1750 (lightMeter).


lightMeter.begin();


Dalam loop(), kita membuat variabel bernama lux, yang menyimpan nilai kecerahan. Untuk mendapatkan nilai tersebut, Anda cukup memanggil fungsi readLightLevel() pada objek BH1750 (lightMeter).


float lux = lightMeter.readLightLevel();


Akhirnya, tampilkan hasil pengukuran di Monitor Serial.


Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");


Anda mendapatkan dan mencetak hasil bacaan baru setiap satu detik.


delay(1000);


Demonstrasi

Sekarang, Anda dapat mengunggah kode ke board Anda. Pertama, hubungkan board Anda ke komputer. Kemudian, pergi ke Tools > Board dan pilih Arduino board yang Anda gunakan. Pergi ke Tools > Port dan pilih port COM tempat board Anda terhubung. Terakhir, klik tombol unggah (upload).


Setelah berhasil mengunggah kode, buka Serial Monitor dengan kecepatan baud 9600.



Pembacaan kecerahan yang baru akan dicetak di Serial Monitor.


Fungsi Lain yang Berguna

Library yang kita gunakan dengan sensor BH1750 menyediakan contoh-contoh lain yang menggambarkan fungsi dan fitur lain yang berguna. Anda dapat memeriksa semua contoh library BH1750 di sini.


Mengatur Mode Pengukuran

Secara default, library menggunakan mode pengukuran berkelanjutan dengan resolusi tinggi, tetapi Anda dapat mengubahnya dengan melewatkan mode pengukuran yang diinginkan ke metode begin() saat menginisialisasi sensor. Contohnya:


Berikut adalah daftar semua mode yang tersedia:

  • BH1750_CONTINUOUS_LOW_RES_MODE
  • BH1750_CONTINUOUS_HIGH_RES_MODE (default)
  • BH1750_CONTINUOUS_HIGH_RES_MODE_2
  • BH1750_ONE_TIME_LOW_RES_MODE
  • BH1750_ONE_TIME_HIGH_RES_MODE
  • BH1750_ONE_TIME_HIGH_RES_MODE_2

Lihat properti dari setiap mode pada bagian sebelumnya

mode pada bagian sebelumnya.


Penutup

Dalam tutorial ini, Anda telah belajar bagaimana menggunakan sensor cahaya lingkungan BH1750 dengan Arduino Uno. Sensor ini sangat mudah digunakan. Ia menggunakan protokol komunikasi I2C, yang membuat pengawatan menjadi sederhana, dan library menyediakan metode untuk dengan mudah mendapatkan pembacaan.


Kami berharap Anda menemukan tutorial ini bermanfaat. Beri tahu kami dalam komentar di bawah ini, dalam proyek apa Anda akan menggunakan sensor BH1750.


Kami memiliki tutorial untuk sensor lain dengan board Arduino yang mungkin Anda suka: (tuliskan daftar tutorial lain di sini)

Ambient Light Sensor Adalah

Cara kerja Sensor Cahaya Lingkungan BH1750

Cara menggunakan Sensor Cahaya Lingkungan BH1750 

Mode Pengukuran Sensor Cahaya Lingkungan BH1750

Mode Pengukuran BH1750

Tutorial Menggunakan Sensor Cahaya Lingkungan BH1750 dengan Arduino

Mendeteksi Siang dan Malam dengan Sensor BH1750 dan Arduino 

Tidak ada komentar:

Posting Komentar