İçindekiler:

BH1715 ve Arduino Nano Kullanarak Işık Yoğunluğu Hesaplaması: 5 Adım
BH1715 ve Arduino Nano Kullanarak Işık Yoğunluğu Hesaplaması: 5 Adım

Video: BH1715 ve Arduino Nano Kullanarak Işık Yoğunluğu Hesaplaması: 5 Adım

Video: BH1715 ve Arduino Nano Kullanarak Işık Yoğunluğu Hesaplaması: 5 Adım
Video: Arduino LuxMeter and Fridge Sensor 2024, Temmuz
Anonim
Image
Image

Dün LCD ekranlar üzerinde çalışıyorduk ve bunlar üzerinde çalışırken ışık yoğunluğu hesaplamasının önemini fark ettik. Işık yoğunluğu sadece bu dünyanın fiziksel alanında önemli değildir, aynı zamanda biyolojik alanda da iyi söylenen rolü vardır. Işık yoğunluğunun doğru tahmini ekosistemimizde, bitkilerin büyümesinde vb. çok önemli bir rol oynar. Dolayısıyla, bu amaca hizmet etmek için 16 bit seri çıkış tipi ortam ışığı sensörü olan bu BH1715 sensörünü inceledik.

Bu derste, BH1715'in Arduino Nano ile çalışmasını göstereceğiz.

Bu amaçla ihtiyaç duyacağınız donanımlar aşağıdaki gibidir:

1. BH1715 - Ortam Işığı Sensörü

2. Arduino nano

3. I2C Kablosu

4. Arduino Nano için I2C Kalkanı

Adım 1: BH1715'e Genel Bakış:

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

Öncelikle sizi BH1715 olan sensör modülünün temel özellikleri ve üzerinde çalıştığı iletişim protokolü ile tanıştırmak istiyoruz.

BH1715, I²C veri yolu arayüzüne sahip dijital bir Ortam Işığı Sensörüdür. BH1715, mobil cihazlar için LCD ve Tuş Takımı arka ışık gücünü ayarlamak için ortam ışığı verilerini elde etmek için yaygın olarak kullanılır. Bu cihaz, 16 bit çözünürlük ve ayarlanabilir ölçüm aralığı sunarak 0,23 ila 100.000 lüks arasında algılamaya olanak tanır.

Sensörün üzerinde çalıştığı iletişim protokolü I2C'dir. I2C, inter-entegre devre anlamına gelir. Haberleşmenin SDA(seri data) ve SCL(seri saat) hatları üzerinden gerçekleştiği bir haberleşme protokolüdür. Aynı anda birden fazla cihazın bağlanmasına izin verir. En basit ve en verimli iletişim protokollerinden biridir.

Adım 2: İhtiyacınız Olan Şey..!

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:

1. BH1715 - Ortam Işığı Sensörü

2. Arduino Nano

3. I2C Kablosu

4. Arduino nano için I2C Kalkanı

Adım 3: Donanım Bağlantısı:

Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı

Donanım bağlantısı bölümü temel olarak sensör ve ahududu pi arasında gerekli olan kablo bağlantılarını açıklar. İstenilen çıktı için herhangi bir sistem üzerinde çalışırken doğru bağlantıların sağlanması temel zorunluluktur. Yani, gerekli bağlantılar aşağıdaki gibidir:

BH1715, I2C üzerinde çalışacaktır. Sensörün her bir arayüzünün nasıl bağlanacağını gösteren örnek kablo şeması buradadır.

Kutudan çıktığı gibi, kart bir I2C arayüzü için yapılandırılmıştır, bu nedenle, aksi takdirde agnostik iseniz bu bağlantıyı kullanmanızı öneririz. Tek ihtiyacınız olan dört tel!

Vcc, Gnd, SCL ve SDA pinlerinden sadece dört bağlantı gereklidir ve bunlar I2C kablosu yardımıyla bağlanır.

