Miernik LC na mikroprocesorze PIC16F84A
Szukając rozwiązań miernika pojemności i indukcyjności w Internecie trafiłem na stronie
Phila Rice VK3BHR
na rozwiązanie, które najbardziej przypadło mi do gustu. Po niewielkich poprawkach kodu
i przetłumaczeniu komunikatów na język polski zbudowałem swoją wersję miernika. Poniżej przedstawiam jego pełny opis.
Parametry miernika
Zakres pomiarowy:
- pojemności: od 0 do >100nF (mierzyłem nawet kondensatory 470nF)
- indukcyjności: od 0 do >10mH
Dokładność pomiaru: +/- 1% (w dużym stopniu zależy od kondensatora wzorcowego)
Rozdzielczość pomiaru: +/- 0.1pF i +/- 10nH
Zasada pomiaru pojemności i indukcyjności
Wszystkie rozwiązania mierników pojemności i indukcyjności na mikroprocesorach, które udało mi się znaleźć,
działają na tej samej zasadzie: pomiaru częstotliwości generatora, która zależy od podłączonego mierzonego kondensatora lub indukcyjności.
Wcześniej mierzona jest częstotliwość samego generatora oraz częstotliwość generatora po podłaczeniu kondensatora wzorcowego Ccal o znanej pojemności.
Nie będę tutaj podawał wzorów końcowych, które służą do obliczenia wartości podłączonego mierzonego kondensatora lub cewki (można je znaleźć na stronie VK3BHR),
ale znając te trzy częstotliwości i wartość kondensatora Ccal można obliczyć pojemność lub indukcyjność mierzonych elementów. Ponieważ wartość Ccal jest używana do obliczeń, ten element musi być
dobrej jakości i bardzo dokładny.
Opis rozwiązania
Układ miernika składa się z dwóch części funkcjonalnych: generatora i częstościomierza. Generator
zbudowany jest na układzie komparatora LM311. Przebieg z wyjścia generatora doprowadzony jest do mikroprocesora PIC16F84 (lub 16F84A), który oprócz pomiaru częstotliwości i wykonywania niezbędnych obliczeń steruje również
procesem kalibracji miernika oraz 16-to pozycyjnym wyświetlaczem LCD.
Schemat miernika przedstawiony jest powyżej. Przy właczeniu miernika procesor mierzy częstotliwość generatora z elementami C9 i L1.
Następnie wysterowuje przekaźnik RL1 podłączający równolegle do C9 wzorcowy kondensator C10 (Ccal) i mierzy częstotliwość drgań z tym kondensatorem.
Jeśli dokonywany jest pomiar pojemności, wejście RB7 procesora (pin 13) znajduje sie w stanie wysokim, cewka L1 podłączona jest do masy,
a mierzony kondensator podłączany jest równolegle do C9. Wtedy procesor mierzy trzecią częstotliwość generatora i na tej podstawie oblicza wartość mierzonej pojemności.
Przy pomiarze indukcyjności port RB7 procesora jest zwarty do masy, a mierzona cewka włączana jest w szereg z cewką L1.
Ponieważ, jak już wczesniej wspomniałem, wynik końcowy pomiaru jest obliczany na podstawie trzech częstotliwości i wartości kondensatora C10, wartości C9 i L1 nie są krytyczne.
Kondensatory C11 i C12 służą do dokładnej kalibracji miernika, jeśli nie dysponuje się bardzo dokładnym kondensatorem C10.
Kilka słów na temat zworek (JP1-JP3). JP3 służy do przełączania sposobu sterowania wyświetlacza LCD. 90% wyświetlaczy 1x16 ma organizację 2x8 i wtedy zworka JP3 powinna być zwarta (można w zasadzie zrezygnować z tej zworki i pin 10 procesora od razu zewrzeć do masy). Jeśli mamy wyświetlacz z organizacją 2x8 i nie zewrzemy pinu 10 do masy, na wyświetlaczu nie będzie nic wyświetlane na jego pierwszych 8 pozycjach.
Zworki JP1 i JP2 są wykorzystywane tylko przy uruchamianiu miernika. Po zwarciu JP1 i naciśnięciu przycisku Reset (lub właczeniu zasilania miernika) procesor działa jak zwykły miernik częstotliwości z bramkowaniem 0.1 s. Z cewką L1 i kondensatorem C9 częstotliwość generatora powinna wynosić ok. 550kHz - na wyświetlaczu pokaże się wartość 00055000. Jeśli częstotliwość będzie zbyt wysoka (powyżej 655.350 kHz) na wyświetlaczu pokaże się komunikat "Over range".
Jeśli generator nie działa, na wyświetlaczu bedzie '0'. Dla najlepszej dokładności pomiaru częstotliwość powinna być o ok. 10-15% niższa do 655kHz.
Następnie należy zewrzeć drugą zworkę. Powoduje ona podłączenie do obwodu drgającego kondensatora wzorcowego C10. Wyświetlana częstotliwość powinna wynosić ok. 394kHz (00039400).
Płytka drukowana miernika została zaprojektowana programem Eagle. Została przygotowana pod plastikową obudowe o symbolu Z73.


Obszar zakratkowany musi być usunięty. Jest to miejsce na baterię 9V oraz na wewnętrzne elementy obudowy.
Wyświetlacz LCD mocowany jest od strony druku. Nieco skomplikowane jest mocowanie przełaczników. W płytce należy zrobić wycięcia odpowiadające wymiarom przełaczników, a po zamocowaniu płytki i przełączników do obudowy podlutować końcówki przełączników od odpowiednich punktów na płytce. Podobnie należy podłaczyć punkty pomiarowe X1 i X2.
Wnętrze miernika po zmontowaniu wygląda następująco:

Jako gniazda pomiarowe wykorzystałem dwa gniazda bananowe oraz fragment złoconego złącza ze starej płytki do komputera. Praktycznie korzystam tylko z tego drugiego rozwiązania (szczególnie przy elementach SMD) i konstruując kolejną wersję miernika zrezygnowałbym z gniazd bananowych na rzecz kawałka podstawki precyzyjnej, do której możnaby wtykać mierzone elementy.
Obsługa miernika
Po włączeniu zasilania odbywa sie kalibracja miernika. W czasie jej trwania na wyświetlaczu widoczny jest napis "Kalibracja".

Ponieważ kalibracja odbywa się przy ustawieniu przełącznika rodzaju pracy na pomiar pojemności, to jeśli po włączeniu miernik stwierdzi złe ustawienie przełącznika, pojawi się napis: "Przelacz na C".

Po przełączeniu na pomiar pojemności automatycznie rozpoczyna się kalibracja i miernik jest gotowy do pomiaru pojemności. Wyświetlacz wygląda wtedy następująco:

Przełączenie na pomiar indukcyjności powoduje zmianę tego napisu na "Podlacz cewke":

Mirek SP6NVO wykonał swoja wersje miernika LC. Poniżej kilka zdjęć tego miernika.




Pliki do pobrania:
 |
Schemat miernika LC wykonany w programie Eagle v.4.14 [62 kB]
|
|
 |
Płytka drukowana miernika LC wykonana w programie Eagle v.4.14(uwaga: na rysunkach powyżej nie widać przepinek, które trzeba wykonać na płytce). [13 kB]
|
|
 |
Płytka i schemat w formacie PDF. [483 kB]
|
|
 |
Pliki źródłowe (asm, hex) miernika - zarówno oryginalne plik żródłowe od Phila VK3BHR, jak i pliki z moimi poprawkami. W pliku znajduje się też moduł zmiennoprzecinkowy potrzebny podczas kompilacji programu. [23 kB]
|
|
|