Işıklar Sizin Kontrolünüzde: Kendi Dimmer Anahtarınızı Yapın
Önceki projelerimizde LED'i ya tamamen açık ya da tamamen kapalı olarak kontrol ettik. Peki ya ışığın parlaklığını istediğimiz gibi ayarlayabilseydik? İşte bu projede, bir potansiyometre (ayarlanabilir direnç) kullanarak LED'in parlaklığını yumuşak bir geçişle kontrol etmeyi öğreneceğiz. Bu, bir dimmer anahtarının çalışma mantığıdır.
Gerekli Malzemeler
- Arduino Uno: Projemizin beyni.
- 1 adet LED: Parlaklığını ayarlayacağımız ışık kaynağımız.
- 1 adet 220Ω Direnç: LED'i yüksek akımdan korumak için.
- 1 adet 10kΩ Potansiyometre: Işık parlaklığını ayarlayacağımız döner anahtar.
- Breadboard: Malzemeleri bağlamak için.
- Jumper Kablolar: Bağlantılar için gerekli.
Devre Kurulumu
Bu projenin devresi, potansiyometrenin nasıl çalıştığını anlamanıza yardımcı olacak:
- LED ve 220Ω Direnç Bağlantısı:LED'in uzun bacağını (anot) breadboard'a yerleştirin.220Ω direncin bir ucunu LED'in uzun bacağına, diğer ucunu ise breadboard üzerinde boş bir sıraya takın.LED'in kısa bacağını (katot) bir jumper kabloyla Arduino'daki GND pinine bağlayın.220Ω direncin boşta kalan ucunu bir jumper kabloyla Arduino'daki Pin 9'a bağlayın. (Pin 9, Arduino Uno'da PWM özelliğini destekleyen bir pindir. Üzerinde "~" işareti bulunur.)
- LED'in uzun bacağını (anot) breadboard'a yerleştirin.
- 220Ω direncin bir ucunu LED'in uzun bacağına, diğer ucunu ise breadboard üzerinde boş bir sıraya takın.
- LED'in kısa bacağını (katot) bir jumper kabloyla Arduino'daki GND pinine bağlayın.
- 220Ω direncin boşta kalan ucunu bir jumper kabloyla Arduino'daki Pin 9'a bağlayın. (Pin 9, Arduino Uno'da PWM özelliğini destekleyen bir pindir. Üzerinde "~" işareti bulunur.)
- Potansiyometre Bağlantısı:Potansiyometreyi breadboard'a takın. Potansiyometrenin üç bacağı vardır.Potansiyometrenin bir dış bacağını Arduino'daki 5V pinine bağlayın.Potansiyometrenin diğer dış bacağını Arduino'daki GND pinine bağlayın.Potansiyometrenin orta bacağını bir jumper kabloyla Arduino'daki Analog A0 pinine bağlayın. Bu pin, potansiyometrenin döndürülmesiyle oluşan voltaj değişimini okuyacaktır.
- Potansiyometreyi breadboard'a takın. Potansiyometrenin üç bacağı vardır.
- Potansiyometrenin bir dış bacağını Arduino'daki 5V pinine bağlayın.
- Potansiyometrenin diğer dış bacağını Arduino'daki GND pinine bağlayın.
- Potansiyometrenin orta bacağını bir jumper kabloyla Arduino'daki Analog A0 pinine bağlayın. Bu pin, potansiyometrenin döndürülmesiyle oluşan voltaj değişimini okuyacaktır.
Kodlama Zamanı!
Devreyi kurduysanız, şimdi kontrolü ele alma zamanı. Arduino IDE'yi açın ve aşağıdaki kodu kopyalayıp yapıştırın.
C
// Değişkenleri tanımla
const int ledPin = 9; // LED'in bağlı olduğu PWM pini
const int potPin = A0; // Potansiyometrenin bağlı olduğu analog pin
// Değişken tanımlamaları: Okunan değerleri saklamak için
int potValue = 0; // Potansiyometreden okunan değeri tutacak değişken
int ledBrightness = 0; // LED parlaklığına atanacak değeri tutacak değişken
// Bu fonksiyon, kod çalışmaya başladığında bir kez çalışır.
void setup() {
// Seri iletişimi başlat, debug için kullanışlıdır.
Serial.begin(9600);
// LED pinini ÇIKIŞ olarak ayarla.
pinMode(ledPin, OUTPUT);
// Potansiyometre pinini GİRİŞ olarak ayarla.
pinMode(potPin, INPUT);
}
// Bu fonksiyon, Arduino çalıştığı sürece sürekli tekrar eder.
void loop() {
// Potansiyometreden analog değeri oku (0-1023 arası bir değer)
potValue = analogRead(potPin);
// Okunan değeri (0-1023) LED parlaklığı için uygun aralığa (0-255) dönüştür
ledBrightness = map(potValue, 0, 1023, 0, 255);
// LED'in parlaklığını ayarla
analogWrite(ledPin, ledBrightness);
// Seri monitöre potansiyometre değerini ve parlaklık değerini yazdır
Serial.print("Potansiyometre Degeri: ");
Serial.print(potValue);
Serial.print(" -> LED Parlakligi: ");
Serial.println(ledBrightness);
// Küçük bir gecikme ekleyerek okuma işleminin daha stabil olmasını sağla
delay(10);
}
Kodu Anlayalım
- const int ledPin = 9; ve const int potPin = A0;: LED'i ve potansiyometreyi bağladığımız pinleri tanımladık. Unutmayın, PWM için ~ işaretli pinler (3, 5, 6, 9, 10, 11) kullanılır.
- void setup() { ... }:Serial.begin(9600);: Bu komut, bilgisayarınız ile Arduino arasında seri iletişim kurmanızı sağlar. Bu sayede, "Seri Monitör" üzerinden okunan değerleri anlık olarak görebilirsiniz.pinMode(ledPin, OUTPUT); ve pinMode(potPin, INPUT);: Pinleri çıkış ve giriş olarak ayarladık.
- Serial.begin(9600);: Bu komut, bilgisayarınız ile Arduino arasında seri iletişim kurmanızı sağlar. Bu sayede, "Seri Monitör" üzerinden okunan değerleri anlık olarak görebilirsiniz.
- pinMode(ledPin, OUTPUT); ve pinMode(potPin, INPUT);: Pinleri çıkış ve giriş olarak ayarladık.
- void loop() { ... }:potValue = analogRead(potPin);: Bu komut, potansiyometrenin durumunu okur. Potansiyometreyi çevirdikçe, A0 pinindeki voltaj 0V ile 5V arasında değişir. Arduino bunu 0 ile 1023 arasında bir sayıya dönüştürür.ledBrightness = map(potValue, 0, 1023, 0, 255);: Burası kodun en önemli kısmıdır. map() fonksiyonu, bir değer aralığını başka bir aralığa dönüştürür. Potansiyometreden okuduğumuz 0-1023 aralığındaki değeri, analogWrite() fonksiyonu için gerekli olan 0-255 aralığına çevirir.analogWrite(ledPin, ledBrightness);: Bu komut, LED'in parlaklığını ayarlar. Değer 0 olduğunda tamamen kapalı, 255 olduğunda ise tamamen açık olur. 0 ile 255 arasındaki değerlerde ise LED'in parlaklığı kademeli olarak artar veya azalır. Bu işleme PWM denir.
- potValue = analogRead(potPin);: Bu komut, potansiyometrenin durumunu okur. Potansiyometreyi çevirdikçe, A0 pinindeki voltaj 0V ile 5V arasında değişir. Arduino bunu 0 ile 1023 arasında bir sayıya dönüştürür.
- ledBrightness = map(potValue, 0, 1023, 0, 255);: Burası kodun en önemli kısmıdır. map() fonksiyonu, bir değer aralığını başka bir aralığa dönüştürür. Potansiyometreden okuduğumuz 0-1023 aralığındaki değeri, analogWrite() fonksiyonu için gerekli olan 0-255 aralığına çevirir.
- analogWrite(ledPin, ledBrightness);: Bu komut, LED'in parlaklığını ayarlar. Değer 0 olduğunda tamamen kapalı, 255 olduğunda ise tamamen açık olur. 0 ile 255 arasındaki değerlerde ise LED'in parlaklığı kademeli olarak artar veya azalır. Bu işleme PWM denir.
Kodu Yükleme
- Arduino'nuzu USB kablosuyla bilgisayarınıza bağlayın.
- Arduino IDE'de Araçlar > Kart > Arduino Uno'yu ve Araçlar > Port menüsünden doğru portu seçin.
- Kodu yükleyin.
- Kod yüklendikten sonra Arduino IDE'nin sağ üst köşesindeki büyüteç simgesine (Seri Monitör) tıklayarak anlık değerleri takip edebilirsiniz.
Şimdi potansiyometreyi yavaşça çevirin. LED'inizin parlaklığının yavaşça azalıp arttığını göreceksiniz. Tebrikler, kendi dimmer anahtarınızı başarıyla yaptınız!
Bu proje, fiziksel dünyadan alınan analog bir verinin (potansiyometrenin açısı), dijital bir sistemde nasıl işlenerek analog benzeri bir çıkışı (PWM ile LED parlaklığı) kontrol ettiğini göstermektedir. Bu, sensörlerden veri alarak motor hızını, sıcaklığı veya ses seviyesini kontrol etme gibi daha karmaşık projelerin temelini oluşturur.
Siz de bu projeyi denediniz mi? Deneyimlerinizi ve aklınıza gelen yeni fikirleri bizimle paylaşın!