Search Code

Arduino ile bir LDR kullanarak ve bir kontrol anahtarı ile bir Arduino'yu aydınlatma

Arduino ile bir LDR kullanarak ve bir kontrol anahtarı ile bir Arduino'yu aydınlatma

Bu eğitimde, bir Arduino ile ortam ışık seviyelerine dayalı olarak bir ışığı kontrol etmek için bir Işık Bağımlı Direnç (LDR) nasıl kullanılacağını keşfedeceğiz. LDR, ışık yoğunluğuna bağlı olarak direncini değiştirir; bu nedenle, bir ortamda ışık olup olmadığını tespit etmek için kullanılabilir. Işık belirli bir eşik değerinin altındaysa, bir çıkış pinini açarak bir ışığı aktive edeceğiz.

LDR Illustration and symbol

Gerekli ana bileşenler arasında bir Arduino kartı, bir 10k ohm direnç, LDR ve bazı jumper kabloları bulunmaktadır. LDR, analog voltajı okumak için dirençle birlikte bir voltaj bölücü konfigürasyonunda bağlanacaktır; bu voltaj, ışık yoğunluğuna bağlı olarak değişecektir. Bu voltajı bir LED veya diğer çıkış cihazlarını kontrol etmek için kullanacağız.

Kurulum ve kodun görsel bir gösterimi için, ilgili videoyu kontrol etmeyi unutmayın (videoda 0:10).

Donanım Açıklaması

Işık Bağımlı Direnç (LDR), gelen ışık yoğunluğu arttıkça direnci azalan bir direnç türüdür. Genellikle ışık seviyelerinin izlenmesi gereken uygulamalarda kullanılır. Kurulumumuzda, LDR ortam ışık seviyelerini tespit etmek için kullanılacak ve Arduino'ya karşılık gelen bir analog voltaj gönderecektir.

Arduino, bu voltajı analog pinlerinden biri aracılığıyla okuyacak ve tanımlı bir eşik değerine göre bağlı ışığı açıp kapatmaya karar verecektir. 10k ohm direnç, Arduino'nun okuyabileceği kararlı bir voltaj çıkışı oluşturmak için LDR ile birlikte voltaj bölücü konfigürasyonunda kullanılır.

Veri Sayfası Detayları

ÜreticiGenel
Parça numarasıLDR
Direnç (ışık)100 - 500 Ω
Direnç (karanlık)10 kΩ - 1 MΩ
Çalışma voltajı3.3 V - 5 V
Yanıt süresi20 ms (tipik)
PaketDelik içi

  • Doğru voltaj seviyelerini sağladığınızdan emin olun; 5V'u aşmayın.
  • Okumaları stabilize etmek için bir pull-down direnci kullanın.
  • Voltaj bölücü için uygun bir direnç değeri (10kΩ) seçin.
  • Gerekirse gürültü filtreleme için bir kapasitör kullanmayı düşünün.
  • Test sırasında LDR'yi doğrudan ışık kaynaklarından uzak tutun.

Bağlantı Talimatları

Wiring LDR with Arduino
Wiring LDR with Arduino

Döngüyü kurmak için, LDR'nin bir terminalini Arduino üzerindeki 3.3V güç kaynağına bağlayarak başlayın. LDR'nin diğer terminali, 10k ohm direncin bir ucuna bağlanacaktır. Direncin diğer ucu ise toprağa bağlanmalıdır.

Sonra, LDR ile direnç arasındaki bağlantıyı bir analog giriş pinine, örneğin A0 pinine bağlayın. Bu bağlantı, Arduino'nun voltajı okumasını sağlayacaktır. Arduino'nun toprağını devrenizin ortak toprağına bağladığınızdan emin olun, böylece doğru işlevsellik sağlanır.

Kod Örnekleri ve Geçiş

Aşağıdaki kod parçası, seri iletişimi başlatır ve LDR'den analog değeri okur. Değer daha sonra bir voltaja dönüştürülür ve seri monitöre yazdırılır.

int LDRvalue = analogRead(A0); // LDR'den analog değeri oku
float voltage = LDRvalue * (5.0 / 1023.0); // Voltaja dönüştür
Serial.print("Voltaj ="); // Etiket yazdır
Serial.print(voltage); // Gerçek voltajı yazdır

Bu kodda, LDRvalue değişkeni LDR'den alınan ham analog okumayı saklar. Voltaj, maksimum analog değere (1023) ve voltaj referansına (5V) dayanarak hesaplanır.

Sonra, bu voltajın bir eşik değerinin (bu durumda 3V) altında olup olmadığını kontrol ederiz ve bir çıkış pinini kontrol ederiz.

if(voltage < 3 ){ 
 digitalWrite(10, HIGH); // Işığı aç
}else{
 digitalWrite(10, LOW); // Işığı kapat
}

Burada, ölçülen voltaj 3 voltun altındaysa, çıkış pinini (10) HIGH olarak ayarlıyoruz ve ışığı açıyoruz; aksi takdirde LOW olarak ayarlıyoruz ve kapatıyoruz. Işık durumunu sürekli kontrol etmek, ortam ışık seviyelerine dayalı gerçek zamanlı kontrol sağlar.

Demonstrasyon / Ne Beklemeli

Bağlantıları tamamladıktan ve kodunuzu yükledikten sonra, LDR üzerindeki ışık yoğunluğunu değiştirirken seri monitörde voltaj okumalarının değiştiğini görmelisiniz. LDR'yi kapatırsanız, voltaj artmalı ve ışığa maruz kaldığında azalmalıdır. Bu davranış, ışığı kontrol eden çıkış pinini doğrudan etkileyecektir.

Yüzer girişler veya yanlış voltaj seviyeleri gibi yaygın tuzaklara dikkat edin; bu durum hatalı okumalarla sonuçlanabilir (videoda 12:30).

Video Zaman Damgaları

  • 00:00 LDR'ye Giriş
  • 01:30 Donanım kurulumu
  • 03:45 Kod açıklaması
  • 06:00 Kodu çalıştırma
  • 09:15 Sorun giderme ipuçları

Görseller

Wiring LDR with Arduino
Wiring LDR with Arduino
An LDR
An LDR
LDR Illustration and symbol
LDR Illustration and symbol
14-Using an LDR with an Arduino and a control switch for a light
Dil: C++
//Original source:  https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage

// This code is used with a video tutorial for RoboJax.com
// Published on August 31, 2017 from Ajax, ON, Canada.
// Written/Edited by A.B.S

/void setup()

{

  Serial.begin(9600);          //  setup serial
  pinMode(10, OUTPUT);
}



void loop(){

  int LDRvalue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = LDRvalue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.print("Voltage =");// prints the text "Voltage ="
  Serial.print(voltage);// prints the actual voltage
  
  // check if voltage is less than 3, then set pin 10 to high or ON
  if(voltage < 3 ){
    digitalWrite(10, HIGH); 
  }else{
    digitalWrite(10, LOW); // or keep it OFF when voltage is larger than 3
  }
  Serial.println();
  delay(300);

}

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Diğer dosyalar