Arduino İle PWM Kontrol

Daha önce bir dersimizde PWM sinyalin ne olduğunu basitçe açıklamıştık. Dersimizi buradan ziyaret edebilirsiniz: PWM Sinyal Nedir

Bu dersimizde ise Arduino ile PWM sinyal oluşturmayı ele alacağız. Bildiğiniz üzere çoğu mikrodenetleyiciler analog sinyal üretemez. Bunun yerine PWM gibi dalga tekniklerini kullanırlar. Arduino Uno kartımız üzerinde 6 adet pin PWM çıkışını destekler. Bu pinler 3-5-6-9-10-11 numaralı dijital Giriş/Çıkış pinleridir. Bu pinlerden PWM sinyal çıkışı almak için analogWrite() fonksiyonunu kullanacağız. Bu fonksiyonda parantezler arasına integer cinsinden pin numarası ve yine integer cinsinden maksimum 8 bitlik (0 ile 255 arası) çıkış değeri yazılır. Bu çıkış değerinin büyüklüğüne göre dalga genişliği ayarlanır. İlgili pinin çıkış voltajı 0 – 255 pwm değeri arasında, 0 ile 5 volt arası değişir.

Örnek olarak 9 numaralı pin çıkışından PWM sinyal elde edelim;

Kodlarımızda görüldüğü üzere önce setup kısmında 9 numaralı pinimizi çıkış olarak ayarladık ve daha sonra loop kısmında pinimizden PWM çıkış aldık.

Bu PWM çıkışını (9 numaralı pin) voltmetre ile ölçtüğümüzde 2,5V civarı gerilim elde ederiz. Eğer çıkışa bir led bağlarsak, led parlaklığının yarıya düştüğünü görüz.

PWM çıkış sinyali almayı öğrendiğimize göre şimdi bir potansiytometre ile DC motor hız kontrolü yapalım.

Öncelikle potansiyometre ve motor çıkışı alacağımız pinlerimizi ayarlayalım:

Ben normalde giriş/çıkış pinlerini değişkene atamam, çünkü ram bellekte boşuna yer kaplıyor. Ancak daha iyi anlamanız için şimdilik böyle yaptık.

Şimdi ana döngüdeki kodlarımıza gelelim:

Kodlarımızda görüldüğü üzere önce analog girişten pot değerini okuduk ve potDegeri değişkenine atadık. Daha sonra potDegeri değişkeni içerisindeki 0-1023 arası değeri 0-255 arası değere dönüştürdük ve PWM çıkışına yazdırdık.

Kodumuzu Arduino’ya yükleyip aşağıdaki devreyi kurarak potansiyometre ayarına göre motor hızını değiştirebiliriz.

 

 

Yorum Yap