Proje Özeti: PWM ile LED Parlaklık Kontrolü
Bu projede, Arduino’nun PWM (Pulse Width Modulation – Darbe Genişlik Modülasyonu) özelliğini kullanarak bir LED’in parlaklığını yavaşça artırıp azaltacağız. Bu efekt, LED’in yavaşça yanıp sönmesini sağlar ve LED karartma (fade) uygulamalarının temelini oluşturur.
PWM, Arduino’nun dijital pinlerini kullanarak analog benzeri çıkışlar üretmesine olanak tanır. Bu sayede yalnızca açık veya kapalı olan LED yerine, kademeli parlaklık değerleri elde edebilirsiniz. Bu proje, dekoratif ışıklandırma, motor hız kontrolü ve daha birçok uygulamanın temelini oluşturur.
Gerekli Malzemeler
- 1 adet Arduino UNO (veya benzeri)
- 1 adet LED
- 1 adet 220Ω direnç
- Jumper kablolar
- Breadboard (isteğe bağlı)
Devre Bağlantısı: LED Nasıl Bağlanır?
LED Bacakları:
Katot (kısa bacak): Negatif uç, doğrudan GND (toprak) hattına bağlanır.
Anot (uzun bacak): Pozitif uç, Arduino’nun dijital pinine (örnek: pin 2) bağlanır.
Bağlantı Şeması:
PWM Destekli Pin Nedir?
PWM, yani Pulse Width Modulation (Darbe Genişlik Modülasyonu), dijital pinlerle analog benzeri sinyaller üretmeyi sağlar. LED gibi bileşenlerin parlaklığını kademeli olarak değiştirmek için kullanılır.
Arduino UNO’daki PWM destekli pinler:
PWM destekli pinler:3, 5, 6, 9, 10, 11
Bu pinlerin yanında genellikle “~” (tilde) sembolü bulunur. Örneğin, “~9” gibi.
PWM pinleri sayesinde Arduino:
- LED’in parlaklığını ayarlayabilir,
- Motorların hızını kontrol edebilir,
- RGB LED’lerde renk geçişleri sağlayabilir.
PWM sinyalleri analogWrite(pin, değer)
komutu ile gönderilir. değer
, 0 ile 255 arasında olmalıdır:
analogWrite(9, 0);
→ LED tamamen sönükanalogWrite(9, 255);
→ LED tamamen parlakanalogWrite(9, 128);
→ %50 parlaklık
Arduino Kodu (Fade – Karartma Efekti)
// LED'in bağlı olduğu pin (PWM destekli bir pin seçilmeli)
int ledPin = 9; // Arduino UNO'da 3, 5, 6, 9, 10, 11 pinleri PWM desteklidir
void setup() {
// LED'in bağlı olduğu pin çıkış (OUTPUT) olarak ayarlanıyor
pinMode(ledPin, OUTPUT);
}
void loop() {
// LED'in parlaklığını 0'dan 255'e kadar artır (karartmadan tam parlaklığa)
for (int parlaklik = 0; parlaklik <= 255; parlaklik++) {
// PWM sinyali gönderilir, LED'in parlaklığı artar
analogWrite(ledPin, parlaklik);
// Her adım arasında 10 ms bekleyerek geçişi yumuşatır
delay(10);
}
// LED'in parlaklığını 255'ten 0'a kadar azalt (tam parlaklıktan karartmaya)
for (int parlaklik = 255; parlaklik >= 0; parlaklik--) {
// PWM sinyali tekrar gönderilir, bu sefer LED'in parlaklığı azalır
analogWrite(ledPin, parlaklik);
// Her adım arasında yine 10 ms beklenir
delay(10);
}
// Bu loop() fonksiyonu sonsuz döngü içinde çalıştığı için
// LED sürekli olarak yavaşça yanar ve söner
}
Kodun yorumsuz hali:
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int parlaklik = 0; parlaklik <= 255; parlaklik++) {
analogWrite(ledPin, parlaklik);
delay(10);
}
for (int parlaklik = 255; parlaklik >= 0; parlaklik--) {
analogWrite(ledPin, parlaklik);
delay(10);
}
}
Serinin devamı için buradan devam edebilirsiniz:https://monoveri.com.tr/arduino-led-devresi-4-7-ledin-for-dongusu-ile-kontrolu/