SQ3SWF - (Kolejny) miliwatomierz na AD8317
Zachęcony prostotą i przydatnością konstrukcji, którą Maciej RXX zaprezentował w Fojutowie, postanowiłem spróbować swoich sił z budową miernika mocy na AD8317, podobnego do konstrukcji PA0RWE.

W kwestii sprzętowej nie ma tutaj miejsca na szczególną finezyjność - korzystam z gotowego modułu który na wejściu przyjmuje RF, a na wyjściu produkuje napięcie stałe odwrotnie proporcjonalne do mocy wejściowej. Napięcie odczytujemy mikrokontrolerem i przeliczamy surowy odczyt na dBm, z uwzględnieniem współczynników kalibracji.

W celu wyeliminowania błędów związanych z niedokładnością ADC, należy zapewnić przetwornikowi stabilne napięcie odniesienia. Idealnie sprawdzi się tutaj Vref=2048 mV, gdyż napięcie na wyjściu AD8317 bez sygnału wejściowego (tzn. <, -60 dBm) nie powinno przekroczyć ok. 1,6 Volta. Za LM4040 serdecznie dziękuję Maćkowi wesoły

10-bitowy przetwornik ADC z napięciem odniesienia 2048 mV, pozwala mierzyć napięcia z rozdzielczością 2mV. Zmianie sygnału z wartości maksymalnej na minimalną (0 na -55dBm) odpowiada zmiana napięcia o około 1250 mV, czyli wartości zwracanej ADC o 625 jednostek. Daje to rozdzielczość odczytu 55/625 = 0,088 dB. Wynik wyświetlany jest z jedną cyfrą po przecinku - uznałem że to wystarczająca wartość.

Z jednej strony mamy więc moduł z AD8317, z drugiej generator napięcia odniesienia 2,048 V, a z trzeciej - wyświetlacz. Wszystkie te trzy strony spina Arduino Nano.

Zdecydowałem się na zastosowanie wyświetlacza OLED z kontrolerem SSD1306. Tradycyjne HD44780 zwyczajnie mi sie przejadły, a OLED bardzo ładnie świeci błękitem i w niebieskiej obudowie wygląda po prostu dobrze wesoły

Ktoś złośliwy mógłby zapytać gdzie tutaj mój wkład, skoro wziąłem gotowy moduł, cztery elementy dyskretne, wyświetlacz, Arduino i zlutowałem je razem - odpowiem obronną ręką: w oprogramowaniu, które napisałem od zera, starając sie zrobić to dobrze i tworzyć kod, który będzie łatwo modyfikowalny dla wszystkich zainteresowanych.

Aktualnie działa:
* pomiar mocy dla 9 pasm
* kalibracja dwupunktowa (domyślnie przyjąłem -40 i -10 dBm, ale można to łatwo zmienić)
* ustawienie tłumika (0 - 60 dB z krokiem co 10 dB, można ustalić własny krok)
* uśrednianie spośród 1/5/10/50/100/500/1k/2k/5k/10k odczytanych próbek LUB wartość minimalna/maksymalna ("MAX" nadaje się idealnie np. do szukania nadajników WiFi/Bluetooth, transmitujących w krótkich impulsach)
* obsługa za pomocą dwóch guziczków - jeden wybiera ustawienie (BAND/ATT/MODE/AVG), drugi zmienia wartość
* obsługa za pomocą portu szeregowego

Aktualnie czeka na dopisanie:
* kalibracja zapisywana do EEPROM - aktualnie w celu kalibracji trzeba wpisać wartości zmierzone w punktach kalibracyjnych do kodu źródłowego i zaprogramować Arduino ponownie
* wyświetlanie odczytu w W/mW/nW

Czeka na zrobienie: instalacja jakiejś małej baterii li-ion z kontrolerem ładowania i guziczków.. choć używając miernika w domu i podłączając go w 99% do komputera, nie poczułem jeszcze wystarczającej motywacji bardzo szczęśliwy

Kod źródłowy i krótki opis: https://github.com/olgierd/ad8317_powermeter

AD8317 według noty katalogowej zapewnia 55dB dynamiki w zakresie 0...-55 dBm, aczkolwiek przy końcach tego zakresu błąd powiększa się, wysoce wskazane jest więc trzymanie się "środka" charakterystyki. Mierząc moc w okolicach 0 dBm może dojść do kuriozalnej sytuacji, gdzie zwiększanie mocy może spowodować spadek wyniku pomiaru - Strona 7, rysunek 7, niebieski wykres.

Całkowity koszt wykonania miernika szacuję na trochę ponad 100pln. Co do dokładności nie jestem jeszcze w stanie się wypowiedzieć, ale jak tylko sytuacja epidemiczna się poprawi, mam zamiar wykonać porządną kalibrację i porównać moją konstrukcję do "prawdziwego" urządzenia pomiarowego.

Korzystając z okazji, chciałbym życzyć wszystkim spokojnych, wesołych i zdrowych Świąt Wielkanocnych wesoły

Kilka zdjęć:




  PRZEJDŹ NA FORUM