Bu bağlantılar yukarıdaki resimlerde gösterilmiştir.

Adım 4: Işık Şiddeti Ölçümü Arduino Kodu:

Işık Şiddeti Ölçümü Arduino Kodu
Işık Şiddeti Ölçümü Arduino Kodu
Işık Şiddeti Ölçümü Arduino Kodu
Işık Şiddeti Ölçümü Arduino Kodu

Şimdi Arduino koduyla başlayalım.

Arduino ile sensör modülünü kullanırken Wire.h kütüphanesini dahil ediyoruz. "Wire" kütüphanesi, sensör ve Arduino kartı arasındaki i2c iletişimini kolaylaştıran fonksiyonları içerir.

Arduino kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:

#Dahil etmek

// BH1715 I2C adresi 0x23(35) #define Addr 0x23 void setup() { // I2C iletişimini MASTER Wire.begin() olarak başlat; // Seri İletişimi Başlat, baud hızını ayarla = 9600 Serial.begin(9600); // I2C Transmission Wire'ı başlatın.beginTransmission(Adr); // Güç açık komutu Wire.write(0x01) gönder; // I2C İletimini Durdur Wire.endTransmission(); // I2C Transmission Wire'ı başlatın.beginTransmission(Adr); // Sürekli ölçüm komutu gönder Wire.write(0x10); // I2C İletimini Durdur Wire.endTransmission(); gecikme(300); } void loop() { unsigned int data[2]; // 2 bayt veri iste Wire.requestFrom(Addr, 2); // 2 bayt veri oku // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } gecikme(300); //veri kayan nokta parlaklığını dönüştür = ((veri[0] * 256) + veri[1]) / 1.20; // Verileri seri monitöre çıktı Serial.print("Ortam Işığı Parlaklığı:"); Serial.print(parlaklık); Serial.println("lüks"); }

Kodun aşağıdaki kısmı Wire.begin() ve Serial.begin() fonksiyonu yardımıyla i2c iletişimini ve seri iletişimi başlatır.

// I2C iletişimini MASTER olarak başlat

Wire.begin(); // Seri İletişimi Başlat, baud hızını ayarla = 9600 Serial.begin(9600); // I2C Transmission Wire'ı başlatın.beginTransmission(Adr); // Güç açık komutu Wire.write(0x01) gönder; // I2C İletimini Durdur Wire.endTransmission(); // I2C Transmission Wire'ı başlatın.beginTransmission(Adr); // Sürekli ölçüm komutu gönder Wire.write(0x10); // I2C İletimini Durdur Wire.endTransmission(); gecikme(300);

Işık yoğunluğu kodun aşağıdaki bölümünde ölçülür.

imzasız int veri[2];

// 2 bayt veri iste Wire.requestFrom(Addr, 2); // 2 bayt veri oku // ALS msb, ALS lsb if(Wire.available() == 2) { data[0] = Wire.read(); data[1] = Wire.read(); } gecikme(300); //veri kayan nokta parlaklığını dönüştür = ((veri[0] * 256) + veri[1]) / 1.20; // Verileri seri monitöre çıktı Serial.print("Ortam Işığı Parlaklığı:"); Serial.print(parlaklık); Serial.println("lüks");

Tek yapmanız gereken kodu arduino'ya yazmak ve seri porttan okumalarınızı kontrol etmek. Çıktı, referansınız için yukarıdaki resimde de gösterilmiştir.

Adım 5: Uygulamalar:

Uygulamalar
Uygulamalar

BH1715, Cep telefonu, LCD TV, NOT PC vb. cihazlara dahil edilebilen dijital çıkışlı bir ortam ışığı sensörüdür. Taşınabilir oyun makinesi, Dijital kamera, Dijital video kamera, PDA, LCD ekran ve daha birçok cihazda da kullanılabilir. verimli ışık algılama uygulamaları.

Önerilen: