LC metre projesi PIC18F252 ile gerçekleştirilmiş 2×16 lcd ekran ile görüntüleme yapılıyor. Büyük kapasitelerin, ESR ve düşük dirençlerin ölçümü: Devrenin bu kısmı iki sabit akım kaynağından oluşur – yaklaşık 100 mA ve 100uA, ölçülen kapasitörü boşaltmak için bir güç FET ve farklı kazançlara sahip üç çalışma amplifikatörü – bağlı olan 1: 1, 1:10 ve 1: 100 üç mikrodenetleyici analog girişi. Böylece, altı büyüklük derecesinde eşit derecelerde ölçmeyi mümkün kılan toplam altı ölçüm seçeneği vardır. Mikrodenetleyici, uygun olanı bulana kadar her kombinasyonun ölçümü sırasında otomatik olarak geçiş yapar.
Kapasiteyi ölçerken, önce kapasitör deşarj olur, ardından güç kaynağı açılır. Mikrodenetleyici, değer sıfırdan kopana kadar seçilen girişteki voltajı periyodik olarak ölçer. Bu noktadan itibaren zaman ölçülür ve şarj zamanlayıcı taşana veya A/D dönüştürücü üst sınırı aşana kadar devam eder. Ölçülen değerler makul ise, kapasite bunlardan hesaplanır. Bunlardan biri çok küçükse (diğeri maksimuma ulaştığında), cihaz farklı bir aralık seçer ve ölçümü tekrarlar.
ESR ölçülürken, kapasitör deşarj olur ve şarj edilir. Belirli bir değere ulaşıldığında, voltaj ölçülür, güç kaynağı kapatılır ve voltaj tekrar ölçülür. Bunun nedeni, şarj sırasında akım şarj edildiğinde, terminallerdeki voltajın, seri dirençteki (ESR) voltaj düşüşüyle daha yüksek olmasıdır. Şarj olmazsa, akım geçmez ve kapasitörün şarj olduğu voltajı ölçeriz. Bu yöntem, örneğin 100uF’den gelen kapasitörlerin ESR’sini güvenilir bir şekilde ölçer.
Düşük dirençlerin ölçülmesi önemsizdir. Akım geçtikçe terminallerdeki voltaj düşüşünü ölçmeniz yeterlidir.
LC metre Kullanım talimatları
Açma/kapama düğmesini kullanarak devreyi çalıştırın. Farklı aralıklar arasında seçim yapmak için kontrol düğmesine kısaca basın:
kapasite ölçümü [pF] – [uF]
endüktans ölçümü [uH] – [H]
kapasite ölçümü [uF] – [F] + ESR ölçümü [mOhm] – [Ohm]
direnç ölçümü [mOhm] – [kOhm]
Küçük kapasitansları ve endüktansları ölçerken, ikinci satırdaki cihaz osilatörün salındığı frekansı gösterir. Sıfır varsa, bir şeyler yanlış
Kontrol düğmesine uzun süre basarak, o anda seçili olan aralığa sıfır ayarlamak mümkündür. Endüktansları ve dirençleri ölçerken girişi kısa devre yapın, kapasitörleri ölçerken girişi açık bırakın. Cihaz yeni sıfır değerini kaydeder. Elektrolitik kapasitörleri ölçerken, sıfır ayarı sadece ESR değeri ölçümü için geçerlidir, bu aralıktaki kapasitans ölçümünü kalibre etmek mümkün değildir.
Cihazı açarken kontrol düğmesini basılı tutarsanız, cihazın işlevlerini kontrol etmenizi sağlayan tanı menüsüne girersiniz. Teşhis menüsünde düğmesine basarak modlar arasında geçiş yapmak mümkündür:
100uA akım kaynağının kontrolü
akım kaynağının kontrolü 100mA
deşarj devresi kontrolü
Cihaz terminallerine bir ampermetre bağlayın ve 100mA ve 100uA test akımı değerlerini kontrol edin. Alt satırda A/D dönüştürücüler tarafından ölçülen değerler gösterilmektedir. İşlevlerini test etmek için reostata paralel olarak cihazın terminallerine bir voltmetre bağlayın ve yük değerini değiştirin. Son test deşarj devresini kontrol etmektir – hem güç kaynağını hem de deşarj devresini açarak çalışır. Bağlı deşarj FET’indeki voltajı ölçmek için bir voltmetre kullanmalısınız – bu sıfır olmalıdır. Alt satırdaki üç A / D dönüştürücüsünün tümü de sıfır görüntülemelidir. Tanılama menüsünden çıkmak için cihazı kapatın.
10MHz kristal kullanır, işlemci saat frekansını 40MHz ile çarpar. Bir komut dört saat veya 100 ns sürer – zamanlayıcı bölücülerinin ve zaman hesaplamalarının ayarının bağlı olduğu. EEPROM’daki değerleri başlatmaz – ilk kez açarken, tüm aralıklarda sıfır ayarlama yapmanız gerekir, aksi takdirde gözlerinizin geçeceği değerleri ölçersiniz.
Hesaplanacak sabitler lc_metr.c dosyasının başında bulunabilir:
// kalibrasyon değerleri: const float low_current = 98.5; düşük akım kaynağı [uA] const float high_current = 91600.0; yüksek akım kaynağı [uA] // A / D dönüştürücü çözünürlükleri: const float low_ad_res = 51.1056511056511; const float mid_ad_res = 500.616522811344; const float high_ad_res = 5033.93665158371;
İndüktansları ve küçük kapasitansları ölçmek için devrelerdeki osilatörler için, bilinen değere sahip bir bileşen ölçülerek düzeltilen hesaplama ile programda kullanılan sabitlere ulaştım. Programda aşağıdaki değerler düzeltilmelidir:
sabit şamandıra lc_Q = 2676852,091; const float rc_Q = 318309.88614;
Küçük kapasiteleri ölçerken ölçülen değerin hesaplanması, sabit rc_Q değerinin ölçülen frekansa bölünmesini ve ardından osilatörün bir parçası olan kapasitansı temsil eden rc_Cp sabitinin çıkarılmasını içerir. Sabit rc_Cp, düğmeye uzun basılarak cihaz sıfırlanarak düzeltilebilir. Yeni değer EEPROM’da saklanır. Bu nedenle, besleme kablolarının kapasitesi de bu sabitte yer almaktadır. Kalibre etmek için aşağıdakileri yapın: Kondansatör bağlı olmadan cihazı sıfırlamak için düğmeye uzun basın. Ekranın alt satırında yaklaşık 250 kHz olması gereken osilatör frekansı gösterilir. Kapasite 1uF kapasitör bağlayın (başka bir cihazla doğru bir şekilde ölçebilme imkanımız varsa, daha iyi). Görüntülenen frekans yaklaşık 300Hz’ye düşmelidir. Bağlı kapasitörün gerçek değeri cihaz tarafından gösterilen değere bölünür ve rc_Q sabitinin orijinal değeri ile çarpılır. Bu yeni rc_Q değeri ile kodu yeniden derliyoruz, işlemciyi programlıyoruz ve kontrol veya daha fazla ayrıntılandırma için kalibrasyon prosedürünü tekrarlıyoruz.
Endüktans ölçümündeki ölçülen değerin hesaplanması, lc_Q sabitinin ölçülen frekansın karesine bölünmesini ve sonra osilatörün bir parçası olan endüktansı temsil eden lc_Ls sabitinin çıkarılmasını içerir. Sabit lc_L’ler, düğmeye uzun basılarak cihaz sıfırlanarak düzeltilebilir. Yeni değer EEPROM’da saklanır. Bu nedenle, besleme kablolarının endüktansı bu sabitte yer alır. Cihazı kısa devre güç kablolarıyla sıfırlamak için düğmeye uzun basın. Ekranın alt satırında yaklaşık 250 kHz olması gereken osilatör frekansı gösterilir. Onlarca H’ye kadar bir endüktans bobini bağlarız. Böyle bir boğucu olmayabilir, ancak daha küçük bir transformatör kullanabiliriz. Böyle bir transformatör, birkaç H’nin birincil sargı endüktansına sahip olacaktır ve kolayca ölçülebilir. Görüntülenen frekans yüzlerce Hz’e düşmelidir. Bağlı endüktansın gerçek değerini cihaz tarafından gösterilen değere bölün ve lc_Q sabitinin orijinal değerini sonuçla çarpın. Lc_Q’nun bu yeni değeri ile kodu yeniden derliyoruz, işlemciyi programlıyoruz ve kontrol veya daha fazla ayrıntılandırma için kalibrasyon işlemini tekrarlıyoruz.
Baskılı devre kartındaki uygulamada programlama için pimler vardır. Ancak, ekran bu pimlere de bağlıdır. Başarılı programlama için ekranın bağlantısı kesilmelidir.
LC metre devresine ait kaynak MPLABX kodları ve eagle cad pcb şema çizimleri var.
Kaynak: k15.kreteni.cz/lcmetr.php
Şifre-Pass: 320volt.com
Yayım tarihi: 2020/02/17 Etiketler: microchip pic projeleri, pic18f252
merhaba
ürün dosyaları derlenmiyor.
merhaba,
derleyicinin verdiği hatayı yazarsanız belki bir çözüm bulunabilir
lc_meter.c:708:16: error: __interrupt attribute parameter ‘1’ is invalid
lc_meter.c:708:16: warning: GCC does not allow ‘picinterrupt’ attribute in this position on a function definition [-Wgcc-compat]
eeprom.c:15:21: warning: unsupported: The Read_b_eep routine is no longer supported. Please use the MPLAB X MCC.
Çeviriye göre versiyon sorunu var
lc_meter.c: 708: 16: hata: __interrupt özellik parametresi ‘1’ geçersiz
lc_meter.c: 708: 16: uyarı: GCC, bir işlev tanımı üzerinde bu konumda “picinterrupt” özelliğine izin vermiyor [-Wgcc-compat]
eeprom.c: 15: 21: uyarı: desteklenmiyor: Read_b_eep yordamı artık desteklenmiyor. Lütfen MPLAB X MCC’yi kullanın.
configurations.xml dosyasına göre yazılım mplab xc8 v1.30 ile hazırlanmış aynı versiyon ile deneyin veya desteklenmeyen bölümleri yeni versiyona göre güncelleyin
microchip.com/development-tools/pic-and-dspic-downloads-archive sayfasında eski mplab sürümlerini bulabilirsiniz
lc_meter.c:708:16: error: __interrupt attribute parameter ‘1’ is invalid
sadece hata mesajı yazdınız tahminen yazdıklarımı okumadınız veya okuyup eski versiyonu kurup denediniz ve şuan 1 hata görünüyor ?
neyse düzenlenmiş yazılım dosyaya eklendi dosyayı tekrar indirin “new” klasöründe ki kodları deneyin
iyi çalışmalar
Gevv ekran yenilenmedi için yorumunu görmedim iki kere mesaj atmış oldum özür dilerim. Teşekkür ederim bu arada yardımın için. Bugün deneyeceğim.
Gevv çok teşekkür ederim derledi derleyici. Sorun neymiş merak ettim.
Merhaba,
kodu mplab xc8 v1.30 ile sorunsuz derlediniz fakat yeni mplab x sürümlerin de bazı komutlar değişmiş. zaten sorunun kaynağı hata meseajlarında yazıyor
yazara durumu bildirdim sağ olsun kodu yeni sürüme göre güncelleyip gönderdi (devre üzerinde test etmemiş)
iki kodu karşılaştırıp nelerin değiştiğini bulabilirsiniz diffchecker.com sitesi yazıları karşılaştırıp değişenleri gösterir
durum bu
iyi çalışmalar