
Witajcie moi drodzy!
Chciałbym wam pokazać kolejny projekt oparty na mikroprocesorze z rodziny PIC. Jest to bardzo prosty miernik pojemności kondensatorów. Całość składa się zasadniczo tylko z jednego PIC16F628A i elementów pasywnych.
Idea projektu
Projekt bazuje na pomyśle R-B z embedded-lab.com i wykorzystuje Analog comparator do pomiaru pojemności kondensatora. Całość polega na zmierzeniu czasu ładowania kondensatora od 0 do danego napięcia. Wyniki pokazywane są na wyświetlaczu zgodnym z HD44780. Pomiar rozpoczyna się w momencie gdy wciśnie się przycisk MEASURE. Za całość odpowiada PIC16F628A:

Schemat
Wzorowałem się na schematach z embedded-labs.
Końcówka pomiarowa:

Reszta, mikroprocesor i jego połączenie z wyświetlaczem:

Schematy pochodzą ze strony embedded-lab.com.
W przypadku swojego projektu pominąłem jedynie rezonator kwarcowy (używam wewnętrznego 4MHz, trochę kosztem precyzji pomiaru) oraz dodałem na płytce stabilizator by można było zasilać całość z baterii.
Wzór PCB
Pierwotny pomysłodawca układu złożył go na płytce developerskiej od PIC16F628A, lecz ja zaprojektowałem dla tego układu własne PCB o wymiarach około 5 na 5 cm, wraz z wszystkimi potrzebnymi połączeniami (również ICSP) wyprowadzanymi do złączy goldpin. Na płytce również umieściłem miejsce na stabilizator napięcia 7805.

Pliki Eagle i plik .pdf do wydruku do termotransferu są w załącznikach.
Programowanie przez ICSP
Na płytce wyprowadzone jest wyjście do ICSP, dzięki czemu można ją programować bez problemu z PICKIT2/PICKIT3 lub innych programatorów. Ułatwia to rozwój i testowanie miernika.
Zasilanie
Na płytce jest miejsce na stabilizator 5V, w swoim przypadku umieściłem tam 7805 a przed nim dałem podłączenie baterii 9V, ale nic nie stoi na przeszkodzie by zastosować tam inny regulator LDO, lub po prostu całkowicie go pominąć i zasilić bezpośrednio z 5V (przed stabilizatorem są na płytce wyprowadzone 2 goldpiny w tym celu; również można zasilić układ przez ICSP)
Wykonanie projektu
Płytkę wykonałem samodzielnie metodą termotransferu. Przyciski RESET i MEASURE są wyprowadzone na przewodach, tak samo jak wyświetlacz HD oraz złącza do podłączania mierzonego kondensatora. W przyszłości zamierzam dodać do tego jakąś obudowę, ale na ten moment to jest tylko prototyp i pewnie jeszcze będę poprawiać jego działanie (kalibracja itp.):
Oto cały setup (zdjęcie bez a potem wraz z podpisami):


Animacja GIF przedstawiająca działanie:

Dokładność pomiaru
Dokładność pomiaru jest moim zdaniem zadowalająca jak na prototyp. Poniższa tabelka przedstawia porównanie zmierzonych i odczytanych wartości kondensatorów wraz z błędem względnym i bezwzględnym:
Name | C | Measured | Diff | % |
Electrolytic 250V 10uF | 10 | 10,3 | 0,3 | 3,00% |
Electrolytic 200V 10uF | 10 | 9,96 | 0,04 | 0,40% |
Electrolytic 250V 2.2uF | 2,2 | 2,32 | 0,12 | 5,45% |
Electrolytic Frolyt 1/80 | 1 | 0,92 | 0,08 | 8,00% |
Electrolytic 400V 47uF | 47 | 45,96 | 1,04 | 2,21% |
Electrolytic 50V 1uF | 1 | 0,98 | 0,02 | 2,00% |
Electrolytic 16V 33uF | 33 | 32,9 | 0,1 | 0,30% |
ceramic 103N Z5U | 0,01 | 0,009 | 0,001 | 10,00% |
ceramic B 472K | 0,0047 | 0,004 | 0,0007 | 14,89% |
ceramic B 332K | 0,0033 | 0,003 | 0,0003 | 9,09% |
green 10NJ100E 0.011 | 0,01 | 0,011 | 0,001 | 10,00% |
orange 63 MKT 0.47 | 0,47 | 0,432 | 0,038 | 8,09% |
yellow .1J100 | 0,1 | 0,088 | 0,012 | 12,00% |
Tutaj warto zwrócić uwagę, że na ten moment precyzja liczenia i wyświetlacza ogranicza się do 3 liczb po przecinku (0.001uF), więc wartosci takie jak 0.0047 mogą być jedynie pokazane jako 0.004 lub 0.005. Zamierzam to poprawić w przyszłości.
Nie jest to wynik zły, zwłaszcza, że użyte w projekcie rezystory były tolerancji 10%, co również ma duży wpływ na rozrzut wyników pomiarów. Dokładność można by jeszcze zwiększyć poprzez dodanie mechanizmu kalibracji oraz poprzez zwiększenie częstotliwości taktowania całego układu.
Kosztorys
PIC16F628A - 7 zł
Wyświetlacz 2x16 HD44780 - 10 zł
Tych drobniejszych elementów można za 1zł dostać kilka sztuk, ale nie będę liczyć co do grosza, i tak raczej nikt nie kupuje pojedynczo.
Gniazdo DIP18 - 1 zł
Goldpiny - 1 zł
Laminat - 5 zł
Drobnica, rezystory - 1 zł
Suma kosztów: 25 zł
Dalszy rozwój projektu
W najbliższym czasie planuję przenieść kod na PIC18F2550 oraz poszerzyć go o dodatkowe funkcjonalności, takie jak pomiar innych wartości komponentów oraz możliwość kalibracji i odczytu wartości przez USB. Projekt może być Open Source, więc jestem otwarty na wszelką współpracę - proszę zainteresowanych o wypowiedzi w temacie.
Załączniki
W załącznikach jest projekt Eagle płytki wraz z pdf gotowym do wydruku, skompilowany wsad na PIC16F628A ustawiony na uzycie wewnętrznego oscylatora 4MHz oraz cały projekt wraz z kodem mikroC PRO for PIC.
Cool? Ranking DIY