Işığa Bağımlı Direnç – Arduino IDE Kullanan ESP32'li LDR Sensörü

Isiga Bagimli Direnc Arduino Ide Kullanan Esp32 Li Ldr Sensoru



ESP32, IoT özellikleriyle donatılmış güçlü bir mikro denetleyicidir. LDR'li ESP32, ışık yoğunluğunu ölçebilir ve buna göre yanıtı tetikleyebilir. ESP32 ve bir LDR kullanarak, uzaktan ışık algılama tabanlı bir proje oluşturabilir ve çeşitli endüstriler ve uygulamalar için çeşitli yenilikçi IoT çözümleri tasarlayabiliriz.

Bu kılavuzda, LDR'nin temelleri ve ESP32 ile uygulamaları ele alınacaktır.







1: LDR Sensörüne Giriş



2: ESP32 ile LDR uygulamaları



3: Arduino IDE Kullanarak LDR'yi ESP32 ile Arayüzleme





Çözüm

1: LDR Sensörüne Giriş

A L tamam D bağımlı R direnç (LDR), maruz kaldığı ışığın yoğunluğuna göre direncini değiştiren bir direnç türüdür. Karanlıkta direnci çok yüksek, parlak ışıkta ise direnci çok düşüktür. Dirençteki bu değişiklik, onu ışık algılama projeleri için en iyi hale getirir.




ESP32 analog pimleri, gelen voltajları 0 ile 4095 arasında bir tamsayıya dönüştürür. Bu tamsayı değeri, ESP32'de varsayılan olarak ADC referans voltajı olan 0V ile 3,3V arasındaki analog giriş voltajına göre eşlenir. Bu değer Arduino kullanılarak okunur analogOkuma() LDR'den işlev.

ESP32'nin daha ayrıntılı kılavuzu ve ADC pin çıkışı için makaleyi okuyun ESP32 ADC – Arduino IDE ile Analog Değerleri Okuyun .


ESP32, LDR üzerindeki voltajı ölçebilen ve bunu mikrodenetleyici tarafından işlenebilecek bir dijital sinyale dönüştürebilen yerleşik bir analogdan dijitale dönüştürücüye (ADC) sahiptir. Bu sinyali kullanarak ESP32, ışık yoğunluğuyla orantılı olan LDR'nin direncini belirler.

Burada ESP32 ADC kanal 1 pinlerini kullanacağız.


Fotonlar veya hafif parçacıklar, LDR'lerin çalışmasında çok önemli bir rol oynar. Bir LDR'nin yüzeyine ışık düştüğünde, fotonlar malzeme tarafından emilir ve bu da malzemedeki elektronları serbest bırakır. Serbest elektronların sayısı ışığın yoğunluğuyla doğru orantılıdır ve serbest kalan elektronlar arttıkça LDR'nin direnci düşer.

2: ESP32 ile LDR uygulamaları

ESP32 ile LDR'nin bazı IoT tabanlı uygulamalarının listesi aşağıdadır:

    • Işık aktif anahtarı
    • Işık seviyesi göstergesi
    • Cihazlarda gece modu
    • Işık tabanlı güvenlik sistemleri
    • akıllı aydınlatma sistemleri
    • Işığa duyarlı güvenlik sistemleri
    • Tesis izleme
    • Enerji tasarruflu aydınlatma
    • Otomatik pencere panjurları

3: Arduino IDE Kullanarak LDR'yi ESP32 ile Arayüzleme

ESP32 ile bir LDR kullanmak için LDR'yi bir ESP32 ADC kanal pinine bağlamamız gerekir. Bundan sonra LDR çıkış pininden analog değerleri okuyacak Arduino koduna ihtiyaç vardır. Bu devreyi tasarlamak için LDR'ye, bir dirence ve ESP32 kartına ihtiyacımız var.

LDR ve direnç, LDR'ye bağlı olacak şekilde seri olarak bağlanır. analog kanal 1 ESP32'nin giriş pini. Devreye LDR'nin çalışıp çalışmadığını test edebilen bir LED eklenecektir.

3.1: Şematik

LDR'yi ESP32 ile arayüzlemek için devre şeması oldukça basittir. LDR'yi ve bir direnci voltaj bölücü konfigürasyonunda bağlamamız ve voltaj bölücünün çıkışını ESP32'nin ADC (Analog to Digital Converter) pinine bağlamamız gerekiyor. ADC kanalı 1 pin D34, ESP32 için analog giriş olarak kullanılır.

