LDR ve RGB Ledleri Birlikte Kullanma

Proje Adı: “LDR ile RGB LED Işık Kontrolü”

Amaç:

  • Ortam karanlıksa RGB LED mavi yansın.
  • Orta ışıkta yeşil yansın.
  • Çok aydınlıksa kırmızı yansın.

Gerekli Malzemeler:

ParçaAdet
Arduino Uno1
Breadboard1
LDR1
RGB LED (common cathode)1
220 ohm direnç / 330 ohm direnç3
10K ohm direnç1
Jumper kabloBirkaç

Devre Bağlantısı:

LDR:

  • LDR’nin bir ucu → 5V
  • Diğer ucu → A0 pinine ve 10K ohm dirençle GND’ye

RGB LED (Common Cathode – Ortak GND):

  • Uzun bacak (GND) → GND
  • Kırmızı bacak → D9 (220 ohm dirençle)
  • Yeşil bacak → D10 (220 ohm dirençle)
  • Mavi bacak → D11 (220 ohm dirençle)

(Not: RGB LED’in bacak sırasına dikkat! Genelde en uzun bacak GND’dir.)

Bu Kod Ne Yapacak?

  • LDR sensörünü A0 pininden okuyor.
  • Işık seviyesine göre RGB LED renk değiştiriyor:
    • 450’den büyükse → Kırmızı
    • 250-450 arası → Mavi
    • 250’den küçükse → Yeşil

Tinkercad Kodu

int ldrDegeri;
int redPin = 9;
int greenPin = 10;
int bluePin = 11;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
}
void loop() {
ldrDegeri = analogRead(A0);
Serial.println(ldrDegeri);
if (ldrDegeri > 450) {
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
} else if (ldrDegeri >= 250 && ldrDegeri <= 450) {
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, HIGH);
} else if (ldrDegeri < 250) {
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, LOW);
}

delay(200); // Gereksiz hızlı değişimi önle
}

MBlock Kodu

Arduino Kodu:

int ldrPin = A0;
int redPin = 9;
int greenPin = 10;
int bluePin = 11;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
}

void loop() {
int ldrDegeri = analogRead(ldrPin);
Serial.print("Işık Değeri: ");
Serial.println(ldrDegeri);

if (ldrDegeri < 300) {
// Ortam karanlık → Mavi ışık
renkAyarla(0, 0, 255);
} else if (ldrDegeri < 700) {
// Orta ışık → Yeşil ışık
renkAyarla(0, 255, 0);
} else {
// Aydınlık → Kırmızı ışık
renkAyarla(255, 0, 0);
}

delay(500);
}

void renkAyarla(int r, int g, int b) {
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
}

Gözlem:

  • Elini LDR’nin üzerine koy → LED mavi olur.
  • Normal ışıkta → Yeşil olur.
  • Fenerle LDR’ye ışık tut → Kırmızı olur.

Projeyi Genişletmek İçin Fikirler:

  • RGB LED yerine Neopixel kullan.
  • Işığa göre ses çıkarsın.
  • Renkleri yumuşak geçişlerle değiştir (fade efektleri).

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir