Arduino ile Potansiyometre Kullanımı – LED ve Buzzer Kontrolü – Map Fonksiyonu

Arduino ile Potansiyometre Kullanımı ve Kontrolü

Arduino ile Potansiyometre Kullanımı yaparak Led ve Buzzer kontrolü yapacağız.

 

Potansiyometre Nedir?

Potansiyometre ayarlanabilir bir dirençtir. Üç bacaklı bir komponenttir. Biz anlatımımızda dıştaki uçlar + ve – bağlantılarını temsil ederken ortadaki uç ise potansiyometrenin çevrilmesiyle değişen direnci temsil eder.

Direnç değiştikçe analog olarak giden veri artar veya azalır. Potansiyometre tamamen analog olarak çalışır. Arduino ile kullanabilmek için bir Analog Dijital Çeviriciye ihtiyaç vardır. Bu modül Arduino Uno’da standart olarak yer alır.

Potansiyometre ile Led Kontrolü

Led’in parlaklığını potansiyometreden gelen değerlere göre ayarlayacağız. Potansiyometre 0 değerini gönderirken led sönük olacak, 1023 çevrilmiş haliyle 255 değerini gönderdiğinde ise tamamen yanıyor olacaktır.

Potansiyometre ile Buzzer Kontrolü

Potansiyometreden gelen değerleri led kontrolünde olduğu gibi bir de buzzer üzerinde de kullanacağız. Yine potansiyometre 0 değerini gönderirken buzzer tamamen sessiz olacak, potansiyometre 1023 yani 255 değerini gönderdiğinde ise en yüksek şiddetinde cevap verecek.

Arduino Analog Digital Converter – PWM Kullanımı

Arduino ile Potansiyometre Kullanımı yaparken ADC kullanımı gerekecektir. Arduino içerisinde dahili olarak 10 Bit çözünürlüğe sahip Analog Digital Converter Modülü bulunmaktadır. Yani 0 ile 1023 arasında sıfır da dahil olmak üzere toplamda 1024 değere sahiptir.

arduino-analog-digital-converter-cozunurluk-10bit

Ancak Arduino ile Potansiyometre Kullanımı gerektiğinde PWM yani Analog sinyali taklit eden dijital sinyaller olarak kullanabilmek için 0-1023 aralığını 0-255 aralığına dönüştürmemiz gerekir.

arduino-uno-pwm-cozunurlugu-8bit

Potansiyometre analog veri gönderir. Arduino analog veriyi ADC üzerinden 0-1023 değer aralığında okur. Bunu PWM üzerinden gönderirken ise 0-255 değer aralığını kullanmamız gerekir.

Bunun için de Map komutu yani haritalama komutu kullanacağız.

Arduino ile Potansiyometre Kullanımı: Map Komutu Nasıl Kullanılır?

Map komutu ile dönüştürmek istediğimiz değişkeni ve dönüşecek iki aralığı aynı satırda belirtiyoruz.

Potansiyometreyi temsil eden “pot” değişkeninin karşısına Map Fonksiyonu için Map Komutunun söz dizimi aşağıdaki gibidir:

arduino-map-fonksiyonu-komutu-kullanimi

Açıklamak gerekirse:

Map (Değişken AdıDönüştürülecek en düşük değer, Dönüştürülecek en yüksek değerDönüştürülmüş en düşük değer, Dönüştürülmüş en yüksek değer);

Arduino Uno Potansiyometre Kodu ve Devre Şeması

arduino-potansiyometre-kullanimi-devre-semasi

Potansiyometre üç ayaklı bir eleman olup anlatımımızda dıştaki bacakları + ve –‘yi temsil ederken ortadaki ayak ile potansiyometredeki değişim gözlenir. + ve –‘nin yönü sabit değildir. Biz nasıl bağlarsak bağlantı şekline göre değer artışı ya da düşüşü olur.

Değer değişimi orta ayaktan okunduğu ve bu değer de Analog olduğu için Arduino Uno’nun A0 pinine girişini yapıyoruz. Diğer bacaklar + ve – konumunda.

Şu anda Potansiyometreden Arduino’ya analog değer gönderiyoruz. Arduino bunu ADC üzerinden okuduğu ve 10 Bit çözünürlüğe sahip olduğu için 0-1023 değer aralığında okuyabilmektedir.

Fakat PWM Sinyalleri ise veri gönderimini 0-255 değer aralığında yapabilmektedir.

Bu durumda arada bir değer dönüştürücü fonksiyon yani map komutunu kullanmamız gerekir. Böylece potansiyometreden gelen 0-1023 aralığını 0-255 aralığına ölçekleyebilir ve bu değeri PWM üzerinden gönderilebilir hale getirebiliriz.

Eğer bu değişimi yapmazsak potansiyometreden gelen değer ile led veya buzzer’a giden değer arasında tutarsızlık olur. Potansiyometrenin bir turunda PWM 4 kez tekrarlanır. Potansiyometrede bir tam tur PWM’de 4 tur anlamına gelir. 0-1023 ile 0-255 ‘ten dolayı böyle bir durum ortaya çıkar.

map-komutu-ve-pwm-karsiligi

Bu durumu kodlar üzerinden özetlemek gerekirse:

arduino-uno-potansiyometre-kodu-001

Void Setup alanında 4. Satırda PinMode komutu ile potansiyometreden gelen veriyi Arduino’nun A0 pinine atıyoruz ve Input diyerek bu pini giriş pini yapıyoruz.

5. satırdaki kod ile de Arduino’nun 3. Pinini çıkış olarak belirliyoruz. Buradan gelen veriyi de led veya buzzer’da kullanıyoruz.

6. satırda ise seri haberleşmenin çalışması için Arduino’nun varsayılan baudrate değeri 9600 değerini giriyoruz.

arduino-uno-potansiyometre-kodu-002

Void Loop alanında 12. Satırsa potansiyometreden gelen değeri pot isimli değişkene analogRead komutu aracılığı ile atamış oluyoruz.

13. satırda ise 0-1023 aralığını 0-255 aralığına çeviren map komutunu kullanıyoruz.

14. satırda ise potansiyometreden gelen verileri ekranda görmek için kullandığımız bir komuttur.

15. satırda aslında bu devrenin sonuç görüntüsünü oluşturan PWM sinyallerini gönderen analogWrite komutunu görüyoruz. 3. Pine pot değişkenindeki değerleri gönderiyor.

Böylece Potansiyometreden gelen veriyi PWM’e çevirerek sonucu görebiliyoruz.

Arduino Uno Potansiyometre Kodu

void setup ()

{
   pinMode(A0,INPUT);              // Potansiyometre A0 pinine bağlı.
   pinMode(3,OUTPUT);              // Ledin bağlı olduğu pin.
   Serial.begin (9600);
}

void loop ()

{
  int pot = analogRead (A0);      // ADC 10 Bit çözünürlüğe sahiptir. 0-1023 değer aralığındadır.
  pot=  map(pot,0,1023,0,255);    // Analog sinyal değerini 0-255 aralığına daraltıyoruz.
  Serial.println(pot);            // Serial Monitör ekranında veriyi görebilmek için eklenen satır.
  analogWrite (3, pot);           // Potansiyometreden gelip Map komutundan çıkarak Led veya Buzzer'a giden sinyal.
}

Arduino Eğitimine Hemen Başlayın!

Arduino Dersleri hem Youtube‘da hem de Direnc.net Blog sayfamızda! Sosyal medyada bizi takip edin! Bildirimleri açarsanız en güncel içeriklerden hemen haberdar olabilirsiniz.