Cuprins:

Analizor de antenă HF cu modul Arduino și DDS: 6 pași (cu imagini)
Analizor de antenă HF cu modul Arduino și DDS: 6 pași (cu imagini)

Video: Analizor de antenă HF cu modul Arduino și DDS: 6 pași (cu imagini)

Video: Analizor de antenă HF cu modul Arduino și DDS: 6 pași (cu imagini)
Video: arduino antenna analyzer 2024, Noiembrie
Anonim
Analizor de antenă HF cu modul Arduino și DDS
Analizor de antenă HF cu modul Arduino și DDS
Analizor de antenă HF cu modul Arduino și DDS
Analizor de antenă HF cu modul Arduino și DDS

Salut

În acest Instructable vă voi arăta cum am construit un analizor de antenă low-cost care poate măsura o antenă și afișa VSWR-ul său pe oricare sau pe toate benzile de frecvență HF. Va găsi VSWR minim și frecvența corespunzătoare pentru fiecare bandă, dar va afișa și un VSWR în timp real pentru o frecvență selectată de utilizator pentru a facilita reglarea antenei. Dacă mutați o singură bandă de frecvență, va afișa un grafic al VSWR față de frecvență. De asemenea, are un port USB pe spate pentru ieșirea frecvenței și a datelor VSWR, pentru a permite o reprezentare grafică mai rafinată pe un PC. Portul USB poate fi, de asemenea, utilizat pentru a reface firmware-ul, dacă este necesar.

Recent am intrat în radio amator (pentru că mi-a plăcut ideea comunicării de la egal la egal pe distanțe uriașe fără infrastructură) și am făcut rapid următoarele observații:

1. Toate comunicările la nivel mondial care m-au interesat au loc pe benzile HF (3-30 MHz)

2. Transmițătoarele HF sunt foarte scumpe și se vor rupe dacă nu le conduceți într-o antenă rezonabilă

3. În general, vă așteptați să vă instalați propria antenă HF din bucăți de sârmă strânse în grădină (cu excepția cazului în care doriți să cheltuiți chiar și mai mulți bani decât ați cheltuit în 2).

4. Este posibil ca antena dvs. să se potrivească prost, dar nu veți ști până nu o veți încerca.

