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ça | Adet |
|---|---|
| Arduino Uno | 1 |
| Breadboard | 1 |
| LDR | 1 |
| RGB LED (common cathode) | 1 |
| 220 ohm direnç / 330 ohm direnç | 3 |
| 10K ohm direnç | 1 |
| Jumper kablo | Birkaç |
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).