Bu projede, bir potansiyometre (ayarlı direnç) kullanarak LED’in parlaklık seviyesini kontrol edeceğiz. Arduino’nun analog giriş özelliğiyle potansiyometreden okunan değerleri kullanarak, PWM (Pulse Width Modulation) tekniği sayesinde LED’in parlaklığını hassas bir şekilde ayarlayabileceğiz.
Öğrenecekleriniz:
✔ Analog ve dijital sinyal farkı
✔ Potansiyometre çalışma prensibi
✔ PWM ile parlaklık kontrolü
✔ Arduino’da analog okuma ve dijital yazma

Arduino’nun analogRead() fonksiyonu ile potansiyometreden gelen değeri okuyacağız ve bu değeri analogWrite() fonksiyonu ile LED’in parlaklığını kontrol etmek için kullanacağız.
2. Gerekli Malzemeler
Malzeme | Adet | Açıklama |
---|---|---|
Arduino Uno | 1 | Mikrodenetleyici kartı |
10kΩ Potansiyometre | 1 | Direnç değerini ayarlamak için |
LED | 1 | Kontrol edilecek ışık kaynağı |
220Ω Direnç | 1 | LED’i korumak için |
Breadboard | 1 | Devre kurulum alanı |
Jumper Kablolar | 5-6 | Bağlantı için |
3. Devre Bağlantısı
Adım Adım Bağlantı Kılavuzu
- Potansiyometre Bağlantısı:
- Sol bacak → Arduino GND
- Orta bacak → Arduino A0 (Analog Giriş)
- Sağ bacak → Arduino 5V
- LED Bağlantısı:
- LED’in uzun bacak (anot) → 220Ω direnç → Arduino D9 (PWM Çıkışı)
- LED’in kısa bacak (katot) → Arduino GND
Devre Şeması:
5V → Potansiyometre (Sağ) → Potansiyometre (Orta) → A0
GND → Potansiyometre (Sol) → LED Katot
D9 → 220Ω Direnç → LED Anot
4. Kod:
int potPin = A0; // Potansiyometreyi bağladığımız analog pin
int ledPin = 9; // LED'i bağladığımız dijital pin
int potValue = 0; // Potansiyometreden okunan değer
void setup() {
pinMode(ledPin, OUTPUT); // LED pinini çıkış olarak ayarla
}
void loop() {
potValue = analogRead(potPin); // Potansiyometreden değer oku (0-1023 arası)
potValue = map(potValue, 0, 1023, 0, 255); // Değeri 0-255 arası bir değere dönüştür
analogWrite(ledPin, potValue); // LED'in parlaklığını ayarla
delay(10); // Küçük bir gecikme ekle
}
5. Kod Açıklaması
- analogRead(): Potansiyometreden 0-1023 arası değer okur.
- map(): 0-1023 aralığını 0-255 PWM aralığına dönüştürür.
- analogWrite(): LED’e PWM sinyali göndererek parlaklığı ayarlar.
- Serial.print(): Değerleri bilgisayara gönderir.
6. Çalışma Prensibi
Potansiyometre döndürüldüğünde:
- Direnç değeri değişir
- Arduino A0 pinine gelen voltaj değişir
- analogRead() bu voltajı 0-1023 arasında dijital değere çevirir
- map() fonksiyonu bu değeri 0-255 aralığına ölçekler
- analogWrite() LED’in parlaklığını ayarlar
7. Proje Geliştirme Önerileri
- Çoklu LED Kontrolü:
int leds[] = {3,5,6,9,10,11};
for(int i=0; i<6; i++) {
analogWrite(leds[i], brightness);
}
- RGB LED Kontrolü:
int red = map(potValue, 0, 341, 255, 0);
int green = map(potValue, 342, 682, 0, 255);
int blue = map(potValue, 683, 1023, 0, 255);
- Parlaklık Seviye Göstergesi:
int red = map(potValue, 0, 341, 255, 0);
int green = map(potValue, 342, 682, 0, 255);
int blue = map(potValue, 683, 1023, 0, 255);
8. Sık Karşılaşılan Sorunlar
Sorun | Çözüm |
---|---|
LED yanmıyor | Bağlantıları kontrol edin, LED yönünü doğrultun |
Parlaklık değişmiyor | PWM (~) işaretli pin kullandığınızdan emin olun |
Değerler kararsız | Potansiyometreyi değiştirmeyi deneyin |
9. Sonuç
Bu projede Arduino ile:
✔ Analog giriş okumayı
✔ PWM çıkışı oluşturmayı
✔ Potansiyometre ile LED kontrolünü öğrendik.