Tüm gömülü sevenler, voltajı, akımı, direnci vb. Ölçmek için harika bir araç olan multimetreye aşinadır. Bir multimetre bunları kolayca ölçebilir. Ancak bazen normal bir multimetre ile mümkün olmayan endüktans ve kapasitansı ölçmemiz gerekir. Endüktans ve kapasitansı ölçebilen bazı özel multimetreler vardır, ancak bunlar maliyetlidir. Arduino'yu kullanarak Frekans Ölçer, Kapasitans Ölçer ve Direnç ölçer inşa ettik. Bu yüzden bugün Arduino kullanarak bir Endüktans LC Metre yapacağız. Bu projede endüktans ve kapasitans değerleri ile 16x2 LCD ekran üzerinden frekans değerlerini göstereceğiz. Kapasitans ve endüktans gösterimi arasında geçiş yapmak için devrede bir basma düğmesi verilmiştir.
Gerekli Bileşenler
- Arduino Uno
- 741 opamp IC
- 3v pil
- 100 ohm direnç
- Kapasitörler
- İndüktörler
- 1n4007 diyot
- 10k direnç
- 10k pot
- Güç kaynağı
- Butona basınız
- Breadboard veya PCB
- Bağlantı telleri
Frekans ve Endüktans Hesaplama
Bu projede , paralel olarak bir LC devresi kullanarak endüktans ve kapasitansı ölçeceğiz. Bu devre, belirli bir frekansta rezonansa giren bir zil veya zil gibidir. Ne zaman bir darbe uygularsak, bu LC devresi rezonans yapmaya başlayacak ve bu rezonans frekansı analog (sinüzoidal dalga) biçimindedir, bu yüzden onu squire dalgasına dönüştürmemiz gerekir. Bunu yapmak için, bu analog rezonans frekansını, görev döngüsünün% 50'sinde squire dalgasına (frekansa) dönüştürecek opampa (bizim durumumuzda 741) uygularız. Şimdi Arduino kullanarak frekansı ölçüyoruz ve bazı matematiksel hesaplamalar kullanarak endüktansı veya kapasitansı bulabiliriz. Verilen LC devre frekansı yanıt formülünü kullandık.
f = 1 / (2 * zaman)
zaman pulseIn () işlevinin çıkışıdır
şimdi LC devre frekansımız var:
f = 1/2 * Pi * (LC) 'nin karekökü
endüktans elde etmek için çözebiliriz:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
Daha önce de belirttiğimiz gibi dalgamız sinüzoidal bir dalga olduğundan hem pozitif hem de negatif genlikte aynı zaman periyoduna sahiptir. Bu, karşılaştırıcının onu% 50 görev döngüsüne sahip kare dalgaya dönüştüreceği anlamına gelir. Böylece Arduino'nun pulseIn () fonksiyonunu kullanarak ölçebiliriz . Bu fonksiyon bize, zaman periyodunu ters çevirerek kolaylıkla frekansa dönüştürülebilecek bir zaman periyodu verecektir. Şöyle pulseIn doğru frekansı elde etmek için, böylece hemen yalnızca bir pals fonksiyonu tedbir, 2. Şimdi yukarıdaki formül kullanılarak endüktans dönüştürülebilen bir frekansa sahip olacak şekilde ile çarpın gerekir.
Not: Endüktans (L1) ölçülürken kondansatör (C1) değeri 0.1uF ve kapasitans (C1) ölçülürken indüktör (L1) değeri 10mH olmalıdır.
Devre Şeması ve Açıklama
Bu LC Metre devre şemasında, proje çalışmasını kontrol etmek için Arduino'yu kullandık. Bunda bir LC devresi kullandık. Bu LC devresi bir İndüktör ve bir kapasitörden oluşur. Sinüzoidal rezonans frekansını dijital veya kare dalgaya dönüştürmek için 741 adında operasyonel amplifikatör kullandık. Burada doğru çıkış frekansı elde etmek için op-amp'e negatif besleme uygulamalıyız. Bu yüzden ters polaritede bağlanmış 3v'luk bir pil kullandık, yani 741 negatif pini akü negatif terminaline ve akünün pozitif pini kalan devrenin toprağına bağlı demektir. Daha fazla açıklama için aşağıdaki devre şemasına bakın.
Burada, endüktans veya kapasitans ölçüyor olsak da , çalışma modunu değiştirmek için bir butonumuz var. LC devresinin frekansı ile endüktansı veya kapasitansı göstermek için 16x2 LCD kullanılır. LCD'nin parlaklığını kontrol etmek için 10k'lik bir pot kullanılır. Devre Arduino 5v besleme yardımı ile güçlendirilmiştir ve Arduino'ya USB veya 12v adaptör kullanarak 5v güç sağlayabiliriz.
Programlama Açıklaması
Bu LC Meter projesinin programlama kısmı çok kolaydır. Tam Arduino kodu bu makalenin sonunda verilmiştir.
Öncelikle LCD için kitaplık eklememiz ve bazı pinler ve makrolar bildirmemiz gerekiyor.
#Dahil etmek
Bundan sonra, kurulum işlevinde, ölçülen değerleri LCD ve seri monitör üzerinde göstermek için LCD ve Seri iletişimi başlattık.
void setup () { #ifdef serial Serial.begin (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (şarj, ÇIKIŞ); pinMode (mod, INPUT_PULLUP); lcd.print ("LC Metre Kullanımı"); lcd.setCursor (0, 1); lcd.print ("Arduino"); gecikme (2000); lcd.clear (); lcd.print ("Devre Özeti"); gecikme (2000); }
Ardından döngü işlevinde, LC devresini şarj edecek LC devresine sabit bir zaman periyodunda bir darbe uygulayın. Darbe kaldırıldıktan sonra LC devresi rezonansa başlar. Daha sonra op- amp'den gelen kare dalga dönüşümünü pulseIn () fonksiyonunu kullanarak okuyoruz ve bunu 2 ile çarparak dönüştürüyoruz. Burada da bundan bazı örnekler aldık. İşte böyle frekansı hesaplanır:
boşluk döngüsü () { for (int i = 0; i
Frekans değerini aldıktan sonra, verilen kod parçasını kullanarak bunları endüktansa dönüştürdük.
kapasitans = 0.1E-6; endüktans = (1. / (kapasitans * frekans * frekans * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef serial Serial.print ("Ind:"); eğer (endüktans> = 1000) { Seri baskı (endüktans / 1000); Serial.println ("mH"); } else { Serial.print (endüktans); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); eğer (endüktans> = 1000) { lcd.print (endüktans / 1000); lcd.print ("mH"); } else { lcd.print (endüktans); lcd.print ("uH"); } }
Ve verilen kodu kullanarak kapasitansı hesapladık.
eğer (Bit.flag) { endüktans = 1.E-3; kapasitans = ((1. / (endüktans * frekans * frekans * 4. * 3.14159 * 3.14159)) * 1.E9); eğer ((int) kapasitans <0) kapasitans = 0; #ifdef serial Serial.print ("Kapasitans:"); Seri baskı (kapasite, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("Başlık:"); eğer (kapasitans> 47) { lcd.print ((kapasitans / 1000)); lcd.print ("uF"); } else { lcd.print (kapasite); lcd.print ("nF"); } }
Böylece Arduino'yu kullanarak frekansı, kapasitansı ve Endüktansı bu şekilde hesapladık ve 16x2 LCD'de gösterdik.