Arduino ile PWM Kullanımı (Potansiyometre ile LED Yakma)

Güncelleme tarihi: 2 May 2020

Bu uygulamamızda Arduino kartımıza bağladığımız bir potansiyometreyi analog olarak okuyup, gelen veriye göre PWM kullanarak LED imizin parlaklığını ayarlayacağız. Bu uygulamada kullanacağımız malzemelerimiz;

  • Arduino UNO

  • 5 mm LED

  • 220R veya 330R Direnç

  • Potansiyometre

  • Jumper Kablolar (E-E)

  • Breadboard



Devremizi bu şemaya göre kurup bağlantılarımızı yapıyoruz.

Kodumuza geçmeden önce PWM konusunu biraz inceleyelim. PWM (Pulse Width Modulation) analog bileşenleri dijital sinyallerle kontrol etmemizi sağlayan bir yoldur. PWM’i sinyal frekansının belirlenen değerlerde değiştirilmesi ile dijital sinyalin analog sinyal gibi davranması gibi düşünebiliriz yani dijital sinyali belirli bir frekansta on- off duruma getirerek analog sinyale benzemeye çalışması gibi düşünebiliriz.




PWM sinyalindeki darbe genişliğine göre çıkıştan sanki analog çıkış alıyormuş gibi 0-5V arasında bir değer alırız. PWM ile bir LED’in parlaklığını ayarlayabilir, bir motor sürücü üzerinden DC Motor hız kontrolü yapabiliriz. Servo motoru kontrol edebilir, RGB LED’lerin renk kontrolünü sağlayabiliriz.

Arduino Uno kartımızın üzerinde 6 tane PWM pini bulunmaktadır. Arduino Uno kartımız üzerindeki PWM pinleri maksimum8-bit’lik çıkış verebilmektedir. Yani PWM pinlerinin çıkış voltajı 0-255 PWM değeri arasında ayarlanır. Bu PWM pinleri‘~’ sembolü ile temsil edilir. Arduino Uno kartımızın üzerindeki bu sembole sahip pinlerden PWM çıkışı elde edebilir. Bu pinler‘3,5,6,9,10,11’ numaralı dijital I/O pinleridir.


void setup(){
 pinMode(9,OUTPUT);
 }
void loop() {
analogWrite(9,0); // 9 Numaralı PWM çıkışı 0V olarak ayarlandı.
delay(100);
analogWrite(9,64); // 9 Numaralı PWM çıkışı yaklaşık olarak 1.25V ayarlandı.
delay(100);
analogWrite(9,255); // 9 Numaralı PWM çıkışı 5V olarak ayarlandı.
delay(100);
}

Bu kod bloğunda 9 numaralı PWM çıkışına bir LED bağlarsak parlaklığın 100ms aralıklarla değiştiğini görebiliriz.


Şimdi uygulama kodumuzun tamamına bakalım.

int led = 9 ;
int pot_pin = A0; //Potansiyometre Pinimizi ve ismini tanımladık.
int pot_deger = 0; //Potansiyometremizin başlangıç değerini atadık.
 
 
void setup() {
 
 pinMode(led, OUTPUT); // led değişkeni yani 9 numaralı pin ÇIKIŞ olarak tanımlandı. 
 
}
 
void loop() {
 pot_deger = analogRead(pot_pin); // Potansiyometrenin bağlı olduğu pini(A0) Analog olarak okuduk ve pot_deger değişkenine atadık.
//pot_deger değişkeni 0-1023 arasında değer alacaktır. (10 Bit’lik ADC olduğu için) Biz bu değişkeni Arduino kartımız maksimum 8 bit’lik PWM çıkışı verebildiği için 0-255 arasında sınırlandırmamız gerekmektedir. Bu dönüşümü map fonksiyonu ile yapacağız.
 pot_deger = map(pot_deger,0,1023,0,255); // pot_deger değerini 0-1023 arası değerden 0-255 arası değere dönüştürdük.
analogWrite(led,pot_deger); // 0-255 arasına sınırlandırılan değeri led çıkışına yaz.
}


Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır





Son Paylaşımlar