Arduino ile Kondansatör Kapasitesini Ölçme

Merhaba Arkadaşlar ,

Bugün sizler için çalışmalarımda kullanmak için geliştirmeye başladığım bir projemden bahsedeceğim. Bu projemde kondansatör, direnç, bobin gibi bütün devre elemanlarının ölçülmesini gerçekleştirmek için üzerinde çalışmaya başladığım bir proje.

Bu yazımız sadece kondasatör ölçümüyle ilgili olacak .

Projemizde arduinoyu kullanarak matematiksel hesaplamalarla kondansatörün sarj-deşarj hesaplamalarını yaparak kondansatörün değerini hesaplayacağız.

Kullanılan Malzemeler

  1. 1 adet 10kohm  Direnç
  2. 1 adet 220ohm Direnç
  3. 1 adet Arduino UNO

Bağlantı Şeması

Kondansator bağlantı Şeması

Bğlantımızda da gördüğünüz gibi arduinomuzun 3 girişini kullanıyoruz bunun sebebi  arduinomuzun bir ucunu kondansatörü şarj etmesi diğerini kondansatörün deşarj edilmesi ve analog girişi ise bunun belli zamanlarla ölçülmesi için kullanıyor bu şekilde kondansatörün zaman aralığına göre sarj deşarj ölçümlerinin yapılarak değerin hesaplanır.

Projemizi yaptıktan sonra kodumuzu yükledikten sonra seri bağlantıda alttaki resimdeki gibi görürsünüz.

Ekran Görüntüsü

Kondansator4

Proje geliştirilmeye açık olduğundan Bu değerleri LCD ye yazdırabilirsiniz. Alttaki örnek resime bakabilirsiniz.

Kondansator

Arduino Kodumuz

/* 

Bunun için bilmeniz gereken formül  
 *    TC = R * C
 * 
 *    TC = saniye cinsinden zaman
 *    R = direnç
 *    C = Kondansatör FARAD cinsinden  (1 microfarad (ufd) = .0000001 farad = 10^-6 farad ) 
 *  220 ohm direnç desarjPin 
 *  
 */

#define analogPin      0          // analog pin voltaj hesaplamak icin
#define sarjPin      13       
#define desarjPin   11        
#define direncdegeri  10000.0F   // 10Kohm luk direnc icin F degeri float icin kullaniyor
                                  

unsigned long baslangiczamani;
unsigned long olculenzaman;
float mikroFarad;               
float nanoFarad;

void setup(){
  pinMode(sarjPin, OUTPUT);     
  digitalWrite(sarjPin, LOW);  

  Serial.begin(9600);            
}

void loop(){
  digitalWrite(sarjPin, HIGH); 
  baslangiczamani= millis();

  while(analogRead(analogPin) < 648){ //1023 degerinde 647 degeri 63.2% sarj grafiginde olcum icin kullaniyor. } elapsedTime= millis() - baslangiczamani; microFarads = ((float)olculenzaman/ direncdegeri ) * 1000; Serial.print(olculenzaman); Serial.print(" mS "); if (microFarads &gt; 1){ Serial.print((long)mikroFarad); Serial.println(" mikroFarad"); } else { nanoFarad = mikroFarad * 1000.0; Serial.print((long)nanoFarad); Serial.println(" nanoFarad"); } /* desarj olmasi dicharge the capacitor */ digitalWrite(sarjPin, LOW); pinMode(desarjPin, OUTPUT); digitalWrite(desarjPin, LOW); while(analogRead(analogPin) > 0){         //desarj oluncaya kadar bekle 
  }

  pinMode(desarjPin, INPUT);            
}

1mF ile 3900mF arasını net ölçer

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

  1. Anonim 30 Ocak 2017 01:16

    Hocam iyi günler elinize sağlık.Fakat demeden geçemeyeceğim.Kodu denedim ve birçok yerde hata verdi.Kodu düzeltseniz iyi olur.

    Cevapla
    • Arduinocu 30 Ocak 2017 14:13

      Hatayi bildirdiginiz icin tesekkurler
      Programin baslangicinda bulunan */ yi /* seklinde degistirirseniz hatasiz calisir.
      koddaki hata duzeltildi kolay gelsin

      Cevapla
  2. Mehmet Selim 16 Nisan 2016 08:09

    Waaawwww Admin projeni bekiyoruz …

    tebrikler

    Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.