Eğitim Şart

Taşı delen suyun şiddeti değil sürekliliğidir!…

Arduino İle Multimetre Yapımı 1: Voltmetre

 

Multimetre birden fazla değer ölçebilen bir elektronikçinin elinde olması gereken bir ölçüm aracıdır. 15-20 TL den başlayıp nerede bittiğini bilmediğim fiyatlara kadar olanları bulunmakta. Önceden bunlara ‘AVOmetre’ denilirdi. Bunun sebebi Amper (akım şiddeti), Volt (gerilim) ve Ohm (direnç) ölçmesindendi. Ama artık bu aletler gelişti, ve bunların dışında sinyalin frekansını, kondansatörün kapasitesini ve hatta bobinin indüktansını bile ölçen modelleri var.  Biz de Arduino ile böyle bir alet yapabilir miyiz? yapılanları da inceledikten sonra gerilim ölçme ile başladık. Bakalım nerelere kadar gidecek bu projemiz. Belki hepsi tamamlandığında bir kutuya yerleştirerek kullanılır bir örnek oluşturabiliriz.

arduinoNeden voltaj ölçme ile başladık? Çünkü en kolay olan ölçüm bu!  Biliyoruz ki Arduino, giriş/çıkış pinleri olan, giriş pinlerinden veri girişi (sensörler gibi) yapılıp bu verilerin bizim istediğimiz şekilde işlenerek (kodlama) çıkış pinlerini yönettiğimiz bir mikro denetleyici ortamı. Peki bu veri girişleri ve çıkışlar nasıl oluyor? Cevap: voltaj şeklinde. Yani Arduino girişleri voltaj şeklinde algılayıp, çıkışları voltaj şeklinde veriyor. Bizim ‘1’ ve sıfırlarımız aslında ‘5 volt’ ve ‘0 volt’. Analog girişlerde de bu 5 volt, 1024 eşit parçaya kadar bölünüp okuma yapabiliyor. Yani aslında A0-A5 arasındaki bu girişlerin ‘analog’luğu bile 5/1024 kadar! Bir de Arduino voltaj ölçtüğünü bilmiyor, 0-1023 arasında bir değer ölçtüğünü sanıyor! Bunu düzeltmek için koda ‘okunan değer x 5 / 1024’ gibi şeyler ekliyoruz. Ama olsun çok zor değil, halledildi.

vabŞimdi halletmemiz gereken başka bir sorun var! Sadece 0-5 volt mu ölçüm yapacağız? Arduino için kullandığımız adaptörler bile 12 volt. En azından 20-25 volt ölçebilseydik! Bu sorunu çözmenin yolu da Gerilim Bölücü kullanmak. Çok zor: iki direnç seri bağlanmış! Seri bağlı dirençlerden eşit akım geçer. Bu da uçlarındaki gerilimin, direnç değeriyle orantılı olmasını sağlar. Örneğin bu projede RB=10kΩ, RA için ise 50kΩ civarında dirençler kullanılırsa; dirençerin oranı (RA/RB) 5:1, gerilimlerin oranı da (VA/VB) da 5:1. Yani VAB 6 volt ise; VA=5 volt, VB=1 volt. VB gerilimini Arduino’nun herhangi bir analog bacağına bağlayıp ölçüm yaptığımızda okutulan her bir volt için 6 voltluk bir giriş (VAB) kapasitesine sahip olduk demektir. Arduino girişi (VB) en fazla 5 volt olabileceğine göre bu devre ile 30 volta seviyelerine kadar ölçüm yapabiliriz. RA yerine 90 k direnç bağlarsanız 50 volta kadar, 190 k direnç bağlarsanız 100 volta kadar ölçüm yapabilirsiniz. Bunu istediğiniz kadar artırabilirsiniz. Ama bu değer büyüdükçe hassasiyet de azalır. Bir ölçü aleti ne kadar hassas ise o kadar iyidir.

VB = VAB (RB / (RA+RB))

Hatta bence Arduino’nun daha hassas olması için üç dirençli bir gerilim bölücü yapıp ortadaki direncin iki ucu arasındaki gerilimi ölçüp farkını alırsak daha iyi olur. Nasıl mı?

vabcÜç direnci seri bağlayıp, A ve B noktalarındaki gerilimin farkını alarak. Burada A noktası için farklı, B noktası için farklı gerilim bölücüler olduğuna dikkat! Kodda önce A ve B noktalarındaki gerilimleri ölçüp bunları 0-5 volt aralığına dönüştürdükten sonra ortalamalarını alarak yazdıracağız. Bu da yetmeyecek; birden çok ölçüm yapıp ortalamasını alacağız! Önemli olan doğru değeri ölçmek. Bunun için bir ‘for’ döngüsü içinde belki 30 ya da 40 ölçümün ortalamasını alıp yazdıracağız. Ve sanırım daha sonraki akım ve diğer ölçümlerde de yine aynı yöntemi kullanacağız: Çok ölçüm ve ortalama değer yazdırma! Önce A ve B noktalarındaki gerilimler A0 ve A1 girişlerinden okunarak 0-1024 aralığından 0-5 volt aralığına çevriliyor:

float okunanA = analogRead(A0);
float okunanB = analogRead(A1);
vA = okunanA * 5 / 1024;
vB = okunanB * 5 / 1024;

Daha sonra bu iki noktada (A ve B) ölçülen voltajlara göre girişteki (ölçülen, ölçülmek istenen) voltaj değeri ayrı ayrı hesaplanıp ortalaması alınıyor:

vA = vA *((RA + RB + RC)/20);
vB = vB *((RA + RB + RC)/ 10);
vOrtalama = (vA + vB)/2;

ve bu işlem 70 ms aralıklarla 30 kez (zamanı ve ölçüm sayısını siz belirleyebilirsiniz) yapılarak çıkan sonucun bir kez daha ortalaması alınarak yazdırılıyor:

for(int i=0; i<30; i++)
{

vToplam = vToplam + vOrtalama;
delay(70);
}
float v = vToplam / 30;
Serial.print(“Voltaj (V):”);
Serial.print(v);
Serial.println();

vToplam değerini loop’un başında her seferinde sıfırlamayı unutmuyoruz.

Seri ekranda ölçtüğümüz değerleri 16×02 LCD ekranda görebilmek için kodda gerekli değişiklikleri (kütüphane ekleme, nesne oluşturma, LCD başlatma ve yazdırma komutlarındaki değişiklikler gibi) de yaparak bir sonraki ölçüme geçebiliriz. Bu arada koddaki direnç değerleri üzerinde yazan değil, ölçülen değerlerdir.

LCD Ekranlı Devre Şeması:

voltmeter_LCD

Koda buradan ulaşabilirsiniz. (Kod hem Seri Ekran hem de LCD Ekrana yazdırır)

1602 LCD Ekran kullanımı.

 

Arduino İle Multimetre Yapımı 1: Voltmetre” için 2 yorum

  1. Merhaba, ölçüm değerlerini saklamak mümkün mü acaba? Yani belli aralıklarla ölçüm yapıp bu değerleri ardunio üzerinde saklamak mümkün olur mu?
    Teşekkürler.

    Beğen

    1. Merhabalar. Değerleri Arduino üzerindeki eeprom üzerine yazdırıp saklayabilirsiniz. İsterseniz harici eeprom da alıp kullanabilirsiniz. Bu konu hakkında yeterince Türkçe kaynak, YouTube videoları var. Size fikir verebilir. Kolay gelsin.

      Beğen

Mehmet akbas için bir cevap yazın Cevabı iptal et

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: