İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
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, programlama dili olarak Java kullanarak BH1715'in Raspberry pi 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. Ahududulu Pi
3. I2C Kablosu
4. Raspberry Pi için I2C Kalkanı
5. Ethernet Kablosu
Adım 1: BH1715'e Genel Bakış:
Öncelikle sizi BH1715 olan sensör modülünün temel özelliklerini ve üzerinde çalıştığı iletişim protokolünü tanımak isteriz.
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..!
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. Ahududu Pi
3. I2C Kablosu
4. Raspberry Pi için I2C Kalkanı
5. Ethernet kablosu
Adım 3: 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: Java Kodunu Kullanarak Işık Yoğunluğu Ölçümü:
Raspberry pi kullanmanın avantajı, kartı programlamak istediğiniz programlama dilinin, sensör ile arayüz oluşturmak için size esneklik sağlamasıdır. Bu kartın bu avantajından yararlanarak, burada Java'da programlama olduğunu gösteriyoruz. BH1715 için Java kodu, Dcube Store olan GitHub topluluğumuzdan indirilebilir.
Kullanıcıların kolaylığının yanı sıra, kodu burada da açıklıyoruz:
Kodlamanın ilk adımı olarak java durumunda pi4j kütüphanesini indirmeniz gerekiyor çünkü bu kütüphane kodda kullanılan fonksiyonları destekliyor. Bu nedenle, kütüphaneyi indirmek için aşağıdaki bağlantıyı ziyaret edebilirsiniz:
pi4j.com/install.html
Bu sensör için çalışan Java kodunu buradan da kopyalayabilirsiniz:
// Özgür irade lisansıyla dağıtılır.
// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.
// BH1715
// Bu kod, ControlEverything.com'da bulunan BH1715_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.
//
com.pi4j.io.i2c. I2CBus'u içe aktarın;
com.pi4j.io.i2c. I2CDevice'ı içe aktarın;
com.pi4j.io.i2c. I2CFFactory'yi içe aktarın;
java.io. IOException'ı içe aktarın;
genel sınıf BH1715
{
public static void main(String args) İstisna atar
{
// I2C veri yolu oluştur
I2CBus veri yolu = I2CFactory.getInstance(I2CBus. BUS_1);
// I2C cihazını al, BH1715 I2C adresi 0x23(35)
I2CDevice aygıtı = bus.getDevice(0x23);
// Güç açma komutu gönder
device.write((bayt)0x01);
// Sürekli ölçüm komutu gönder
device.write((bayt)0x10);
thread.sleep(500);
// 2 bayt veri oku
// parlaklık msb, parlaklık lsb
bayt veri = yeni bayt[2];
device.read(veri, 0, 2);
// Verileri dönüştür
çift parlaklık = ((veri[0] & 0xFF) * 256 + (veri[1] & 0xFF)) / 1.20;
// Ekrana veri çıktısı
System.out.printf("Ortam Işığı Parlaklığı: %.2f lux %n", parlaklık);
}
}
Sensör ve kart arasındaki i2c iletişimini kolaylaştıran kütüphane pi4j'dir, çeşitli paketleri I2CBus, I2CDevice ve I2CFctory bağlantının kurulmasına yardımcı olur.
com.pi4j.io.i2c. I2CBus'u içe aktar; com.pi4j.io.i2c. I2CDevice'ı içe aktar; com.pi4j.io.i2c. I2CFFactory'yi içe aktarın; java.io. IOException'ı içe aktarın;
Kodun bu kısmı, write() işlevi kullanılarak ilgili komutlar yazılarak sensörün ışık yoğunluğu ölçümü için çalışmasını sağlar ve ardından veriler read() işlevi kullanılarak okunur.
device.write((bayt)0x01); // açma komutu
device.write((bayt)0x10); // sürekli ölçüm komutu
bayt veri = yeni bayt[2]; // 2 bayt veri oku
device.read(veri, 0, 2);
Sensörden alınan veriler, aşağıdakiler kullanılarak uygun formata dönüştürülür:
çift parlaklık = ((veri[0] & 0xFF) * 256 + (veri[1] & 0xFF)) / 1.20;
Çıktı, System.out.println() işlevi kullanılarak aşağıdaki biçimde yazdırılır.
System.out.printf("Ortam Işığı Parlaklığı: %.2f lux %n", parlaklık);
Sensörün çıkışı yukarıdaki resimde gösterilmektedir.
Adım 5: 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:
AD7416ARZ ve Raspberry Pi Kullanarak Sıcaklık Ölçümü: 4 Adım
AD7416ARZ ve Raspberry Pi Kullanarak Sıcaklık Ölçümü: AD7416ARZ, dört adet tek kanallı analog-dijital dönüştürücü ve içinde yerleşik bir sıcaklık sensörü bulunan 10-Bit sıcaklık sensörüdür. Parçaların üzerindeki sıcaklık sensörüne multiplexer kanalları üzerinden erişilebilir. Bu yüksek hassasiyetli sıcaklık
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ı: 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
BH1715 ve Parçacık Fotonu Kullanarak Işık Yoğunluğu Hesaplaması: 5 Adım
BH1715 ve Parçacık Fotonu Kullanarak Işık Yoğunluğu Hesaplaması: 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
Programlamasız Işık Şiddeti Ölçer: 7 Adım (Resimli)
Programlamasız Işık Yoğunluğu Ölçer.: Bu talimat, Arduino veya başka bir mikro denetleyici veya programlama kullanmadan temel bir ışık yoğunluğu ölçer yapmakla ilgilidir. Işık yoğunluğu ölçer, farklı LED renkleriyle farklı ışık yoğunluğu seviyelerini gösterir. Kırmızı LED
Neopiksel ve Pull Up Switch Kullanarak Işık - Işık Modülünü Çekin: 6 Adım (Resimli)
Neopiksel ve Pull Up Switch Kullanarak Işık - Işık Modülünü Çekin: Işık modülünün özellikleri Arduino Uno Hardware & internet Neopixel & Enformatik Okulu'ndan ödünç alınan güç kaynağı & Ürün Tasarımı Güç kaynağı ile kontrol edilen ışık modülü Tüm fonksiyonlar