Arduino Kontrollü Akıllı Masa Lambası: Ortam Işığına Göre Ayarlanabilir

Arduino Kontrollü Akıllı Masa Lambası: Ortam Işığına Göre Ayarlanabilir

Arduino Kontrollü Akıllı Masa Lambası: Ortam Işığına Göre Ayarlanabilir

Herkese merhaba Arduino severler! Bu yazımızda, etrafımızdaki ışık koşullarına göre parlaklığını otomatik olarak ayarlayan, akıllı bir masa lambası projesi geliştireceğiz. Bu proje hem Arduino'ya yeni başlayanlar için harika bir giriş olacak, hem de daha deneyimli kullanıcılar için keyifli bir uygulama örneği sunacak. Hazırsanız, malzemelere ve kodlamaya geçelim!

Neden Akıllı Masa Lambası?

Akıllı masa lambası, okuma, çalışma veya hobilerinizle uğraşırken gözlerinizi yormamak için ideal bir çözüm sunar. Ortamdaki ışık azaldığında lamba otomatik olarak parlaklığını artırır, ortam aydınlandığında ise parlaklığı kısar. Böylece, her zaman ideal bir aydınlatma seviyesine sahip olursunuz.

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • LDR (Işık Bağımlı Direnç)
  • 10k Ohm Direnç
  • Potansiyometre (10k Ohm idealdir)
  • LED (Yüksek parlaklığa sahip)
  • 220 Ohm Direnç (LED için)
  • Breadboard
  • Jumper kablolar

Devre Şeması ve Bağlantılar

Devremizi kurarken aşağıdaki bağlantı şemasına dikkat edelim:

  • LDR:
    • LDR'nin bir bacağı -> Arduino 5V (Vcc) pinine
    • LDR'nin diğer bacağı -> 10k Ohm direncin bir bacağına
    • 10k Ohm direncin diğer bacağı -> GND'ye
    • LDR ve 10k Ohm direncin birleştiği noktadan -> Arduino A0 pinine
  • Potansiyometre:
    • Potansiyometrenin bir ucu -> Arduino 5V'a (VCC)
    • Potansiyometrenin diğer ucu -> GND'ye
    • Potansiyometrenin orta ucu (silgi) -> Arduino A1 pinine
  • LED:
    • LED'in uzun bacağı (anot) -> 220 Ohm direncin bir bacağına
    • 220 Ohm direncin diğer bacağı -> Arduino Dijital 9 pinine (PWM pini)
    • LED'in kısa bacağı (katot) -> GND'ye

Arduino Kodu

Şimdi de Arduino kodumuza göz atalım. Bu kod, LDR'den gelen ışık değerini okuyacak, bu değeri potansiyometre ile ayarlanan hassasiyete göre ölçeklendirecek ve LED'in parlaklığını buna göre ayarlayacak.


 const int ldrPin = A0;
 const int potPin = A1;
 const int ledPin = 9;

 void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
 }

 void loop() {
  // LDR'den ışık değerini oku
  int ldrValue = analogRead(ldrPin);

  // Potansiyometreden hassasiyet değerini oku
  int potValue = analogRead(potPin);

  // Hassasiyet değerini 0-1023'ten 1-100 arasına ölçeklendir
  int sensitivity = map(potValue, 0, 1023, 1, 100);

  // Işık değerini 0-255 arasına ölçeklendir ve hassasiyet ile çarp
  int ledBrightness = map(ldrValue, 0, 1023, 255, 0); // Ters çevrildi çünkü düşük ışıkta daha parlak istiyoruz
  ledBrightness = constrain(ledBrightness * sensitivity / 100, 0, 255); // Hassasiyet ayarı ve sınırlama

  // LED'in parlaklığını ayarla
  analogWrite(ledPin, ledBrightness);

  // Seri monitöre değerleri yazdır (isteğe bağlı)
  Serial.print("LDR: ");
  Serial.print(ldrValue);
  Serial.print(", Pot: ");
  Serial.print(potValue);
  Serial.print(", Brightness: ");
  Serial.println(ledBrightness);

  delay(50); // Daha kararlı okumalar için kısa bir gecikme
 }
 

Kodun Açıklaması

  • ldrPin, potPin, ledPin: LDR, potansiyometre ve LED'in bağlandığı pinleri tanımlar.
  • setup(): Seri iletişimi başlatır ve LED pinini çıkış olarak ayarlar.
  • loop(): Sürekli olarak çalışan ana döngüdür.
    • analogRead(): LDR ve potansiyometreden analog değerleri okur.
    • map(): Değerleri farklı aralıklara ölçeklendirir. LDR değeri ters çevrilir (255'ten 0'a) çünkü düşük ışıkta LED'in daha parlak olmasını isteriz.
    • constrain(): LED parlaklığının 0 ile 255 arasında kalmasını sağlar. Hassasiyet ayarı bu noktada yapılır.
    • analogWrite(): LED'in parlaklığını PWM sinyali ile ayarlar.
    • Serial.print(): Değerleri seri monitöre yazdırır (isteğe bağlı, hata ayıklama için yararlı).
    • delay(): Kısa bir gecikme ekler.

Proje Nasıl Çalışır?

LDR, üzerine düşen ışık miktarına göre direnci değişen bir sensördür. Ortamdaki ışık azaldığında direnci artar ve Arduino A0 pinine daha düşük bir voltaj gönderir. Arduino, bu voltajı okuyarak ortamın ne kadar karanlık olduğunu anlar. Potansiyometre ise, sistemin hassasiyetini ayarlamanıza olanak tanır. Potansiyometre ile, ortam ışığındaki küçük değişikliklere lamba ne kadar tepki versin, onu belirleyebilirsiniz. Arduino, LDR ve potansiyometreden gelen verileri işleyerek, LED'in parlaklığını otomatik olarak ayarlar.

İpuçları ve İyileştirmeler

  • Kalibrasyon: LDR'nin hassasiyeti ortam ışığına göre değişebilir. Kodu çalıştırmadan önce farklı ışık koşullarında LDR'nin değerlerini kontrol edin ve `map()` fonksiyonundaki aralıkları buna göre ayarlayın.
  • Hassasiyet Ayarı: Potansiyometre ile hassasiyet ayarını deneyerek, farklı ışık koşullarına en uygun ayarı bulun.
  • LED Seçimi: Daha parlak bir LED kullanarak, daha iyi bir aydınlatma sağlayabilirsiniz. Ancak, LED'in akım gereksinimlerini dikkate alarak uygun bir direnç kullanmayı unutmayın.
  • Kasa Tasarımı: Devrenizi daha şık hale getirmek için 3D yazıcıda veya farklı malzemeler kullanarak özel bir kasa tasarlayabilirsiniz.
  • Renk Ayarı: RGB LED kullanarak, lamba rengini de ortam ışığına göre otomatik olarak ayarlayabilirsiniz.

Umarım bu proje size Arduino dünyasına keyifli bir giriş yapmanıza yardımcı olur. Herhangi bir sorunuz olursa, yorumlarda sormaktan çekinmeyin. İyi kodlamalar!

Etiketler: arduino, akıllı lamba, ortam ışığı, ldr, potansiyometre, led, proje, elektronik, kodlama, diy

```

0 yorum: