Arduino Ders 12 PWM (Pulse With Modulation) Nedir? Nasıl kullanılır? DGM(Darbe Genişlik Modülasyonu)

Arduino Ders 12: PWM (Pulse Width Modulation)

Arduino Ders 12: PWM (Pulse Width Modulation)

1. Giriş: PWM Nedir?

PWM, dijital bir sinyalin belirli bir süre içinde "AÇIK" ve "KAPALI" durumları arasında geçiş yapmasıyla oluşur. PWM, dijital elektronik sistemlerde analog sonuçlar üretmek için kullanılan bir yöntemdir. İki ana parametresi vardır:

  • Frekans: Sinyalin saniyede kaç çevrim tamamladığını ifade eder.
  • Görev Döngüsü (Duty Cycle): Sinyalin bir çevrim boyunca "AÇIK" olduğu sürenin yüzdesidir.

2. Arduino'da PWM Nasıl Çalışır?

Arduino'da PWM, analogWrite() fonksiyonu kullanılarak gerçekleştirilir. PWM sinyalleri, Arduino'nun yanında "~" sembolü bulunan pinlerinde üretilir. Standart PWM frekansı:

  • 490 Hz: Çoğu PWM pininde.
  • 980 Hz: 5 ve 6 numaralı pinlerde.

3. PWM'nin Kullanım Alanları

  • LED Parlaklık Kontrolü: Görev döngüsü değiştirilerek parlaklık ayarlanabilir.
  • Motor Hız Kontrolü: Motorun hızını artırmak veya azaltmak için kullanılır.
  • Ses Üretimi: Farklı frekanslarda ses dalgaları oluşturulabilir.
  • Güç Kontrolü: Isıtıcı veya soğutucu cihazların kontrolü için kullanılır.

4. Arduino PWM Örneği: LED Parlaklık Kontrolü

Devre Bağlantıları

  • LED'in anodu (+) Arduino'nun PWM pinine (örneğin, Pin 9) bağlanır.
  • LED'in katodu (-) seri bir direnç üzerinden GND'ye bağlanır.

Kod Örneği

int ledPin = 9;
int brightness = 0;
int fadeAmount = 5;

void setup() {
    pinMode(ledPin, OUTPUT);
}

void loop() {
    analogWrite(ledPin, brightness);

    brightness += fadeAmount;

    if (brightness <= 0 || brightness >= 255) {
        fadeAmount = -fadeAmount;
    }

    delay(30);
}

Kod Açıklaması

  • analogWrite(ledPin, brightness): LED'e görev döngüsüne karşılık gelen PWM sinyalini gönderir.
  • brightness: LED'in parlaklığını kontrol eder.
  • fadeAmount: Parlaklık artırma/azaltma miktarıdır.

5. PWM Kullanılarak Motor Hız Kontrolü

Devre Bağlantıları

  • DC motor, bir motor sürücü modülüne (örneğin L298N) bağlanır.
  • PWM sinyali, Arduino'dan motor sürücüye gönderilir (örneğin, Pin 3).

Kod Örneği

int motorPin = 3;
int speed = 0;
int increment = 10;

void setup() {
    pinMode(motorPin, OUTPUT);
}

void loop() {
    analogWrite(motorPin, speed);

    speed += increment;

    if (speed <= 0 || speed >= 255) {
        increment = -increment;
    }

    delay(100);
}

Kod Açıklaması

  • analogWrite(motorPin, speed): Motor hızını kontrol eden PWM sinyalini gönderir.
  • speed: Motor hızını temsil eder.
  • increment: Hız artırma/azaltma miktarıdır.

6. PWM ve DGM (Darbe Genişlik Modülasyonu)

DGM, bir çevrim boyunca sinyalin genişliğinin modüle edilmesi anlamına gelir. PWM'nin temelini oluşturur ve sinyal genliğini hassas bir şekilde kontrol etmeye olanak tanır.

7. Sonuç

PWM, Arduino projelerinde LED parlaklığı, motor hız kontrolü ve daha birçok uygulama için vazgeçilmez bir tekniktir. Yukarıdaki örnekler, PWM'nin temelini ve pratik kullanımını anlamanızı sağlar. Daha karmaşık projelerde PWM'nin avantajlarından faydalanmayı unutmayın!

Yorum Gönder

0 Yorumlar