Arduino İle Kendi Voltmetremizi Yapalım

1071malazgirt

Uzman üye
26 Haz 2015
1,781
8
Trafo
Merhaba THT ailesi. Bugün sizlerle arduino öğrenmeye başladığımda yaptığım voltmetreyi sizinle paylaşacağım. Bunu yapma sebebim elimde karşılaştırmam gereken piller vardı ve ölçü aletim yoktu. Ben de elimdeki malzemelerle bunu yapmıştım. Yaparken oldukça zevk almıştım. Umarım siz de beğenirsiniz. Projeyi açıklarken bazı eletronik detaylara da ineceğim. Amacım sadece projeyi anlatmak değil meraklı kişilerin de bir şeyler öğrenmesini sağlamak.

---ÖN BİLGİ---

Bildiğiniz gibi arduino bir geliştirme kartıdır. Üzerinde dijital ve analog olmak üzere iki çeşit pin yapısı bulundurur. Dijital pinler dijital sinyaller kullanırken, analog pinler analog sinyaller kullanır. Projeyi anlamak için önce bu iki sinyal tipi arasındaki farkı bilmek gerekiyor. Analog sinyal belirli bir aralıktaki tüm değerleri alabilen sinyaldir. Örneğin aralığımız 0 volt ile 5 volt aralığında ise analog sinyalin değeri 0 ile 5 arasında yer alan tüm değerler olabilir (0, 2, 2.75, 3, 3.5, 5 gibi). Bu yüzden analog sinyallere sürekli sinyal de denir. Grafiğini çizmeye çalışırsak sinüs eğrisi oluşturur. Dijital (sayısal) sinyaller ise belirli aralıktaki değerlerin sadece maximum ve minimum olanları alabilir. Yani ya birdir ya sıfır. Aralığımız 0-5 volt ise sinyalin değeri ya 5 volttur ya 0. Dijital sinyalin grafiğini çizersek ortaya kare dalga şekli çıkar.

Peki ne zaman dijital pin, ne zaman analog pin kullanılır? Eğer amacımız arduino pininden voltaj giriş çıkışını tamamen açmak veya tamamen kapatmaksa dijital pin kullanılır. Ama amacımız pinden değişken değerler alıp vermekse analog pin kullanılır. Bizim bu projede amacımız değişken voltaj değerlerini ölçmek olduğu için analog pin kullanacağız. Şimdi projeyi anlatmaya başlayalım.


--########--


MALZEME LİSTESİ:

-Arduino Uno (Farklı modelde olabilir fark etmez)
-Bir tutam jumper kablo
-Bir tane breadboard
- Bir tane 10k direnç ve bir tane 100k direnç.

Gördüğünüz gibi malzemeler oldukça az ve kolay bulunan şeyler. Ben voltmetrede okunan değeri arduino IDE’nin seri port ekranında gösterdim. Eğer isterseniz kodlarda ve devrede ufak değişiklik yaparak LCD ekranda da gösterebilirsiniz. Şimdi devremize geçelim:




DEVRE ŞEMASI:

YUzbho.png



Devre oldukça basit. Yaptığımız tek şey bir gerilim bölücü. İsterseniz buradaki direnç değerlerini değiştirebilirsiniz. Önemli olan şey büyük ve küçük direnci doğru yere bağlamak ve maximum voltaj değerini hesaplamak. Arduinoya giren voltaj 5 voltu geçmemeli. Ohm yasasına göre küçük bir hesap yaparsak bu devre ile teorik olarak maximum 55 volt ölçebilir. Tabi teoriyle pratik her zaman farklıdır. Benim tavsiyem 20 volttan fazla ölçmeye çalışmayın. Arduinonuz yanmasın ;)
Şimdi Kodlara geçelim.

KODLAR:

Kod:
//TURKHACKTEAM:ORG Arduino ile DC voltmetre yapalım
    int analogInput=A0;
  int *******=1000; //ölçüm için bekleme süresi     sansürlü yer r-e-f-r-e-s-h
  float vout=0.0; //verdiğimiz voltaj
  float vin=0.0;  //arduinoya giden voltaj (gerilim bölücü sayesinde 5volttan fazla değerleri ölçeileceğiz)
  float r1=100000.0; //100k direncimiz
  float r2=10000.0; //10k direncimiz
  int value=A0;
   
  **** setup() {    //Sansürlü yer v o i d
  pinMode(analogInput,INPUT); //A0 pinini giriş olarak ayarladık
  Serial.begin(9600); //seri port ekranına bağlantıyı başlattık
   
  }
   
  **** loop() {     //Sansürlü yer v o i d
  float olc=analogRead(analogInput);
  Serial.print("value = ");
  Serial.println(value);
   if(olc>=1023){  //arduinoya 5Volttan fazla voltaj geldiğinde uyarı verdik tabi kart yanarsa bu uyarıyı göremeyebilirsiniz :)
    Serial.println("DiKKAT!!!");
    delay(*******); // sansürlü yer r-e-f-r-e-s-h
    return;
   }
   else if(value<=0){
    Serial.println("0 VOLT");
    delay(*******); // sansürlü yer r-e-f-r-e-s-h
    return;
   }
   vout=(olc*5)/1024.0;  //Arduinonun aldığı değeri bizim anladığımız değere dönüştürdük
   vin=vout/(r2/(r1+r2));
   Serial.println(vout);
   Serial.print(vin);
   Serial.println("VOLT");
   Serial.println("-------------------");
   delay(*******);         // sansürlü yer r-e-f-r-e-s-h
  }


Anlamadığınız yerleri sorabilirsiniz.
 
Son düzenleme:

fazeL

Katılımcı Üye
24 Eyl 2016
735
23
Ordugâh
10'uncu sınıf okurken yapmış olduğum basit projelerden birisi. Eline emeğine sağlık.
 

R34L H4CK3R

Katılımcı Üye
30 Tem 2017
472
0
Arduino'yu severim ama Raspberry tercihimdir . Güzel bir yazı dirençler olsaydı denerim :)

Hacı Ikisi aynı amacla kullanılmıyor ki :) Mesela Arduino yu ben otomasyonlar da daha kullanıslı buluyorum. ya da basit ama iyi fikir ile yapabilecegin projeleri de azımsamamak gerek. Rasberry'e gelecek olursak Arduino kadar yaygın degil. Bir aralar populer olsada şu an tercihim Arduino..
 

1071malazgirt

Uzman üye
26 Haz 2015
1,781
8
Trafo
Arduino'yu severim ama Raspberry tercihimdir . Güzel bir yazı dirençler olsaydı denerim :)

Böyle küçük işler için raspberry'ye gerek yok diye düşünüyorum. Elinizde malzeme yoksa isterseniz ISIS gibi simülasyon araçlarıyla deneyebilirsiniz

Başlangıç için güzel kendini geliştirmeni devam etmen dileğiyle ;):)

Teşekkürler :)

Hacı Ikisi aynı amacla kullanılmıyor ki :) Mesela Arduino yu ben otomasyonlar da daha kullanıslı buluyorum. ya da basit ama iyi fikir ile yapabilecegin projeleri de azımsamamak gerek. Rasberry'e gelecek olursak Arduino kadar yaygın degil. Bir aralar populer olsada şu an tercihim Arduino..

Arduino hobi amaçlı geliştirme kartıdır. Raspberry de öyle ama raspberry'yi geliştirme kartı olarak sınırlandırmak haksızlık olur. raspberry çok daha geniş bir kullanım alanına sahiptir ancak maliyetlidir.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.