İç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, 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ış:
Ö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..!
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ı 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:
Ş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:
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:
BME280 ve Foton Arabirimi Kullanarak Nem, Basınç ve Sıcaklık Hesaplaması: 6 Adım
BME280 ve Foton Arabirimi Kullanarak Nem,Basınç ve Sıcaklık Hesaplama: Sıcaklık, basınç ve nem izleme gerektiren çeşitli projelerle karşılaşmaktayız. Böylece, bu parametrelerin farklı atmosferik koşullarda bir sistemin çalışma verimliliğini tahmin etmede gerçekten hayati bir rol oynadığını anlıyoruz
Arduino Işık Yoğunluğu Lambası: 3 Adım
Arduino Light Intensity Lamp: Bu devre gerçek bir lamba, okul projesi ve eğlenceli bir meydan okuma olarak kullanılabilir. Bu devrenin kullanımı ve yapımı kolaydır, ancak daha önce tinker cad kullanmadıysanız, önce denemek isteyebilirsiniz
Arduino Işık Yoğunluğu Lambası: 6 Adım
Arduino Işık Yoğunluğu Lambası: Arduino ile bir ışık Yoğunluğu Lambasının nasıl oluşturulacağı ve kodlanacağı konusundaki öğreticime hoş geldiniz. Bunu yapabilmek için bu bileşenlere ihtiyacınız olacak.* LDR * Arduino mikrodenetleyici* Ampul* Röle * Bir güç kaynağı* Breadboard * 1 k-ohm dirençİnşallah
Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi: 5 Adım
Arduino ve Python'un Arduino Ana Kitaplığını Kullanarak Işık Yoğunluğu Çizimi: Arduino, ekonomik ancak oldukça verimli ve işlevsel bir araç olduğundan, onu Gömülü C'de programlamak, proje yapma sürecini sıkıcı hale getirir! Python'un Arduino_Master modülü bunu basitleştirir ve hesaplamalar yapmamıza, çöp değerleri kaldırmamıza,
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