Seri Port Ekranında Potansiyometreden Gelen Analog Değeri Okumak

Bu uygulamada potansiyometreden gelen analog değeri nasıl okuyacağımızı göstereceğiz. Öncelikle potansiyometre hakkında bilmemiz gerekenleri sizlerle paylaşmak istiyorum.

Direncini değiştirmek için döndürülebilen mekanik bir vidaya sahip olan devre elemanına potansiyometre denir. Buraya kadar kullandığımız dirençler sabit direnç olarak tanımlanmaktadır. Ancak bazı durumlarda direnci değiştirerek farklı gerilimler üretmek isteyebiliriz. Örneğin hoparlörün sesini yükseltmek veya düşürmek gibi bir işlemi potansiyometre ile gerçekleştirebiliriz. Ayrıca bir LED’in veya evinizde bulunan bir ampulün parlaklığını arttırıp azaltmayı bu devre elemanı ile kolaylıkla gerçekleştirebilirsiniz.

Temel amacı devrede farklı gerilimler üretmeyi sağlamak olan Potansiyometrenin sembolü aşağıdaki gibidir:

Örnek bir potansiyometre aşağıdaki gibidir.

Görüleceği üzere bu devre elemanında üç adet bacak bulunmaktadır. Burada önemli olan potansiyometrenin orta bacağıdır. Diğer iki bacaktan birini 5 volta, diğerini ise GND’ye bağlamamız gerekiyor. Döndürülebilen mekanik vidayı çevirdikçe orta bacaktan farklı değerde gerilim üretilmesi sağlanır. Şimdi bu devre elemanını kullanarak seri port ekranında analog değerleri okumayı sağlayalım.

İhtiyacımız olana devre elemanı şudur:

  • 10k Ohm Potansiyometre x 1

Devremizi aşağıdaki gibi oluşturalım.

Yukarıda görülen devrede bağlantı işlemi aşağıdaki gibi yapılmıştır.

  • Potansiyometrenin soldan ilk bacağı GND pinine bağlandı.
  • Orta bacağı A0 Analog giriş pinine bağlandı. Üretilen gerilim bu pin ile Arduino kartına gönderilecek.
  • Sağdaki bacak 5V’lık çıkış pinine bağlandı.

Devremizin kodu aşağıdaki gibidir.


void setup() {
   Serial.begin(9600);

}

void loop() {

   int potValue = analogRead(A0);

   Serial.println(potValue);

   delay(1);

}

Kodların açıklaması aşağıdaki gibidir.

Serial.begin(9600);

Serial.begin() komutu seri iletişim için veri hızını saniye başına bit olarak ayarlar. Buna baud denir. Burada saniyede gönderilecek bit sayısı 9600 bittir. Yani saniyede 1200 karaktere gönderilmesi sağlanır.

int sensorValue = analogRead(A0);

analogRead() komutu belirtilen pinden analog veri okumayı sağlar. Arduino kartı üzerinde toplamda 6 adet Analog giriş pini bulunmaktadır. Burada A0 pinini kullandık ama istediğiniz herhangi bir pini kullanabilirsiniz. Analog pinler aşağıdaki gibidir.

analogRead() komutu, gelen gerilimi okumasına rağmen Arduino ortamında bu gerilimlerle çalışmak için bunların dijital değerlere dönüştürülmesi gerekmektedir. Bunun için Arduino kartı ile birlikte gelen 10 bitlik analog dijital dönüştürücü kullanılmaktadır. 0 ile 5V arasında gelen gerilim değerleri, dönüştürücü sayesinde 0 ile 1023 değerlerine dönüştürülür. Bu iki değer arasındaki ilişki aşağıdaki gibidir.

analogRead() komutu ile analog girişi okumak yaklaşık 100 mikrosaniye (0,0001 saniye) sürer. Bundan dolayı maksimum okuma hızı 10.000’dir.

Serial.println(sensorValue);
delay(1);

analogRead() komutundan alınan analog veri Serial.println() komutu ile seri port ekranına yazılır. delay() komutu ile veri okuma işlemi 1 milisaniyede bir gerçekleştirilmesi sağlanır.

Uygulamanın seri port ekranında aşağıdaki değerleri okuruz.

Bu uygulama hakkında ayrıntılı bilgiler edinmek için kanalımda yayınladığım şu videoyu izlemenizi tavsiye ediyorum.