Urządzenie jakie chciałbym dziś zaprezentować jest naprawdę trywialne, jednak być może ktoś na tym skorzysta.
Przejdźmy jednak do rzeczy. Schemat układu znajduje się poniżej.
Prosty wykrywacz metali na AT89C2051
Niestety sporządziłem tylko odręczny szkic. T1 i T2 pracują tu w układzie oscylatora. Wymyśliłem ten układ kiedyś, na poczekaniu. Prawdopodobnie jest to oscylator Butlera. T3 i T4 to przerzutnik Schmitt'a dla zaformowania drgań sinusoidalnych z kolektora T2. Jako tranzystory zastosowałem 2SC1815Y. Tylko dlatego, że mam ich mnóstwo na płytach od TV. Mikrokontroler pracuje tu jako miernik częstotliwości dużych - tzn. zlicza impulsy sygnału mierzonego w trakcie trwania impulsu wzorcowego. Przerwanie zewnętrzne INT1 i wejście licznika T0 są zewnętrznie zwarte. Jest to niezbędna synchronizacja cyklu pomiarowego z przebiegiem mierzonym. Pozwala to wyeliminować niestabilności pomiaru związane z asynchronicznym pojawianiem się pierwszego impulsu mierzonego względem cyklu pomiarowego. Wciśnięcie K1 wywołuje rozpoczęcie kalibracji przyrządu. Obliczana jest wówczas średnia z czterech kolejnych pomiarów częstotliwości. Właśnie ta wartość jest potem brana za odniesienie. W kolejnych pomiarach mikrokontroler bada, czy częstotliwość generatora pomiarowego wzrosła, czy zwiększyła się względem częstotliwości odniesienia. Na podstawie tego sterowany jest buzer (z generatorem) i stosowne diody. Diody wskazują wzrost (D1), lub spadek częstotliwości (D2). Zatem odpowiednio wskazywane jest tu wykrycie ferromagnetyku, lub pozostałych metali. Częstotliwość migania właściwej diody oraz pisków buzera jest proporcjonalna do odstrojenia oscylatora. Wykrycie odstrojenia jest wskazywane dopiero wówczas, gdy jest ono większe od nastawionej czułości. Czułość nastawia się za pomocą P1. Im wyższe napięcie na jego ślizgaczu, tym niższa czułość. Wykonany tu układ można teoretycznie nazwać najprostszym przetwornikiem AC z pojedynczym całkowaniem. Wykorzystuje on wewnętrzny komparator mikrokontrolera AT89C2051. Jednak w rzeczywistości jest on mało stabilny i nieliniowy. Liniowość poprawiłem wykorzystując jedynie 0,2 stałej czasowej obwodu R12, C10. Obliczyłem, że po czasie 440µs napięcie na C10 wyniesie 0,9063V. Zatem dla takiego napięcia obliczyłem R11. Timer T1 wyznacza czas impulsu wzorcowego - czas bramkowania. Jego przerwanie jest zgłaszane co 62ms. Przy okazji jest to też okres próbkowania przetwornika AC. Jednak czas bramkowania wyznaczają zwory Z2, Z3 i Z4. Czas bramkowania obliczymy następująco:
MSB LSB
czas bramkowania = (Z2 Z3 Z4 + 3) * 62ms
Jeżeli dana zwora jest założona, to oznacza to 0, zdjęta 1. Zatem maksymalny czas bramkowania wynosi 620ms. Taki właśnie czas nastawiłem w swoim układzie. Dla poprawy stabilności wartości z AC również i tu obliczana jest średnia z pomiarów wyznaczonych, których liczbę wyznacza mnożnik podany dla czasu bramkowania. Założenie Z5 załącza tryb serwisowy. Zworę tą należy zakładać przy wyłączonym zasilaniu. W trybie tym założenie Z2 powoduje wyświetlanie wartości przetwornika AC (bez uśrednienia) za pomocą diod D1 i D2. Natomiast zdjęcie Z2 to wyświetlanie częstoltiwości generatora pomiarowego z rozdzielczością 1kHz (dla wygody odczytu). Częstotliwość obliczymy następująco:
częstotliwość [kHz] = (liczba mignięć D1) + (liczba mignięć D2) * 10
Natomiast dla wartości przerwornika AC jest to:
wartość AC = (liczba mignięć D1) + (liczba mignięć D2 - 1) * 100
Początek wyświetlania każdego z pomiarów sygnalizowany jest piskiem buzera. Kolejno miga D1, potem D2. Zakres pomiaru częstotliwości wynosi 255kHz. Przy jego przekroczeniu otrzymamy trzy piski buzera i brak wyświetlenia pomiaru. Jeżeli oscylator się nie wzbudzi, to otrzymamy tylko jeden pisk w trakcie załączania zasilania. Założenie Z1 przełącza wykrywacz w tryb dynamiczny (auto dostrojenie). W trybie tym strojenie wykrywacza nie jest wymagane.
Zastosowałem tu cewkę cylindryczną, ekranowaną. Indukcyjność wynosi ok. 0,9mH. Natomiast częstotliwość drgań generatora to aktualnie ok. 54kHz. Włącznik zasilania W1 sprzęgnięty jest z potencjometrem P1. Zasilanie układu wykonane jest poprzez stabilizator 78L05 z baterii 9V.
Poniżej przedstawiam wygląd wykrywacza. Obudowę wykonałem z paneli podłogowych, sklejonych klejem polimerowym. Połączenia wzmocniłem dodatkowo kołkami z wykałaczek. Pokrywę stanowi tu tworzywo sztuczne, odzyskane ze starej drukarki. Całość zmontowałem na płytce uniwersalnej.
Prosty wykrywacz metali na AT89C2051 Prosty wykrywacz metali na AT89C2051 Prosty wykrywacz metali na AT89C2051
Jak widać można coś zrobić bez AVR i Arduino. Oprogramowanie zajmuje 640 bajtów, napisałem je w asemblerze mikrokontrolera 8051. Główny problem przy pisaniu softu to brak przerwania od komparatora i tylko dwa Timery.
Poniżej opis wykonania sondy. Sonda jest dość prosta. Bardzo istotna jest tu sztywność mechaniczna. Już minimalna (niezauważalna) deformacja zostanie wykryta jako odstrojenie. W moim wykonaniu wyciąłem otwornicą z kawałka panelu podłogowego krążek o średnicy ok. 3cm. Grubość takiego panelu wynosiła 7mm. Kolejno zrobiłem otwornicą dwa większe koła z tworzywa sztucznego, odzyskanego z obudowy jakiejś drukarki. Po zmatowieniu skleiłem centrycznie wszystkie dyski klejem polimerowym. Na czas klejenia skręciłem wszystko śrubą M4. Następnie wykleiłem równo wnętrze takiego karkasu folią aluminiową. Jest to ekran. Trzeba pamiętać, by zostawić ok. 1cm przy wyprowadzeniach bez ekranu. Ekran musi być szczelny, ponadto nie może mieć dodatkowych dziur. Następnie wkleiłem izolację z papieru. Ostatecznie nawinąłem uzwojenie i zabezpieczyłem je ciasnymi obwojami sznurka. Kolejno nakleiłem jeszcze warstwę papieru i zawinąłem do środka wystający nadmiar folii aluminiowej. Końcowo dodałem jeszcze pas folii dla poprawy ekranu. Na koniec wyprowadzenie ekranu za pomocą odcinka drutu dociśniętego do ekranu sznurkiem, potem papier i zewnętrzny czerwony pas tworzywa sztucznego wklejony Poxipolem. Wykonując cewkę niezmiernie istotna jest ta przerwa w ekranie. Z sondą wzorować się można na szkicach z tego artykułu: Link. Dochodzi tylko karkas.
Orientacyjne zasięgi (w powietrzu):
2 grosze (współczesne) - 3,5cm
1 grosz (współczesny) - 3cm
5zł (współczesne) - 4cm
10zł (PRL) - 3,5cm
20zł (PRL) - 4,5cm
łuska Mauser - 5cm
łuska Szwak (kaliber 20mm) - 8cm
W załączniku skompilowany soft + źródło.