Arduino mikrokontrolcüsü ile bu yazımda analog okuma ve seri haberleşme uygulaması yapacağız. Potansiyometre kullanarak potansiyometrenin anlık analog değerini Arduino ile okuyacağız ve ardından bu değeri seri haberleşme yaparak monitörde okuyacağız. Öncelikle potansiyometrenin ne olduğundan ve çalışma prensinden bahsedelim.
Potansiyometre Çalışma Prensibi
Potansiyometre en basit tanımıyla ayarlanabilir dirençtir. Bünyesinde barındırdığı dışa dönük milinin döndürülmesi ile direnci 0 ohm ile etiketinde yazan maksimum değer arasında değişiklik gösterir. Bu özelliği sayesinde potansiyometre ile akım konrolü yapılabilir lakin üzerinden geçen enerji ısı enerjisi kaybıdır. Mühendislik uygulamalarında akım ve gerilim kontrolü yapılmak istenildiğinde güç elektroniği uygulama alanına giren faz kaydırma prensibi tercih edilmektedir.
Resimde de görüldüğü üzere Vcc ve ground pinleri arasındaki gerilim dönen mil ile ayarlanabilmektedir. Bu değer ortadaki sinyal pini ile mikrokontrolcüye bildirilir.
Kırpılan enerji ısı olarak açığa çıkmaktadır. Potansiyometrelerin kullanım amacına göre çeşitleri de bulunmaktadır.
Biz bu yazımızda potansiyometrenin sinyal ucunu Arduino mikrokontrolcüsüne bağlayarak değişen her direnç değerine bağlı olark analog değer okuyacağız. Analog veriler kısaca belirli aralıklara göre alınan değerlerdir. Potansiyometrenin içerisindeki direncin değerini 10k ohm kabul edersek milin çevrildiği her an Arduino tarafından okunan sayısal değer analog bir veridir.
Kullanılacak olan Arduino UNO modelindeki analog pinlerin bit çözünürlüğü 10 bit değerindedir. Bu durumda okunacak olan analog değerler 2^10 = 1024 olduğundan dolayı 0 ve 1023 değerleri arasında okunacaktır. Okunan 1023 değeri potansiyometre milinin maksimum noktasında olduğu ve direnç değerin en sonda olduğu anlamına gelmektedir.
Potansiyometre ile okunan analog verileri bilgisayarımızın ekranında görebilmemiz için seri haberleşme monitörünü açmamız gerekmektedir. Seri haberleşmenin mantığında verilerin tek bir hat üzerinden aktarılması yatar. Arduino iel potansiyometreyi seri haberleştirebileceğimiz gibi iki Arduino kartını da kendi arasında seri haberleştirebiliriz.
Kullanılacak Malzemeler
- 1 adet Arduino UNO
- 1 adet breadboard
- 1 adet 10k ohm potansiyometre
- 3 adet erkek-erkek jumper
Devre Şemasının Oluşturulması
Bu projede mikrokontrolcü olarak Arduino UNO geliştirme kartını kullanacağız. Analog pini olan farklı bir Arduino modeli de kullanılabilir.
Arduino UNO geliştirme kartımızın 5V ve GND pinleri birer erkek-erkek jumper ile breadboard üzerindeki potansiyometrenin 1. ve 3. bacaklarına bağlanmalıdır. Ardından potansiyometrenin sinyal bacağı olan orta pini bir erkek-erkek jumper ile Arduino kartımızın analog pinlerinden birine takılmalıdır. Bu 3 bağlantı yapıldığından Arduino ile analog veri okuma işlemi için gerekli olan devre oluşmuş olacaktır.
Yukarıdaki devre şemasında da görüldüğü üzere Arduino ile analog veri okuma uygulamasını breadboard üzerinde yapabiliriz.
Yazacağımız kodlar ile potansiyometreden analog değerleri okuyabilir ve elde edilen bu değerleri istediğimiz devre senaryosunda kullanabiliriz. Bu yazımda sadece seri haberleşme ile analog verileri okuyacağız. Diğer yazılarımda potansiyometreden okunan bu değerleri kullanarak farklı uygulamalar da yapacağım. O yazılarımı da okumanızı tavsiye ederim.
Potansiyometre Analog Verisini Okumak için Kodlar
Arduino UNO kartımızın AO analog pinine bağladığımız potansiyometrenin sinyal bacağı yazılan kodun ilk satırında tanımlanmıştır. Potansiyometreden okunan her sinyale karşılık gelen sayısal değeri 100 ms aralıklarla seri haberleşme monitörüne yazdırabilmek için delay(100); fonksiyonu kullanılmıştır.
Seri haberleşme yapabilmek için ise Serial.begin(9600); komutu ile haberleşme başlatılmıştır. Burada kullanılan 9600 sayısı seri haberleşme esnasında gönderilen sinyallerin saniyedeki değişim hızıdır.
#define potsinyal A0 //potansiyometrenin sinyal bacağını A0 pinine tanımlandı int deger = 0; //"deger" adlı 0 değerinde bir değişken tanımlandı void setup() { Serial.begin(9600); //9600 baud bir seri haberleşme başlatıyoruz Serial.println("Potansiyometreden Okunan Değerler: "); //seri monitörde bir kez gönderilen bir mesaj tanımandı } void loop() { deger = analogRead(potsinyal); //"deger" değişkeni potansiyometrenin değerini okuyup buna göre değişir Serial.println(deger); //okunan değer seri monitöre mesaj olarak gönderilir delay(100); //Bu işlem 100 milisaniye aralıklarla yapılır }
Yukarıdaki kodları Arduino UNO geliştirme kartımıza yüklediğimizde potansiyometrenin milinin her değiştirilmesinde 100 ms periyotlarla seri haberleşme monitöründeki verilerin değiştiği gözlemlenir.
Yine aynı şekilde seri çizici ekranı ile potansiyomere sinyal pininden gelen değişimleri grafik ekranına dökebilirsiniz. Bunun bir örneği aşağıdaki resimde mevcuttur.
Yukarıdaki resim Arduino IDE’ sinde seri çizici sekmesinin açılması ile oluşturulmuştur. Değişimler grafik ekranında gözlenebilmektedir. Hem seri monitör hem de seri çizici sekmeleri analog verilerin yorumlanabilmesi açısından oldukça önemlidir.
Yorum bölümünden tüm sorularınızı bana iletebilirsiniz.
Çalışmalarınızda başarılar dilerim.
Hamit Can Dinç.