Acum, un purist ar spune probabil că ar trebui mai întâi să testați antena la o putere foarte mică la frecvența de interes și să verificați VSWR de pe contorul instalației pentru a evalua calitatea meciului. Nu am cu adevărat timp să mă fac cu așa ceva pentru fiecare frecvență pe care aș vrea să o folosesc. Ceea ce îmi doream cu adevărat era un analizor de antenă. Aceste dispozitive pot testa calitatea potrivirii antenei la orice frecvență peste benzile HF. Din păcate, de asemenea, sunt foarte scumpe, așa că m-am gândit să-mi pot face propriile. Am dat peste munca excelentă desfășurată de K6BEZ (vezi https://www.hamstack.com/project_antenna_analyzer.html), care a investigat utilizarea unui Arduino pentru a controla un modul ieftin de sintetizator digital direct (DDS). Curând a abandonat Arduino din motive de cost, preferând să utilizeze un PIC. Ei bine, în 2017 poți cumpăra un Arduino Nano la aproximativ 3,50 GBP, așa că m-am gândit că este timpul să-i revăd lucrarea, să iau locul unde a rămas și să văd cu ce aș putea veni (rețineți că nu sunt singurul cine a făcut acest lucru: există câteva exemple foarte frumoase care se găsesc pe internet).

Actualizare (29/7/2018) - această lucrare a fost construită considerabil de către bi3qwq, din China, care a adus câteva îmbunătățiri foarte bune la interfața cu utilizatorul, pe care a împărtășit-o cu amabilitate. A proiectat un PCB foarte profesionist (cu o caracteristică excelentă de rezistență la calibrare) și a făcut o construcție foarte bună. În plus, el a pregătit o schemă, despre care știu că îi va încânta pe mulți dintre cei care au comentat anterior. Vă rugăm să consultați secțiunea de comentarii pentru mai multe informații.

Actualizare - Am intrat recent în 60 m, pe care schița originală nu o acoperea. Deci, acum am încărcat versiunea de firmware 7, care adaugă benzile de 160 m și 60 m. Acestea nu sunt programe de completare; acestea sunt complet integrate în funcționarea analizorului. A fost norocos că am putut găsi un font u8glib care era încă lizibil, dar mi-a permis să afișez simultan zece benzi pe acel mic ecran (deși nu era monospațial, ceea ce a cauzat o anumită durere). Am estimat valorile de calibrare pentru noile benzi, pe baza interpolării / extrapolării valorilor de calibrare existente. Le-am verificat apoi cu rezistențe fixe și dau rezultate destul de bune.

Actualizare - după cum mai mulți oameni au întrebat despre scheme, circuitul fundamental Arduino / DDS / VSWR este în mare parte nealterat față de lucrarea originală a lui K6BEZ. Vă rugăm să verificați adresa URL de mai sus pentru schema sa originală pe care am bazat acest proiect. Am adăugat un codificator, un ecran OLED și un firmware complet dezvoltat pentru a crea o experiență de utilizare fără efort.

Actualizare - Acest sistem utilizează o sursă de semnal DDS de foarte mică tensiune împreună cu o punte rezistivă care conține detectoare de diode. Astfel, diodele funcționează în regiunile lor neliniare și prima mea versiune a acestui sistem a avut tendința de a nu citi VSWR. De exemplu, o sarcină de impedanță de 16 ohmi sau 160 ohmi ar trebui să prezinte un VSWR de aproximativ 3 într-un sistem de 50 ohmi; acest contor a indicat un VSWR mai aproape de 2 în această situație. Prin urmare, am efectuat o calibrare software folosind sarcini cunoscute, care pare a fi o soluție eficientă pentru această problemă. Acest lucru este descris în penultimul pas al acestui instructiv și a fost încărcată o schiță revizuită.

Actualizare - facilitatea de graficare integrată adăugată la măturări simple, deoarece a fost prea utilă pentru a fi lăsată deoparte, în special atunci când reglați lungimile antenei pentru VSWR minim: un grafic vă oferă o tendință vizibilă instantaneu.

Pasul 1: Cumpărați-vă lucrurile

Veți avea nevoie de următoarele elemente. Cele mai multe dintre ele pot fi obținute ieftin de la Ebay. Cel mai scump articol unic a fost cutia, la aproape 10 GBP! Ar putea fi posibil să înlocuiesc unele articole (am folosit 47 R în loc de 50 R, de exemplu). Diodele erau destul de neobișnuite (a trebuit să cumpăr 5 din Italia) și ar merita să le înlocuiesc cu articole mai ușor disponibile dacă știi ce faci.

  • Arduino Nano
  • Modul DDS (DDS AD9850 Signal Generator Module HC-SR08 Signal Sine Square Wave 0-40MHz)
  • Afișaj OLED i2c de 1,3"
  • MCP6002 op-amp (8 pini)
  • 2 diode AA143
  • Condensatoare ceramice: 2 off 100 nF, 3 off 10 nF
  • 1 uF condensator electrolitic
  • Rezistoare: 3 off 50 R, 2 off 10 K, 2 off 100 K, 2 off 5 K, 2 off 648 R
  • Blocuri terminale cu șurub cu pas de 2,54 mm: 3 cu 2 pini, 2 cu 4 pini
  • Sârmă de conectare cu un singur miez
  • 702 sau sârmă de conectare similară
  • Stripboard
  • Bandă antet pătrată (feminin) pentru conectarea dispozitivelor Arduino și DDS - nu cumpărați din greșeală elementele cu soclu rotund!
  • Soclu SO-239 montat pe șasiu
  • Codificator rotativ (15 impulsuri, 30 de detenție) cu comutator și buton
  • Codul rotativ ieftin „modul” (opțional)
  • Caseta proiectului
  • Comutator
  • Cablu de montare a peretelui mini-USB la unghi drept la USB B (50 cm)
  • PP3 și clemă / suport baterie
  • Stâlpi / stații de montare autoadezive pentru PCB

De asemenea, veți avea nevoie de un instrument de lipit și instrumente electronice. O imprimantă 3D și un burghiu de stâlp sunt utile pentru carcasă, deși, dacă doriți, probabil că ați putea asambla totul pe bord și nu vă deranjați cu o cutie.

Bineînțeles, întreprindeți această lucrare și exploatați rezultatele generate pe propriul risc.

Pasul 2: Așezați panoul

Așezați panoul
Așezați panoul
Așezați panoul
Așezați panoul

Planificați modul în care urmează să aranjați componentele de pe panou. Puteți face acest lucru singur, referindu-vă la schema originală a lui K6BEZ (care nu are codificator sau ecran - consultați pagina 7 din https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf), sau puteți economisi o mulțime de timp și copiați aspectul meu.

Fac aceste machete simplu, folosind hârtie pătrată și creion. Fiecare intersecție reprezintă o gaură de panou. Urmele de cupru merg orizontal. O cruce reprezintă o pistă ruptă (folosiți un burghiu de 6 mm sau instrumentul adecvat dacă aveți unul). Liniile de cercuri cu o casetă în jurul lor reprezintă anteturi. Cutiile mari cu șuruburi indică blocurile conectorilor. Rețineți că în diagrama mea există o linie suplimentară care trece orizontal prin mijlocul plăcii. Nu lăsați acest lucru când îl puneți împreună (este marcat „omiteți această linie”).

Unele componente pot părea dispuse ciudat. Acest lucru se datorează faptului că designul a evoluat odată ce am pornit hardware-ul de bază (în special când mi-am dat seama că codificatorul avea nevoie de întreruperi hardware, de exemplu).

Când lipesc componente pe placă, folosesc Blu-Tak pentru a le ține ferm fixate în timp ce întorc placa pentru a lipi picioarele.

Am încercat să minimalizez cantitatea de sârmă pe care am folosit-o alinind modulul Arduino și modulul DDS și doar folosind tabloul de bord pentru a conecta pinii cheii. Nu mi-am dat seama la momentul respectiv că întreruperile hardware necesare pentru citirea codificatorului funcționează doar pe pinii D2 și D3, așa că a trebuit să mut DDS RESET din conexiunea sa originală D3 cu un pic de fir:

DDS RESET - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

Arduino D2 și D3 sunt utilizate pentru intrările codificatorului A & B. D11 este utilizat pentru intrarea comutatorului codificatorului. D12 nu este folosit, dar m-am gândit să fac oricum un terminal cu șurub, pentru extindere viitoare.

Arduino A4 și A5 furnizează semnalele SDA și SCL (I2C) pentru ecranul OLED.

Arduino A0 și A1 preiau intrările de pe podul VSWR (prin OPAMP).

Pasul 3: Instalați modulele, atașați perifericele și blocați codul

Instalați modulele, atașați perifericele și blocați codul
Instalați modulele, atașați perifericele și blocați codul

Merită să testați placa înainte de a trece la probleme de montare într-o incintă. Atașați următoarele componente folosind sârmă flexibilă pe placă folosind blocurile de șuruburi:

  • Afișaj OLED de 1,3 "(SDA și SCL sunt conectate la pinul Arduino A4 și respectiv A5; masă și Vcc merg la Arduino GND și + 5V, evident)
  • Codificator rotativ (aceasta are nevoie de o masă, două linii de semnal și o linie de comutare - poate fi necesar să rotiți liniile de comutare rotunde dacă codificatorul funcționează într-un mod greșit - conectați-le la masa Arduino, respectiv D2, D3 și respectiv D11). Rețineți că, pentru munca mea de prototipare, am montat codificatorul 15/30 pe o placă de modul de codificare KH-XXX, deoarece pinii codificatorilor goi sunt foarte slabi. Pentru ultima lucrare am lipit fire direct pe codificator.
  • Baterie de 9V
  • Soclu SO-239 - lipiți pinul central la linia de semnal a antenei și utilizați un terminal inel M3 și șurub pentru masa antenei

Aruncați următoarea schiță pe Arduino. De asemenea, asigurați-vă că ați inclus biblioteca de drivere OLED foarte bună de la Oli Kraus, altfel compilarea se va prăbuși și arde:

Dacă afișajul dvs. OLED este ușor diferit, este posibil să aveți nevoie de o setare de configurare diferită în u8glib; acest lucru este bine documentat în exemplul de cod al lui Oli.

Pasul 4: pune totul într-o cutie frumoasă (opțional)

Puneți totul într-o cutie frumoasă (opțional)
Puneți totul într-o cutie frumoasă (opțional)
Puneți totul într-o cutie frumoasă (opțional)
Puneți totul într-o cutie frumoasă (opțional)
Puneți totul într-o cutie frumoasă (opțional)
Puneți totul într-o cutie frumoasă (opțional)
Pune totul într-o cutie frumoasă (opțional)
Pune totul într-o cutie frumoasă (opțional)

M-am gândit serios să părăsesc analizorul ca pe o placă goală, deoarece era probabil să fie folosit doar ocazional. La reflecție, însă, m-am gândit că, dacă fac o mulțime de muncă pe o singură antenă, s-ar putea să se deterioreze. Deci totul a mers într-o cutie. Nu are rost să intrăm în detalii despre modul în care s-a făcut acest lucru, deoarece cutia dvs. va fi probabil diferită, dar unele caracteristici cheie merită menționate:

1. Pentru montarea panoului de bord, folosiți suporturi autoadezive din PCB. Fac viața foarte ușoară.

2. Utilizați un cablu scurt pentru adaptor USB pentru a scoate portul USB Arduino în spatele carcasei. Apoi, este ușor să accesați portul serial pentru a obține frecvență față de datele VSWR și, de asemenea, pentru a repeta Arduino fără a scoate capacul.

3. Am dezvoltat o parte personalizată tipărită 3D pentru a susține afișajul OLED, deoarece nu am putut găsi nimic pe web. Acesta are o adâncitură pentru a permite introducerea unei bucăți de acril de 2 mm pentru a proteja ecranul fragil. Poate fi montat folosind bandă dublă față sau șuruburi autofiletante (cu lamele de ambele părți). Odată ce ecranul a fost montat, puteți utiliza un fir fierbinte (gândiți clipul și lampa de suflare) pentru a topi pinii PLA pe partea din spate a plăcii de circuit pentru a asigura totul. Iată fișierul STL pentru oricine este interesat:

Pasul 5: Calibrare

Calibrare
Calibrare

Inițial nu făceam nicio calibrare, dar am descoperit că aparatul de măsură VSWR citea constant. Acest lucru a însemnat că, deși o antenă părea să fie în regulă, autotunerul echipamentului meu nu a reușit să se potrivească cu acesta. Această problemă apare deoarece modulul DDS emite un semnal de amplitudine foarte scăzut (aproximativ 0,5 Vpp la 3,5 MHz, rulează pe măsură ce frecvența crește). Prin urmare, diodele detectoare din puntea VSWR funcționează în regiunea lor neliniară.

Există două soluții posibile pentru acest lucru. Primul este să se potrivească un amplificator de bandă largă la ieșirea DDS. Dispozitivele potențial adecvate sunt disponibile ieftin din China și vor crește puterea la aproximativ 2 V pp. Am comandat una dintre acestea, dar încă nu am încercat-o. Sentimentul meu este că până și această amplitudine va fi puțin marginală și va rămâne oarecare neliniaritate. A doua metodă este de a pune sarcini cunoscute pe ieșirea contorului existent și de a înregistra VSWR afișat la fiecare bandă de frecvență. Acest lucru vă permite să construiți curbe de corecție pentru VSWR real versus raportat, care pot fi apoi introduse în schița Arduino pentru a aplica corecția din mers.

Am adoptat a doua metodă, deoarece era ușor de realizat. Obțineți doar următoarele rezistențe: 50, 100, 150 și 200 ohmi. Pe acest instrument de 50 ohm, acestea vor corespunde prin definiție VSWR-urilor de 1, 2, 3 și 4. În schiță există un comutator „use_calibration”. Setați aceasta la LOW și încărcați schița (care va afișa un avertisment pe ecranul de pornire). Apoi efectuați măsurători în centrul fiecărei benzi de frecvență pentru fiecare rezistor. Utilizați o foaie de calcul pentru a trasa VSWR așteptat față de cel afișat. Puteți face apoi o potrivire a curbei logaritmice pentru fiecare bandă de frecvență, care oferă un multiplicator și o interceptare a formei TrueVSWR = m.ln (MeasuredVSWR) + c. Aceste valori trebuie încărcate în matricea swr_results din ultimele două coloane (a se vedea declarația de comentariu precedentă din schiță). Acesta este un loc ciudat pentru a le pune, dar m-am grăbit și, pe măsură ce această gamă de magazine plutește, mi s-a părut o alegere rezonabilă în acel moment. Apoi puneți comutatorul use_calibration înapoi la HIGH, reflash Arduino și opriți-vă.

Rețineți că atunci când efectuați măsurători de frecvență spot, calibrarea se aplică pentru alegerea inițială a benzii. Acest lucru nu va fi actualizat dacă efectuați modificări brute în frecvență.

Acum, contorul citește așa cum era de așteptat pentru sarcinile fixe și pare să aibă sens când măsoară antenele mele! Bănuiesc că s-ar putea să nu mă deranjez să încerc acel amplificator de bandă largă când va sosi …

Pasul 6: Utilizarea analizorului

Utilizarea analizorului
Utilizarea analizorului
Utilizarea analizorului
Utilizarea analizorului

Atașați o antenă printr-un cablu PL-259 și porniți dispozitivul. Se va afișa un splash screen, apoi va efectua automat o măturare a tuturor benzilor principale HF. Afișajul arată frecvența testată, citirea VSWR curentă, citirea minimă VSWR și frecvența la care a avut loc. Pentru a reduce zgomotul măsurat, se iau cinci măsurători ale VSWR la fiecare punct de frecvență; valoarea medie a acestor cinci citiri este apoi trecută printr-un filtru mediu mobil în nouă puncte în raport cu frecvența înainte ca valoarea finală să fie afișată.

Dacă doriți să opriți această măturare cu toate benzile, apăsați butonul codificatorului. Măturarea se va opri și va fi afișat un rezumat al tuturor datelor de bandă adunate (cu valori nule pentru acele benzi care nu au fost încă măturate). O a doua apăsare va afișa meniul principal. Alegerile se fac rotind codificatorul și apoi apăsându-l în punctul corespunzător. Există trei opțiuni în meniul principal:

Măturați toate benzile va reporni măturarea tuturor benzilor principale HF. Când se termină, va afișa ecranul rezumat descris mai sus. Scrieți acest lucru sau faceți o fotografie dacă doriți să o păstrați.

Măturarea unei singure benzi vă va permite să selectați o singură bandă cu codificatorul, apoi să o măturați. Atât lungimea de undă, cât și gama de frecvență sunt afișate în timpul efectuării selecției. Când s-a terminat măturarea, o a doua apăsare a codificatorului va afișa un grafic VSWR simplu față de frecvența benzii tocmai măturate, cu o indicație numerică a VSWR minim și a frecvenței care a avut loc. Acest lucru este foarte util dacă doriți să știți dacă să vă scurtați sau să vă prelungiți brațele dipol, deoarece arată tendința VSWR cu frecvență; acest lucru se pierde cu raportul numeric simplu.

Frecvența unică vă permite să alegeți o singură frecvență fixă și apoi actualizați continuu o măsurare VSWR live, în scopul reglării antenei în timp real. Mai întâi selectați banda de frecvență relevantă; ecranul va arăta apoi frecvența centrală a benzii alese și o citire VSWR live. În acest moment se aplică calibrarea benzii relevante. Una dintre cifrele frecvenței va fi subliniată. Acest lucru poate fi mutat la stânga și la dreapta cu codificatorul. Apăsarea codificatorului încurajează linia; apoi rotirea codificatorului va reduce sau crește cifra (0-9 fără împachetare sau transport). Apăsați din nou codorul pentru a repara cifra, apoi treceți la următoarea. Puteți accesa aproape orice frecvență pe întregul spectru HF folosind această facilitate - selectarea benzii la început vă ajută să vă apropiați de locul în care probabil doriți să fiți. Există totuși o avertizare: calibrarea pentru banda selectată este încărcată la început. Dacă vă îndepărtați prea mult de banda selectată schimbând cifrele, calibrarea va deveni mai puțin valabilă, așa că încercați să rămâneți în banda aleasă. Când ați terminat cu acest mod, mutați subliniul până la dreapta până când se află sub „exit”, apoi apăsați codorul pentru a reveni la meniul principal.

Dacă vă conectați computerul la mufa USB din partea din spate a analizorului (adică în Arduino), puteți utiliza monitorul serial Arduino pentru a colecta frecvența versus valorile VSWR în timpul oricărei operații de baleiaj (în prezent este setat la 9600, dar puteți schimba acest lucru ușor editând schița mea). Valorile pot fi apoi introduse într-o foaie de calcul, astfel încât să puteți trasa grafice mai permanente etc.

Captura de ecran arată rezumatul VSWR pentru antena mea verticală de stâlp de pescuit de 7,6 m cu UNUN 9: 1. Echipamentul meu poate găzdui un SWR maxim 3: 1 cu unitatea sa auto-tuner internă. Puteți vedea că îl voi putea regla pe toate benzile, cu excepția celor 80 m și 17 m. Așa că acum mă pot relaxa știind că am o antenă multi-band acceptabilă și că nu voi sparge nimic scump când transmit pe majoritatea benzilor.

Mult succes și sper să vă fie de folos acest lucru.

Recomandat: