Temel Arduino Eğitimi | Ders #9: Analog Pinleri Okumak, Seri Çizici ve map() Komutu

5 dk okuma süresi
5,741

Analog Pinleri Okumak, Seri Çizici ve map() Komutu:

Bu projede potansiyometre kullanarak analog pin üzerinden okuduğumuz değeri seri porta yazdırıp ayarlı LED aydınlatması yapacağız.

Öncelikle potansiyometreden başlayalım. Potansiyometre, basitçe dışarıdan müdahale ile değeri değiştirilebilen dirençtir. Bunların daha güçlü akıma karşı koyabilenlerine ise reosta adı verilir (Kaynak: Wikipedia). Biz potansiyometre üzerindeki değeri değiştirdikçe Arduino üzerinden okuduğumuz değer de buna oranla değişiklik gösterecektir.

Bağlantı Şeması:

Potansiyometrelerin 3 bacağı vardır. Sol ve sağdakiler kutup uçları, ortadaki ise sinyal ucudur. Sol ve sağdaki bacaklar kutupsuzdur. Farklı yönde takılması durumunda potansiyometre zarar görmez fakat alınan sinyal değişiklik gösterir. Yani artı kutbu sağ bacağa bağlarsak, potansiyometreyi sağa çevirdiğimizde okunan değerin yükseldiğini göreceğiz. Aynı şekilde artı kutbu sol bacağa bağlarsak bu sefer de potansiyometreyi sola çevirdiğimizde okunan değerin yükseldiğini gözlemleyebiliriz.

Kodlar:

İlk iki satırda bağlı pinlerimizi belirtmek için define ifadesini kullanarak tanımlamalar yaptık. Daha sonra ise iki adet pot_deger ve led_deger isimli, integer tipinde değişken oluşturduk.

Analog pinler aynı Arduino üzerindeki gibi A0, A1 gibi isimlerle isimlendirilir ve özel olarak giriş olarak ayarlanmalarına gerek yoktur.

Loop fonksiyonu içerisinde pot_deger değişkenine potansiyometreden okunan değeri alması için atma işlemini yaptık. Daha sonra aldığımız değeri seri porta yazdırdık.

 

analogRead(pin numarası);

   Bu komut ile pin numarası girilen pinden analog sinyal okuması  yapabiliriz.

 

map(değişken ismi, x, y, z, t);

   Bu komut biraz karmaşık bir komut olduğundan dikkatli okumanızı rica ediyorum. İlk olarak buradaki x, y, z ve t harflerinin anlamlarını göstereyim:

X: Değiştirilecek değerin alabileceği minimum değer.

Y: Değiştirilecek değerin alabileceği maksimum değer.

Z: Yeni değerin minimum değeri.

T: Yeni değerin maksimum değeri.

Bu komut kısaca herhangi bir aralığı daha küçük bir aralığa indirmemizi sağlar. Analog değerlerin 0-1023 arası, PWM değerlerin ise 0-255 arası değer alabildiğini biliyoruz. LED’e PWM sinyali yazdırmak istediğimizde 0-255 aralığının dışına çıktığımızda kodumuzda sorunlar olacağını farkedebilirsiniz. Bu yüzden analog olarak okuduğumuz 0-1023 arasındaki değeri 0-255 arasında değiştirmemiz ve elde ettiğimiz değeri bir değişkene yazdırmamız gerekiyor. Değişken ismine pot_deger yazdık. Bu sayede Arduino değiştirmek istediğimiz değişkenin pot_deger değişkeni olduğunu anladı. X’ e 0, Y’ ye ise 1023 yazdık çünkü pot_deger değişkeni içerisine sadece 0 ile 1023 arası değer alabilir. Z ve T yerine ise 0 ve 255 yazdık çünkü PWM sinyalleri en az 0 en fazla 255 değerini alabilir.

Map komutu ile led_deger değişkenine atama yaptıktan sonra bu değeri LED’in bağlı olduğu pine yazdırdık. Artık bu kodu yükledikten sonra potansiyometrenin değeri ile oynadıkça LED’in parlaklığının değiştiğini görebilirsiniz.

Map komutunun yaptığı işi daha iyi anlamak için seri porta bir de led_deger değişkenini yazdırabilirsiniz.

 

Seri Çizici:

Seri çizici, IDE’de bulunan ve seri porttaki gelen verileri işleyip grafik halinde okumamızı sağlayan bir arayüzdür. Kodları yükledikten sonra verileri sayısal olarak görmek istersek seri portu, grafiksel olarak görmek istersek de seri çiziciyi kullanabilirsiniz. Seri çiziciye Araçlar>Seri Çizici yolundan ulaşabilirsiniz (Kısayol: Ctrl+ Shift + L). Burada değerlerin grafiksel olarak gösterildiğini görebilirsiniz.

Neden 1023 Değeri?

Arduino işlemcisi üzerinde analog sinyal okunmasını sağlayan 10 bitlik bir ADC (Analog – Digital Converter, Analog – Dijital Dönüştürücü) bulunur. Arduino gelen analog sinyalleri bu ADC sayesinde dijitale dönüştürüp işlenebilir hale getirir. Bu ADC 5V’luk voltaj değerini 1024 eş parçaya ayırır. Bu işlem sonucu seri porttan okuduğumuz her bir artış veya azalış 0.004V’luk bir değere denk gelmektedir. Daha sonra okuduğu bu voltaj değerini dijitale çevirir. Bu değer sıfır ve birlerden oluşur ve binary (ikili) sayı sistemi ile yazılmıştır. Bu sayı onlu sayı sistemine dönüştürüldüğünde ise karşımıza 0 ile 1023 arası bir değer çıkar.

Bir sonraki yazımda Char Değişken Tipi ve ASCII Tablosu konusunu ele alacağım. Görüşmek Üzere!

E-Mail: cagriserpin@muhendisarsivi.com

Instagram: @cagri.cpp

Facebook: www.facebook.com/cagriserpin33

Daha Fazla İlgili Makale Yükleyin
Daha Fazla Yük Arduino

3 Yorumlar

  1. ibrahim

    24/03/2019 at 16:32

    Merhaba, ben kare dalge uretmek ıstemıyorum testere dısı sınyal uretmek ıstıyorum fakat arastırmama ragmen bı sonuca varamadım herkes kare dalga uretıor. Acaba arduınoda testere dısı ses sınyali uretemezmıyız ?

    cevap

  2. bilge atilla sert

    25/04/2018 at 21:25

    ben seri çiziciyi dediğiniz şekilde açtım ama bişey olmadı

    cevap

    • yakup afşin

      26/04/2018 at 18:31

      Arduino IDE sürümünüzü kontrol eder misiniz?

      cevap

Bir cevap yazın

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

Ayrıca Kontrol Edin

Temel Elektronik ve Arduino için PDF

Bu paylaşacağımız PDF bize ait olmayıp tamamen takipçilerimizin faydalanması için siteye e…