Arduino Analog Okuma (Analog Read) Nasıl Yapılır

Bu yazımızda Arduino Analog Okuma analog pinlerinden A0 pinine bağlı olan bir trimpotun(ayarlı direnç) voltaj değerini okuyup seri porttan bilgisayara göndereceğiz arkadaşlar.

Aşağıdaki devreyi breadboardunuza kurun. 1-10K bir trimpot takabilirsiniz çok önemi yok. Trimpotlar ayarlı dirençlerdir. Üzerindeki yazan değer maksimum olup orta konumunu çevirdiğiniz zaman direnç değeri 0 ile maksimum arasında lineer olarak değişir. Bu direnç değişikliği bize voltaj farklılığı yaratacaktır. Bu voltaj farklılığını arduino ile okuyarak dijital bilgiye dönüştürüp bilgisayara göndereceğiz.

Arduino Trimpot Analog Okuma
Arduino Trimpot Analog Okuma

Aşağıdaki kodu inceleyin ve programınıza yazdıktan sonra derleyip arduino’ ya yükleyin. Serial Monitörü açın programın sağ üst köşesinden ve verilerin geldiğini görün.

Arduino 10-bitlik bir Analog Dijital Dönüştürücü (ADC Analog Dijital Converter) sahip olduğundan maksimum okuyacağı volaj değeri +5V olup dönüşüreceği dijital değerde 1024 olacaktır. Minimum yani sıfır voltta ise 0 değeri verecektir.

Bu değer bir sensor bağladığınızda bu şekilde bir işinize yaramaz. Bu bilgiyi işlemeniz gerekmektedir. Yani bir sıcaklık, veya basınç sensoru düşünün, kataloğunda derki ben 0-10 bar arası 0-5V çıkış yaparım. Siz 0-5V değerni 0-1024 dijital değer olarak arduino’dan okuyacaksınız. Bu digital değeri interpolasyon yaparak volt değerine dönüştürmelisiniz.

Aşağıdaki kod interpolasyon işlemini yapmaktadır.

Şimdi biraz daha okuma sistemimizi geliştirelim. Belirlediğimiz kadar saniyede okuma yapsın ve bu okunan değerlerin ortalamasını alıp saniyede bir kez bilgisayara göndersin. Bu ne işimize yarar derseniz, analog değerler çok gürültülü olmaktadır. Zaten yukarıdaki kodları çalıştırdığınızda değerlerin çok sabit olmadığını belirli bir sapmada aşağı yukarı hareket ettiğiniz göreceksiniz. O yüzden hem devrede filtre çalışması hem de yazılımda filtre algoritması yaparak çok düzgün değerler okuyabilirsiniz.

Aşağıdaki kod yazılımsal olarak 5 değerin ortalamsını alıp saniye de bir kez bilgisayara göndermektedir.

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.