Arduino #7 – Potansiyometre

Potansiyometre (ayarlı direnç), elektronik devrelerde çokça kullanılan bir elemandır. Analog olarak herhangi bir elemanın belli değerler arasında ayarlanması gerekiyorsa kullanılır. Örneğin çeşitli müzik aletlerinde ses seviyelerini ayarlamak için kullanılmaktadır.

Peki bu potansiyometreyi biz nerelerde kullanacağız? Lamba parlaklığını (Dimmer) ayarlamadan motor kontrolüne kadar çeşitli projelerde kullanacaksınız. Hayal gücünüze bağlı olarak bu örnekleri çoğaltabilirsiniz.

Potansiyometrenin bağlantısı aşağıdaki gibidir.

  • Arduino UNO
  • Breadboard
  • Potansiyometre
  • Jumper Kablolar

Kenardaki ayakların birini GND’ye (mavi kablo), diğerini +5V’a (kırmızı kablo) bağlayın. Ortadaki ayak ise potansiyometreden okunan analog değerleri aktarmak için herhangi bir analog girişine (yeşil kablo – A0…A5) bağlayın.

İPUCU – Potansiyometrenin GND ve +5V bağlantısı tam tersi şekilde de olabilir. Şunu bilmeniz yeterlidir; Potansiyometreyi GND’ye doğru çevirince okunan değerler küçülür, +5V’a doğru çevirince okunan değerler büyür.

Bir önceki derste seri port ekranının (Serial Monitor) kullanımını öğrenmiştik. Şimdi ilk olarak devremizi kuralım ve aşağıdaki kodları yazalım. Potansiyometreyi el ile çevirerek elde ettiğimiz analog değerleri seri port ekranı sayesinde göreceğiz.


ARDUINO IDE

void setup() {
    Serial.begin(9600); //Seri port ekranını başlattık.
}

void loop() {
    //loop her döndüğünde A1'deki pot. değerini değişkene atıyoruz.
    int pot_deger=analogRead(A1);
    
    //pot_deger değişkeninin değerini seri port ekranında gösteriyoruz.
    Serial.println(pot_deger);
    
    delay(1000);
}

Yazdığımız kodları okuyup, yorumlayalım;

  • Seri port ekranını başlattık. (Serial.begin)
  • Potansiyometrenin değerini sürekli kontrol edip, almak için “void loop”un başında pot. değerini bir değişkene (pot_deger) atadık. (analogRead)
  • Okunan değerleri birer saniye aralıklarla (delay) seri port ekranına yazdırıyoruz. (Serial.println)
Potansiyometrenin analog değerleri (0~1023)

TINKERCAD


UYGULAMA 2 – Potansiyometre ile Basit Voltmetre Yapımı

Görüyorsunuz anlatmaya gerek yok(!) 🙂 Başlık gayet açık ve net, görüyorsunuz. Evet, potansiyometre ile seri port ekranında okuyabileceğimiz basit bir voltmetre yapalım, yani 0 – 5V arasında değişen değerleri okuyup seri port ekranına yazdıracağız.

Bunun için ekstra bir elemana ihtiyacımız yok. Zaten Arduino UNO üzerinde 5V bulunuyor. Bu 5V ise şuanda bağlı olan potansiyometrenin üzerinde. Bu voltaja kadar olan değerleri potansiyometreyi kullanarak seri port ekranında görebiliriz. Daha demin yazdığımız kodların üzerine sadece bir kaç satır kod ekleyeceğiz.

void setup() {
  Serial.begin(9600); //Seri port ekranını başlattık.
}

void loop() {
  int pot_deger=analogRead(A1); //Pot. değerini değişkene atadık.
  Serial.print("Pot. Değeri:"); //Ekranda "Pot. Değeri:" yazar.
  Serial.println(pot_deger); //Ekranda "pot_deger" değişken değerini yazar.
    
  float v_deger=(5.00/1024.00)*pot_deger; //Pot. değerini voltaja çevirdik(orantıladık)
  Serial.print("Voltaj Değeri:");
  Serial.println(v_deger); //Ekranda "v_deger" değişken değerini yazar.
  Serial.println("-----------------");
  delay(1000);
}

Yazdığımız kodları okuyup, yorumlayalım;

  • Seri port ekranını başlattık. (Serial.begin)
  • Potansiyometrenin değerini sürekli kontrol edip, almak için “void loop”un başında pot. değerini bir değişkene (pot_deger) atadık. (analogRead(A1))
  • Potansiyometrenin okunan değerini (0~1023 arası) voltaj değerine (0V~5V arası) çevirdik (veya orantıladıkta diyebiliriz.) (float v_deger=(5.00/1024.00)*pot_deger)

Değer aralıklarını birbirine çevirmek (veya orantılamak) için “map” fonksiyonuda kullanılabilir. map fonksiyonu kullanımı;
– map(değer, alt sınır, üst sınır, yeni alt sınır, yeni üst sınır)
şeklindedir.
Bizim kodlarımıza uyarlarsak şu şekilde yazmamız gerekir;
– float v_deger=map(pot_deger,0,1023,0,5);

Peki neden çevirme (orantılama) işlemi yaptık? Çünkü biz sonuç olarak 0-5 arası değerleri elde etmek istiyoruz. Fakat potansiyometreyi çevirirken elde edilen analog değerler 0-1023 arası. Dolayısıyla 0-1023 arasındaki değerin 0-5 arasındaki hangi değere karşılık geldiğini ancak bu şekilde çevirme(orantılama) işlemi yaparak elde ederiz. Daha sonra potansiyometre ile kontrol edeceğimiz elemanlarıda (örn. servo motor) bu çevirme işlemi (veya map fonk.) sonucunda elde edilen verilerle kontrol edeceğiz.

  • Elde edilen voltaj değerini(v_deger) ekrana yazdırdık.
  • Okunan değerleri birer saniye aralıklarla (delay) seri port ekranına yazdırıyoruz.
Potansiyometreden gelen veri ve voltaj değerine çevrilmiş veri
Voltaj değerini görebilmek için ayrıca voltmetre bağlayabilriz.

TINKERCADPotansiyometre ile Basit Voltmetre Yapımı


Önemli bir konuyu anlatmaya çalıştım. Umarım faydalı olmuştur. Konu ile ilgili değerli görüşlerinizi ve sorularınızı yorum olarak iletiniz.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.