Aşağıdaki görüntü, LDR sensörlü ESP32'nin şemasıdır.

3.2: Kod

Devre kurulduktan sonra, bir sonraki adım ESP32 için kod yazmaktır. Kod, LDR'den gelen analog girişi okuyacak ve bunu farklı ışık seviyelerine dayalı bir LED'i veya başka bir cihazı kontrol etmek için kullanacaktır.

int LDR_Val = 0 ; /* Fotodirenç değerini saklamak için değişken */
int sensörü = 3. 4 ; /* Analog Giriş için fotodirenç */
int neden olmuş = 25 ; /* LED çıkış Pimi */
geçersiz kurulum ( ) {
seri.başlangıç ( 9600 ) ; /* Baud hızı için seri iletişim */
    pin Modu ( led, ÇIKIŞ ) ; /* LED Pimi ayarlamak gibi çıktı */
}
boşluk döngüsü ( ) {
LDR_Val = analogOkuma ( sensör ) ; /* Analog Okumak LDR değeri */
seri.baskı ( 'LDR Çıkış Değeri: ' ) ;
Serial.println ( LDR_Val ) ; /* Seri monitörde LDR Çıkış Değerini göster */
eğer ( LDR_Val > 100 ) { /* Işık yoğunluğu YÜKSEK ise */
Serial.println ( ' Yüksek yoğunluk ' ) ;
dijital Yazma ( led, DÜŞÜK ) ; /* LED KAPALI Kalır */
}
başka {
/* Başka eğer Işık yoğunluğu DÜŞÜK LED AÇIK Kalacak */
Serial.println ( 'Düşük yoğunluklu ' ) ;
dijital Yazma ( led, YÜKSEK ) ; /* LED AÇIK konuma getirin LDR değeri az hariç 100 */
}
gecikme ( 1000 ) ; /* Her değerden sonra okur 1 saniye */
}


Yukarıdaki kodda, LDR'den gelen analog girişi kullanarak LED'i kontrol edecek ESP32'li bir LDR kullanıyoruz.

İlk üç kod satırı, verileri saklamak için değişkenleri bildirir. fotodirenç değeri , analog pin fotodirenç için ve NEDEN OLMUŞ çıkış pimi.

İçinde kurmak() işlevi, seri iletişim 9600 baud hızı ile başlatılır ve LED pin D25 çıkış olarak ayarlanır.

İçinde döngü() işlevinde, fotodirenç değeri, bellekte saklanan analogRead() işlevi kullanılarak okunur. LDR_Val değişken. Fotodirenç değeri daha sonra Serial.println() işlevi kullanılarak seri monitörde görüntülenir.

Bir eğer-başka ifadesi, fotodirenç tarafından algılanan ışık yoğunluğuna göre LED'i kontrol etmek için kullanılır. Fotodirenç değeri 100'den büyükse bu, ışık yoğunluğunun YÜKSEK olduğu anlamına gelir ve LED KAPALI kalır. Ancak fotodirenç değeri 100'den küçük veya eşitse ışık şiddeti DÜŞÜK demektir ve LED yanar.

Son olarak program fotodirenç değerini tekrar okumadan önce delay() fonksiyonunu kullanarak 1 saniye bekler. Bu döngü, fotodirenç tarafından algılanan ışık yoğunluğuna bağlı olarak LED'in AÇIK ve KAPALI olmasını sağlayarak süresiz olarak tekrar eder.

3.3: Loş Işıkta Çıktı

Işık yoğunluğu 100'den az olduğundan LED AÇIK kalacaktır.

3.4: Parlak Işık Altında Çıktı

Işık şiddeti arttıkça LDR değeri artacak ve LDR direnci azalacağı için LED sönecektir.

Çözüm

LDR, ADC kanal 1 pimi kullanılarak ESP32 ile arayüzlenebilir. LDR çıkışı, çeşitli uygulamalarda ışık algılamayı kontrol edebilir. Düşük maliyeti ve kompakt boyutuyla ESP32 ve LDR, ışık algılama yetenekleri gerektiren IoT projeleri için cazip bir seçimdir. Arduino'yu Kullanmak analogOkuma() fonksiyonu ile değerleri LDR'den okuyabiliriz.