Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino derslerimize Analog Pinler ve Analog I/O Fonksiyonları ile devam ediyoruz. Bu dersimizde analog pinlerimizin referans gerilimini analogReference fonksiyonu ile nasıl değiştirebileceğimizi ve analogWrite ve analogRead fonksiyonlarının kullanımının nasıl olduğunu göreceğiz.
Analog Pinler
Derslerimizde kullanlığımız Arduino Uno kartın 6 adet analog pin bulunmaktadır. A0-A5 aralığında numaralandırılan analog pinlerimiz 10 bitlik hassasiyete sahiptir. Bu analog pinlerimizi analog sensörlerden gelen sinyalleri okumak veya sensörlerimize gerilim üretmek için kullanılabilirler. Ayrıca analog pinlerimizi dijital pinler gibi kontrol ederek dijital giriş çıkış işlemleride gerçekleştirebliliriz.
Analog pinlerde tıpkı dijital pinler de oluğu gibi giriş ve çıkış için ayarlanabilir. Bu nedenle analog pinlerimizden sağlıklı geri dönüşler alabilmemiz için pinimizin modunun kullanım isteğimiz ile uyumlu olmasına dikkat etmeliyiz.
analogReferance ()
Kullanım Şekli: analogReference (parametre)
Analog pinlerin giriş işlerimde kullanılan referans gerilimini ayarlamamızı sağlar. Bu işlem sayesinde daha hassas ölçümler yapabiliriz.
5 adet parameresi bulunmaktadır.
- DEFAULT : Arduino kartlarının varsayılan 5V gerilimlerinde çalışmalarını sağlar.
- INTERNAL : Analog pinlerimizin referans gerilimini 1.1V olarak ayarlar (Atmega328 ve Atmega168 için).
- INTERNAL1V1 : Yalnızca Arduino Mega kartları için geçerlidir ve referans gerilimini 1.1V olarak ayarlar.
- INTERNAL2V56 : Yalnızca Arduino Mega kartları için geçerlidir ve referans gerilimini 2.56V olarak ayarlar.
- EXTERNAL : Aref pininden uygulanan 0-5V aralığındaki gerilimleri referans gerilimi olarak ayarlar.
Not: Aref pini kullanırken 0V’dan küçük ve 5V’dan büyük gerilimler kullanılmamalıdır ve analog referansı değiştirildikten sonra kısa bir süre analog pinlerde okunan değerler doğru olmayabilir.
analogRead ()
Kullanım Şekli: analogRead(pin)
Bu fonksiyon belirtilen pinden değer okumak için kullanılır. analogRead fonksiyonu 10 bit hassasiyetindeki analog pinlerimiz deki giriş gerilimini 0-1023 aralığında yorumlayarak geri döndürür. Burada yapılan dönüşüm işlemi ile 0V ile 5V (varsayılan) arasındaki giriş geriliminin 0-1023 aralığındaki sayısal karşılığına ulaşılır. Foksiyon kullanım olarak parametre olarak aldığı pinden okuma işlemini gerçekleştirir.
analogWrite ()
Kullanım Şekli: analogWrite(pin)
Bu fonksiyon pinlere giriş olarak gelen gerilimleri 10 bitlik bir aralıkta yani 0 ile 1023 aralığında okumamızı sağlar. Bu fonksiyonu analog pinlerin yanı sıra PWM özelliği taşıyan dijital pinler içinde kullanabiliriz.
float okunan = 0; // analog A0 pininden yapilacak okumayi saklamak icin kullanilacak degisken
void setup() {
Serial.begin(9600); // Seri haberleşme portunu 9600
}
void loop() {
okunan = analogRead(A0); // analogRead fonksiyonui ile A0 pininden okuma gerceklestirilerek okunan degiskenine atanir.
Serial.print(“A0 pininden okunan deger: “);
Serial.print(okunan);
Serial.print(” – Okunan degerin gerilim olarak karsiligi(V): “);
Serial.println(okunan * 5 / 1023); // 5V varsayilan gerilimde, ve 0-1023 araliginda calistigimiz icin
// okunan deger 5 ile carpilarak ve 1023 ile bolunerek volt karsiligina ulasilir.
delay(2000);
}
float okunan = 0; // analog A0 pininden yapilacak okumayi saklamak icin kullanilacak degisken void setup() { Serial.begin(9600); // Seri haberleşme portunu 9600 }
void loop() { okunan = analogRead(A0); // analogRead fonksiyonui ile A0 pininden okuma gerceklestirilerek okunan degiskenine atanir. Serial.print(“A0 pininden okunan deger: “); Serial.print(okunan); Serial.print(” – Okunan degerin gerilim olarak karsiligi(V): “); Serial.println(okunan * 5 / 1023); // 5V varsayilan gerilimde, ve 0-1023 araliginda calistigimiz icin // okunan deger 5 ile carpilarak ve 1023 ile bolunerek volt karsiligina ulasilir. delay(2000); } |
Bu önrek kod ile arduino kartimaza bagladigimiz bir potansiyometre aracılığı ile değiştirdiğimiz gerilim A0 pininden okunur.
Örnek Devre ŞemasıÖrnek Ekran Çıktısı
Arduino’da Analog Pinler ve Analog I/O Fonksiyonlarını inceledik. Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki içeriğimizde Mobilhanem.com‘da görüşmek üzere.
Tüm Arduino Dersleri için tıklayınız..
3