Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Miernik pojemności/indukcyjności (PIC16F628)

RomanWorkshop 18 Apr 2018 14:20 5616 22
Altium Designer Computer Controls
  • Miernik pojemności/indukcyjności (PIC16F628)

    Jest to moja wersja tego dość znanego miernika LC, wykonana na podstawie artykułu opublikowanego w angielskim piśmie "Everyday Practical Electronics" 3/2010 (strona 10, autor Jim Rowe). Miernik umożliwia pomiar pojemności do 800nF (maksymalna rozdzielczość 0.1pF) oraz indukcyjności do 80mH (maksymalna rozdzielczość 0.01uH). Bez kalibracji miernik jest tylko testerem, który pozwala wykryć uszkodzenie i oszacować wartość badanego elementu (szereg znamionowy). Po skalibrowaniu wskazań dokładność miernika jest wystarczająca do amatorskich zastosowań. Jednak nie można tu mówić o dużej dokładności pomiarów rzędu 1-2%, co często jest podawane w opisach podobnych konstrukcji. Dodatkowo pod koniec zakresów pomiarowych, pojawiają się największe błędy wskazań.

    Wszystkie informacje są prezentowane na wyświetlaczu LCD 2x16 znaków (używana jest tylko górna jego linia). Przełącznikiem S3 wybiera się pomiar pojemności lub indukcyjności, a zakresy mierzonej wielkości zmieniają się automatycznie. Przycisk (mikrostyk) S2 (ZERO) służy do zerowania pojemności/indukcyjności montażowej miernika. Zworki J1/J2 pozwalają na wyświetlenie częstotliwości F2/F1 z generatora pomiarowego, a J3/J4 umożliwiają kalibrację wskazywanych przez miernik wartości pojemności/indukcyjności. Pomiar badanego elementu jest szybki i trwa ok. 1s.

    W archiwum z projektem znajduje się wsad (HEX) z poprawioną przeze mnie wersją oprogramowania sterującego. W programie opracowanym przez autora wspomnianego artykułu, dokonałem następujących modyfikacji:
    Zmieniłem ustawienia mikrokontrolera (Config Word) z CP:OFF/CPD:OFF/LVP:OFF/BOREN:ON/MCLRE:ON/FOSC:HS/PWRTE:ON/WDTE:OFF ($3F62) na CP:OFF/CPD:OFF/LVP:OFF/BOREN:OFF/MCLRE:ON/FOSC:XT/PWRTE:ON/WDTE:OFF ($3F21).
    Dodałem kilka komunikatów i przeniosłem je z pamięci EEPROM (nie mieściły się w 128 bajtach) do pamięci FLASH mikrokontrolera (jako instrukcje RETLW). Teraz w pamięci EEPROM są zapisane tylko 2 bajty z wartością kalibracyjną (domyślnie Ccal = 1000.0pF = 10000 = $2710), korygującą odczyt pojemności/indukcyjności.
    Po zwarciu zworki J1/J2 była wyświetlana częstotliwość F2/F1 z generatora pomiarowego w formacie "000xxxxx". Teraz jest to format "000xxxxx0 Hz" (rzeczywista wartość częstotliwości).
    Jeśli częstotliwość F1/F2 z generatora pomiarowego była wyższa niż 655359 Hz, pojawiał się napis "Over Range". Teraz jest to napis "F1/F2 > MAX".
    Jeśli częstotliwość F3 z generatora pomiarowego była niższa niż 2560 Hz lub wyższa niż 655359 Hz, pojawiał się napis "Over Range". Teraz jest to napis, odpowiednio: "Connect L" i "F3 > MAX".

    Po wlutowaniu wszystkich elementów w typowej kolejności, programujemy mikrokontroler poza płytką miernika, ponieważ nie udało mi się pomieścić na niej złącza ICSP (In-Circuit Serial Programming) do programowania w systemie. Napięcie programowania VPP dla mikrokontrolera PIC16F628(A) wynosi 12.75-13.25V (maksymalnie 14V). Przy wyłączonym napięciu zasilania wkładamy zaprogramowany mikrokontroler w podstawkę, która jest odwrócona o 180 stopni (do góry nogami). Następnie włączamy zasilanie i potencjometrem P1 ustawiamy odpowiedni kontrast na wyświetlaczu LCD tak, aby znaki były dobrze widoczne. Kolejnym krokiem jest wyzerowanie i przeprowadzenie kalibracji miernika, która polega na ustawieniu identycznych wskazań z pomiaru kondensatora 10nF/cewki 10mH na fabrycznym multimetrze. Po kalibracji wartość korygująca wskazania miernika (Ccal), zostanie zapisana w pamięci EEPROM mikrokontrolera. Natomiast w dalszym ciągu konieczne będzie zerowanie miernika przyciskiem S2, gdy jego pojemność montażowa będzie różna od 0.

    Miernik można zasilać napięciem stałym DC=7-12V z zasilacza lub z baterii/akumulatorów, ale nie z tych dwóch źródeł jednocześnie. Dioda D1 zabezpiecza miernik przed odwrotnym podłączeniem napięcia zasilania (występuje na niej spadek 300mV przy prądzie do 100mA). Modelowy miernik z niebieskim wyświetlaczem LCD z podświetleniem przy napięciu zasilania DC=9V, pobierał prąd od 23.5mA w stanie spoczynku/pomiaru do 32.5mA przy zwartej zworce J1 (bez wyświetlacza LCD było to, odpowiednio: od 7.5 do 16.5mA). Ponieważ użyty stabilizator U2 jest typu LDO (Low Drop-Out), miernik może poprawnie pracować przy minimalnym napięciu zasilania DC=6.3V. Jednak bateria 9V o takim napięciu wyjściowym nie nadaje się do dalszej eksploatacji, gdyż jest zbyt rozładowana i nie zapewnia odpowiedniej wydajności prądowej.

    Miernik zmontowałem na płytce dwustronnej o wymiarach 82x60 mm (6 przelotek), wykonanej metodą transferu chemicznego. W rogach płytki znajdują się cztery otwory montażowe o średnicy 3 mm, dzięki którym miernik można przykręcić do obudowy lub zamontować w nich jakieś nóżki w przypadku braku obudowy. Dwa dodatkowe otwory 3 mm na środku płytki służą do przymocowania tulejek dystansowych (wysokość 11-12 mm), do których można przykręcić wyświetlacz LCD. Płytka jest tak zaprojektowana, aby miernik mógł być używany zarówno po zamontowaniu w obudowie, jak i bez niej. Ponadto na płytce znajdują się pola, które służą do pomiaru elementów SMD (trzeba je pocynować). Miernik można również zmontować na płytce jednostronnej (3 zworki) o takich samych wymiarach, ale bez pól do badania elementów SMD.

    Miernik pojemności/indukcyjności (PIC16F628) Miernik pojemności/indukcyjności (PIC16F628)

    Wstępnie gotowy schemat miernika powstał ponad rok temu. Niestety po dłuższej przerwie w pracach zapomniałem i później przeoczyłem, że linie "E" i "RS" wyświetlacza LCD nie są połączone z mikrokontrolerem. Fakt ten zauważyłem dopiero po wykonaniu modelowego miernika, gdy na wyświetlaczu nic się nie pojawiało. Dlatego na zdjęciu dolnej warstwy płytki, widać dwa czerwone kabelki korygujące ten błąd. Oczywiście udostępniony projekt jest już poprawiony.

    Porównałem wyniki pomiarów modelowego miernika (skalibrowanego i wyzerowanego) z fabrycznym multimetrem LC Mastech MY6243. Dawniej, gdy fabryczne mierniki indukcyjności były drogie i niezbyt dostępne, opisywana konstrukcja była atrakcyjna przy braku alternatyw. Jeśli dziś myśli się o uzyskaniu realnych wskazań, to lepiej kupić najtańszy multimetr z pomiarem indukcyjności (np. UNIT UT602/603 lub wspomniany Mastech MY6243). Natomiast sens budowy opisywanego miernika jest na pewno edukacyjny, no i zyskuje się tani, choć niezbyt dokładny miernik indukcyjności.

    Schemat w Eagle, płytki w DipTrace, wsad, wyniki pomiarów i szczegółowa dokumentacja, znajdują się w dołączonym archiwum oraz na stronie projektu: Link.

    PICmet.7z Download (847.02 kB)

    Cool? Ranking DIY
    About Author
    RomanWorkshop
    Level 12  
    Offline 
    RomanWorkshop wrote 137 posts with rating 208. Been with us since 2013 year.
  • Altium Designer Computer Controls
  • #2
    Anonymous
    Level 1  
  • #3
    RomanWorkshop
    Level 12  
    Quote:
    Obok zasilacza electronics-lab jeden z najczęściej kopiowanych układów.
    Nie zapominaj o testerze elementów elektronicznych ;)

    Quote:
    Patrząc na różne klony zastanawia mnie dlaczego do kalibracji używany jest dodatkowy kondensator włączany stykiem równolegle do tego roboczego? Nie wystarczy kalibracja z użyciem jednego?
    Dodatkowy kondensator, czyli C11 (Ccal), a roboczy to C10? Jest to niezbędne do obliczenia nieznanych wartości L1 i C10. Wartość C11 jest zapisana w EEPROM (domyślnie 1.000nF), a jej zmiana wpływa na wyniki pomiarów i służy do kalibracji wskazań miernika.

    Quote:
    Skąd biorą się te błędy i dlaczego nie próbowałeś ich pokonać?
    Nieliniowość generatora, zakłócenia, błędy pomiaru częstotliwości - nikt tego nie pokona ;)

    Quote:
    De facto ten miernik jest miernikiem częstotliwości, może dobrze byłoby zastosować jakiś szybszy procesor i uniknąć w ten sposób magicznej granicy w okolicy 600kHz?
    Szybszy mikrokontroler nie jest potrzebny, bo to generator pomiarowy jest ograniczeniem. Niektóre wersje miernika używają zewnętrznego komparatora LM311, ale to niczego nie zmienia. Nawet gdyby poszerzyć zakres częstotliwości generatora, to błędy pomiarów elementów byłyby jeszcze większe.

    Quote:
    Piszesz o tym, że pomiar trwa szybko bo 1s, ale trudno się z tym zgodzić.
    Przykładam element i widzę jego wartość, jak dla mnie to jest szybko.

    Quote:
    Uważam, że po pewnych modyfikacjach można wycisnąć więcej z koncepcji tego miernika, stosując inny procesor i ewentualnie szybszy (zewnętrzny) komparator.
    Myślę, że na takiej zasadzie pomiaru nic więcej się nie uzyska, ale zawsze możesz spróbować.
  • #4
    Anonymous
    Level 1  
  • #5
    RomanWorkshop
    Level 12  
    Na schemacie jest pojemność nominalna, a nie rzeczywista (C10 nie równa się C11). Poza tym pojemność C10/C11 zmienia się wraz ze zmianą temperatury. Nawet zmiana pojemności o 1pF robi różnicę dla częstotliwości wyjściowej z generatora i wpływa na wyniki obliczeń. Użyłem zwykłych MKT, bo takie są dopuszczalne w różnych opisach i chciałem sprawdzić, czy da się z nimi normalnie używać miernika - da się.
  • Altium Designer Computer Controls
  • #6
    Urgon
    Level 38  
    AVE...

    C11 pozwala nie tylko skalibrować pojemność C10, ale też pojemności (i indukcyjności) pasożytnicze. Miałem budować ten układ, ale nie znalazłem nigdzie dobrego kandydata na C11. Za to znalazłem lepszy miernik pojemności...
  • #7
    szeryf3
    Level 26  
    Powiedz mi jaki jest koszt złożenia tego miernika.

    Urgon szkoda, że mój angielski jest taki ubogi.
  • #8
    RomanWorkshop
    Level 12  
    Quote:
    Miałem budować ten układ, ale nie znalazłem nigdzie dobrego kandydata na C11. Za to znalazłem lepszy miernik pojemności...
    Widziałem ten miernik, ale chciałem zbudować coś również z pomiarem indukcyjności. Parametry niezłe, ciekawe czy dało by się zbudować podobny na zakres indukcyjności. Niestety na stronie nie widzę kontaktu do mojego imiennika. Dobrym kandydatem na C11 są stare kondensatory 1000p/1% z radzieckich telewizorów kolorowych (na układach scalonych).

    Miernik pojemności/indukcyjności (PIC16F628)

    Na zdjęciu mój egzemplarz, wyprodukowany prawdopodobnie w 11 tygodniu 1989 roku. Jego aktualna pojemność to 1.019nF. Nie jest tak podatny na zmianę temperatury, jak typowy KS/MKT.

    Quote:
    Powiedz mi jaki jest koszt złożenia tego miernika.
    W zależności od ceny części, ale myślę że do 40-50 zł.
  • #9
    Fimek
    Level 15  
    Cześć,

    też zrobiłem klon tego miernika, jeszcze na 80C51. Koncepcja taka sama.Kondensatorów użyłem jakichś dziwnych, starych, ale o świetnych parametrach i pojemności około 1.629 nF.

    Dla czytających, którzy mają wątpliwości odnośnie precyzji miernika: ten dodatkowy kondensator i poprawnie zaimplementowana kalibracja na zakresie pojemności i indukcyjności (nie wiem jak to jest u Ciebie, u mnie zero jest całkiem przyzwoicie trzymane przy pomiarze i pojemności, i indukcyjności) powodują, że miernik świetnie się nadaje do pomiaru pikofaradów oraz mikro- i nanohenrów. Z większymi pojemnościami i indukcyjnościami dobrze sobie daje radę byle jaki trochę lepszy multimetr i moim zdaniem miernik wówczas nie jest potrzebny. Druga problematyczna sprawa to pomiar indukcyjności generalnie: miernik oscyluje na kilkuset kilohercach co znacznie wpływa na parametry w cewek z rdzeniem. Pomiar jest oczywiście dokładny (w ramach danej częstotliwości pomiarowej), ale parametry będą inne w docelowej aplikacji, np. w przetwornicy gdzie cewka pracuje na innej częstotliwości i jest jakiś prąd "podkładu".

    Ogólnie: polecam taki miernik. Jeszcze bardziej polecam pogłowienie się samodzielnie nad softem - wówczas zobaczycie jak błyskotliwa przyświeca tutaj idea ;)

    U Ciebie, RomanWorkshop, brakuje mi trochę auto-power off - taki must-have w przyrządach przenośnych (ale widze u Ciebie gniazdo pod zasilacz, więc w sumie nie problem; u mnie dzięki wyłączaniu zasilania, ta sama bateria od 8 lat). Do tego zarówno kalibrację, jak i przełączenie Lx/Cx zrobiłbym na przekaźniku bistabilnym i sterowane obydwoma funkcjami z menu, ale skoro działa i tak jest w oryginale, to nie będę się czepiał.

    Poza tym wykonanie w porządku, bardzo kompleksowa dokumentacja i do tego budzący zaufanie placek masy ;)

    Pozdrawiam
    Fimek
  • #10
    Anonymous
    Level 1  
  • #11
    RomanWorkshop
    Level 12  
    Quote:
    Skoro C10 nie równa się C11 to dlaczego użyłeś tych samych kondensatorów?
    To są tylko wartości nominalne, nie widzisz różnicy między wartością zakładaną, a rzeczywistą? Myślisz, że jak masz dwa kondensatory 1nF, to one mają jednakową pojemność co do 1pF? Niestety tak nie jest.

    Quote:
    Wykorzystanie wzorów 4 i 5 pozwala na pozbycie się indukcyjności podczas obliczenia pojemności.
    Znalazłeś stronę z dokładnym opisem i wzorami, a dalej nie rozumiesz zasady działania tego miernika. Podczas obliczeń nie możesz niczego pominąć, bo każde kolejne obliczenie bazuje na wcześniejszych. We wzorze #4 masz częstotliwość f1/f2, którą oblicza się na podstawie wartości elementów L i C obwodu rezonansowego.

    Quote:
    Gdzie tu sens i logika?
    Nima ;)
  • #12
    Anonymous
    Level 1  
  • #13
    RomanWorkshop
    Level 12  
    Quote:
    Po pierwsze f1/f2 to nie częstotliwość tylko współczynnik bez jednostki (...)
    Quote:
    Częstotliwości f1 i f2 są znane bo zostały zmierzone.
    Nic nie rozumiem.

    W tym mierniku nic nie jest stałe i wszystko się zmienia (wartości elementów, częstotliwości F1/F2). Nie możesz czegoś raz zmierzyć i używać w dalszych obliczeniach, bo wyniki odpłyną w kosmos. Jeśli nie wykonasz wszystkich obliczeń według odpowiednich wzorów i w kolejności, to nie uzyskasz prawidłowego wyniku.

    Quote:
    (...) po drugie nie obliczam nic na podstawie wartości L bo została ona wyrugowana ze wzoru.
    Quote:
    Można się pozbyć jednego z C i zostawić dwa równania z dwiema niewiadomymi Cx i L.

    Może od razu pominąć cały generator pomiarowy LC (nie będzie w ogóle obliczeń)? Pomysł z pomijaniem jakiegoś kondensatora/cewki jest kompletnie bez sensu - najpierw zrozum zasadę działania tego miernika. Tyle ode mnie w tej kwestii.
  • #14
    Anonymous
    Level 1  
  • #15
    Urgon
    Level 38  
    AVE...

    @acctr
    Układ generatora poza kondensatorem C10 i cewką L1 ma nieznanej wartości pojemności i indukcyjności Cp, Cs, Lp i Ls. Nie zmierzysz tych wartości "w układzie" i nie uwzględnisz w programie. Ponadto wszystkie pojemności będą "pływać" w zależności od temperatury i wilgotności powietrza. Dlatego autor tego układu w programie umieścił tylko zbliżoną wartość C10 i L1, i dodał kondensator C11 o znanej pojemności, dużej precyzji i stabilności temperaturowej. Nie musimy znać dokładnych wartości elementów z wyjątkiem C11. Znając wartość Δf dla pomiarów bez i z kondensatorem 1000pF można obliczyć wartość nieznanego kondensatora Cx lub indukcyjności Lx na podstawie wartości Δf dla pomiaru bez i z dołączonym badanym elementem. Program musi tylko wiedzieć, czy liczy Cx czy Lx.

    Tak samo działa miernik pojemności Romana Blacka: generator RC z precyzyjnym rezystorem pracuje z częstotliwością f1. Po dołączeniu kondensatora Cx równolegle z kondensatorem w obwodzie RC generatora układ pracuje z częstotliwością f2. Δf = ΔC, przy czym program zakłada, że bez dołączonego kondensatora Cx C ma wartość 0000,00pF. Reszta to obliczenia wartości ze wzorów na podstawie Δf. Dodatkowo można ten miernik "wyzerować" gdy Cx jest dołączony, co po jego odłączeniu daje wartość ujemną pojemności - to pozwala w szybki i łatwy sposób dobrać identyczne kondensatory...
  • #16
    Anonymous
    Level 1  
  • #17
    władziowek
    Level 21  
    Witam,
    ja tak w kwestii formalnej co do płytki, nie szło przepchać ścieżki masy między nogami procka?
  • #18
    RomanWorkshop
    Level 12  
    Quote:
    Ale jeśli robimy kalibrację i za 1 sekundę pomiar traktujemy je jako stałe.
    Zerowanie trzeba przeprowadzać, gdy tylko pojemność montażowa miernika będzie różna od 0, a dzieje się to dość często (np. ze względu na zmianę temperatury otoczenia i tym samym pojemności C10/C11). Nic nie jest całkowicie stałe w tym mierniku.

    Quote:
    Autor oryginalnego układu nie umieszczał L w programie, tylko C. Wartość L nie jest potrzebna, o czym wcześniej wspomniałem. Są dwa wzory i dwie zmienne. Rozwiązujemy układ równań liniowych. Poziom matmy i fizy wczesnego gimnazjum...
    Tu fakt w EEPROM'ie jest zapisana tylko wartość C11 (Ccal). Wartość L1 i C10 jest obliczana na podstawie częstotliwości F1/F2 i wartości C11. Bez obliczonych wartości L1/C10 i częstotliwości F1/F3, nie da się obliczyć nieznanych wartości Cx/Lx. Także z chęcią zobaczę wzory na podstawie, których obliczysz Cx bez wartości L1, czy Lx tylko z jednym kondensatorem C1x. Zamieść wzory, to zobaczymy na jakim poziomie jest Twoja matematyka.

    Quote:
    Witam, ja tak w kwestii formalnej co do płytki, nie szło przepchać ścieżki masy między nogami procka?
    Faktycznie da się tam dać ścieżkę zamiast zworki - poprawię płytkę. Spieszyłem się i nie zauważyłem tego "przejścia".
  • #19
    Anonymous
    Level 1  
  • #20
    RomanWorkshop
    Level 12  
    Dodałem archiwum z poprawioną płytką (2 zworki zamiast 3) i dokumentacją.

    Quote:
    Pojemność C została obliczona na podstawie: f1, f2, C1x, czyli z jednym kondensatorem.
    Nawet, jeśli to teoretycznie zadziała, to skupiłeś się tylko na pomiarze pojemności. Jak bez znanej wartości L1, obliczysz nieznaną indukcyjność Lx (znając tylko wartość C1x)?
  • #21
    Anonymous
    Level 1  
  • #22
    RomanWorkshop
    Level 12  
    Poniżej zamieszczam wzory z angielskiego artykułu (nazwy elementów z mojego schematu miernika).

    Miernik pojemności/indukcyjności (PIC16F628)

    Faktycznie wygląda na to, że w teorii można pominąć kondensator C11 i przekaźnik K1. Wtedy z powyższych wzorów znika C11, a C10 ma stałą wartość Ccal (domyślnie 1.000nF). Wymagałoby to zmiany programu sterującego i sprawdzenia działania takiego miernika. Może chodzi o dokładność obliczeń matematycznych, może o coś innego. Nawet na stronie z wzorami, którą podałeś jest miernik z dwoma kondensatorami. Gdzieś może być jakiś haczyk, ale to można sprawdzić tylko modyfikując całą konstrukcję.