Arduino – Analog Giriş-Çıkış

~Bu yazımızı okumadan önce PWM hakkındaki yazımızı okumanızı tavsiye ederiz.~

MALZEMELER:

1 x 10k Potansiyometre
1 x 220Ω Direnç
1 x Arduino (Kodlar UNO için hazırlandı)
1 x LED

Öncelikle Arduino için Analog giriş ve çıkış terimlerini kısaca açıklayalım.

1-) Analog Giriş

Arduino üzerindeki Atmega serisi mikrodenetleyicilerde ADC özelliği mevcuttur. Bu özellik sayesinde dış dünyadaki elektriksel bir değeri sanal ortamda bir sayıya çevirebilirsiniz. Arduino UNO geliştirme kartı üzerinde ise A0-..-A5 olmak üzere 6 adet analog giriş bulunur. Analog giriş sayısı modele göre değişebilir ama işlevi aynıdır.

Arduino üzerindeki ADC 10 bitliktir ve referans olarak 5V alır. Yani analog girişe gelen gerilim değeri 0 ile 5V arasında değişirken okunan sayı 0 ile 1023 arasında değişecektir. (5V üstü bir değer geldiğinde karta zarar geleceği için bu konuda biraz dikkatli olunması gerekmektedir.)

Yazılımsal olarak da analogRead() kodu kullanılır. Parantez içine okunmak istenen pinin numarası yazılır.

2-) Analog Çıkış

Analog giriş ve çıkış kavramları aslında birbirinden biraz bağımsız kavramlardır. Burada analog çıkış direk PWM olarak kullanılır. Dijital pinlerden yanında ~ işareti olan pinler analog çıkış olarak kullanılabilen pinlerdir. Bu pinlerin sayısı modele göre değişiklik gösterir. PWM sinyalinin frekansı sabittir 500Hz civarındadır. Başka bir yazımızda bu frekansın nasıl değiştirileceğini anlatacağız.

Yazılımda ise analogWrite() kodu kullanılır. Parantez içine pin numarası ve istenilen PWM değeri girilir. Bu değer 0-255 arasında değişir. Burada 256 girilirse 5V çıkış alınacaktır.

İki Özelliğin Birlikte Kullanılması

Bu yazıdaki asıl amacımız bu iki özelliğin nasıl birlikte kullanılacağını göstermeketir. Bunun için çok klasik bir örnek kullandık. Potansiyometreden gerilim okuyup bununla LED parlaklığını ayarlayacağız. Öncelikle devremizi kuralım:

Devrenin Kurulumu:

analog

Burada potansiyometre gerilim bölücü olarak kullanılmıştır. Analog okuma için kullanılan pine 0-5V aralığında değer gönderir. Bu değer kullanıcı tarafından ayarlanır.

Kodlar:

NOT(*):  Kodun son bölümündeki analogWrite kodunun içindeki “deger/4” işlemi ile 0-1023 aralığında okunan sayı 4’e bölünerek 0-255 aralığına indirilmiştir. Burada Matematiksel olarak işlem yapılmıştır fakat bu her zaman bu kadar düzgün gelmeyebilir. Bu yüzden bazı durumlarda map() kodundan yararlanabilirsiniz.

MAP() Kodu:

map(değer, a, b, x, y)    =>  Burada değer olarak giren sayı a-b aralığından x-y aralığına ölçeklenir. Yani bizim örneğimizde son kısım

olarak yazılır.

Bu örnekte Arduino ile temel olarak nasıl sinyal okuyacağımızı gördük. Bu yöntem aynı zamanda birtakım sensör ve modüllerin okunmasında da kullanılır. İleride yapacağımız proje ve örneklerimizde sık sık karşılaşacağız. Örnek basit olsa da aslında oldukça geniş kapsamlı bir konudur. Konuyla ilgili her hangi bir sorunuz olursa yorumlarda belirtebilirsiniz.

“Arduino – Analog Giriş-Çıkış” Hakkında 4 Yorum

    1. Buradaki linkte görüldüğü üzere, PWM çıkışı 8-bitlik 0 ve 255 arasında ayarlanmaktadır. Burada 0 tamamen kapalı konumu, 255 ise tamamen açık konumu temsil eder. Map fonksiyonu, 0-255 arası değerleri 0-1023 arasında ölçekler. 0-1023 analogRead fonksiyonunun çıkış aralığıdır. 0-255 değerleri ise arduino analogWrite fonksiyonunun gereğidir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.