Indholdsfortegnelse:

HF -antenneanalysator med Arduino og DDS -modul: 6 trin (med billeder)
HF -antenneanalysator med Arduino og DDS -modul: 6 trin (med billeder)

Video: HF -antenneanalysator med Arduino og DDS -modul: 6 trin (med billeder)

Video: HF -antenneanalysator med Arduino og DDS -modul: 6 trin (med billeder)
Video: DIY transceiver: bandpass & lowpass filter 2024, Juli
Anonim
HF -antenneanalysator med Arduino og DDS -modul
HF -antenneanalysator med Arduino og DDS -modul
HF -antenneanalysator med Arduino og DDS -modul
HF -antenneanalysator med Arduino og DDS -modul

Hej

I denne Instructable viser jeg dig, hvordan jeg byggede en billig antenneanalysator, som kan måle en antenne og vise dens VSWR over et eller alle HF-frekvensbånd. Den finder minimum VSWR og tilsvarende frekvens for hvert bånd, men viser også en VSWR i realtid for en brugervalgt frekvens for at lette antennejustering. Hvis der fejes et enkelt frekvensbånd, viser det en graf over VSWR versus frekvens. Det har også en USB-port på bagsiden til udsendelse af frekvens og VSWR-data, så der er mulighed for mere raffineret grafplotning på en pc. USB -porten kan også bruges til at skifte firmware, hvis det er nødvendigt.

Jeg kom for nylig ind på amatørradio (fordi jeg kunne lide tanken om peer-to-peer-kommunikation over store afstande uden infrastruktur) og lavede hurtigt følgende observationer:

1. Al den verdensomspændende kommunikation, der interesserede mig, finder sted på HF-båndene (3-30 MHz)

2. HF-transceivere er meget dyre og vil gå i stykker, hvis du ikke kører dem ind i en rimeligt matchende antenne

3. Det forventes generelt, at du opretter din egen HF -antenne fra ledninger, der er spændt hen over haven (medmindre du vil bruge endnu flere penge, end du brugte i 2).

4. Din antenne kan være en dårlig match, men du ved det ikke, før du prøver det.

Nu ville en purist nok sige, at man først skulle teste antennen på meget lav effekt ved frekvensen af interesse og kontrollere VSWR på riggets måler for at vurdere kampens kvalitet. Jeg har ikke rigtig tid til at grine med den slags for hver frekvens, jeg måske vil bruge. Det, jeg virkelig ønskede, var en antenneanalysator. Disse enheder kan teste kvaliteten af antennematchen ved enhver frekvens over HF -båndene. Desværre er de også meget dyre, så jeg gik i gang med at overveje, om jeg kunne lave min egen. Jeg faldt over det fremragende arbejde udført af K6BEZ (se https://www.hamstack.com/project_antenna_analyzer.html), som undersøgte brugen af en Arduino til at styre et billigt direkte digitalt synthesizer -modul (DDS). Han opgav snart Arduino af omkostningsgrunde og foretrak at bruge en PIC. Nå, i 2017 kan du købe en Arduino Nano for omkring £ 3,50, så jeg tænkte, at det var tid til at besøge sit arbejde igen, tage op, hvor han slap og se, hvad jeg kunne finde på (bemærk, at jeg ikke er den eneste hvem har gjort dette: der er nogle meget flotte eksempler på internettet).

Opdatering (29/7/2018) - dette arbejde er blevet bygget betydeligt på af bi3qwq, fra Kina, som har foretaget nogle virkelig flotte forbedringer af brugergrænsefladen, som han venligt har delt. Han har designet et meget professionelt printkort (med en fantastisk kalibreringsmodstandsfunktion) og lavet en virkelig flot konstruktion. På toppen af det hele har han udarbejdet en skematisk, som jeg ved vil glæde mange af dem, der tidligere har kommenteret. Se venligst kommentarfeltet for mere information.

Opdatering - jeg er for nylig kommet ind på 60 m, som den originale skitse ikke dækkede. Så nu har jeg uploadet firmware version 7, som tilføjer 160 m og 60 m båndene. Disse er ikke tilføjelser; de er fuldt integreret i driften af analysatoren. Det var heldigt, at jeg kunne finde en u8glib -skrifttype, der stadig var læselig, men som tillod mig at vise ti bands samtidigt på den lille skærm (selvom det ikke var monospace, hvilket forårsagede en vis sorg). Jeg har estimeret kalibreringsværdier for de nye bånd, baseret på interpolation / ekstrapolering af de eksisterende kalibreringsværdier. Jeg tjekkede dem derefter ud med faste modstande, og de giver ret gode resultater.

Opdatering - da flere mennesker har spurgt om skemaer, er det grundlæggende Arduino / DDS / VSWR -brokredsløb stort set uændret fra K6BEZs originale arbejde. Tjek venligst ovenstående URL for hans originale skematik, som jeg baserede dette projekt på. Jeg har tilføjet en encoder, en OLED -skærm og fuldt udviklet firmware for at give en ubesværet brugeroplevelse.

Opdatering - Dette system bruger en DDS -signalkilde med meget lav spænding i forbindelse med en resistiv bro, der indeholder diodetektorer. Således fungerer dioderne i deres ikke-lineære områder, og min første version af dette system havde en tendens til at underlæs VSWR. Som et eksempel bør en 16 ohm eller 160 ohm impedansbelastning vise en VSWR på ca. 3 i et 50 ohm system; denne måler angav en VSWR tættere på 2 i denne situation. Jeg udførte derfor en softwarekalibrering ved hjælp af kendte belastninger, som synes at være en effektiv løsning på dette problem. Dette er beskrevet i det næstsidste trin i denne instruktive, og en revideret skitse er blevet uploadet.

Opdatering - indbygget graffunktion tilføjet til enkelt sweeps, da det var for nyttigt til at udelade, især når du indstiller antennelængder til minimum VSWR: en graf giver dig en umiddelbart synlig trend.

Trin 1: Køb dine ting

Du skal bruge følgende ting. De fleste af dem kan fås billigt fra Ebay. Den dyreste enkeltvare var æsken, tæt på £ 10! Det kan være muligt at erstatte nogle varer (jeg brugte f.eks. 47 Rs i stedet for 50 Rs). Dioderne var temmelig usædvanlige (jeg var nødt til at købe 5 fra i Italien) og ville være værd at erstatte for lettere tilgængelige varer, hvis du ved, hvad du laver.

  • Arduino Nano
  • DDS-modul (DDS AD9850 Signalgeneratormodul HC-SR08 Signal Sine Square Wave 0-40MHz)
  • 1,3 "i2c OLED -skærm
  • MCP6002 op-amp (8 ben)
  • 2 slukket AA143 diode
  • Keramiske kondensatorer: 2 fra 100 nF, 3 fra 10 nF
  • 1 uF elektrolytkondensator
  • Modstande: 3 off 50 R, 2 off 10 K, 2 off 100 K, 2 off 5 K, 2 off 648 R
  • 2,54 mm pitchskrueklemme: 3 off 2-pin, 2 off 4-pin
  • Single-core tilslutningstråd
  • 702 eller lignende tilslutningstråd
  • Stripboard
  • Square header strip (hun) til tilslutning af Arduino og DDS til - køb ikke de runde stik ting ved en fejl!
  • SO-239 chassismonteret stikkontakt
  • Drejekoder (15 impulser, 30 tilbageholdelser) med trykknap og knap
  • Billig roterende encoder 'modul' (valgfrit)
  • Projektboks
  • Skiftkontakt
  • Retvinklet mini-usb til USB B skotmonteringskabel (50 cm)
  • PP3 og batteriklemme / holder
  • Selvklæbende PCB-monteringspæle / standoffs

Du skal også bruge et loddejern og elektronikværktøjer. En 3D -printer og en søjlebor er nyttige til kabinettet, selvom hvis du ville, kunne du sandsynligvis samle det hele på tavlen og ikke bekymre dig om en kasse.

Du påtager dig naturligvis dette arbejde og udnytter de resultater, der genereres på egen risiko.

Trin 2: Læg strippladen ud

Lay Stripboard
Lay Stripboard
Lay Stripboard
Lay Stripboard

Planlæg, hvordan du vil arrangere komponenterne på båndet. Du kan enten gøre det selv med henvisning til K6BEZ's originale skematik (som mangler en encoder eller skærm - se side 7 af https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf), eller du kan spare en masse tid og kopier mit layout.

Jeg laver disse layout på den enkle måde ved hjælp af firkantet papir og en blyant. Hvert skæringspunkt repræsenterer et hul i et bræt. Kobbersporene går vandret. Et kryds repræsenterer et brudt spor (brug en 6 mm boremaskine eller det rigtige værktøj, hvis du har et). Cirklelinjer med en kasse omkring dem repræsenterer overskrifter. Store kasser med skruer angiver forbindelsesblokkene. Bemærk, at der i mit diagram er en ekstra linje, der løber vandret gennem midten af brættet. Lad dette være ude, når du sætter det sammen (det er markeret med 'udelad denne linje').

Nogle af komponenterne kan synes at være lagt underligt ud. Dette skyldes, at designet udviklede sig, når jeg havde fået den grundlæggende hardware til at fungere (især da jeg indså, at encoderen for eksempel havde brug for hardware -afbrydelser).

Når jeg lodder komponenter på brættet, bruger jeg Blu-Tak til at holde dem fast på plads, mens jeg vender brættet om for at lodde benene.

Jeg forsøgte at minimere mængden af ledninger, jeg brugte, ved at justere Arduino og DDS -modulet og bare bruge stribetavlen til at forbinde nøglenåle. Jeg var ikke klar over på det tidspunkt, at hardware -afbrydelser var nødvendige for at læse encoderen kun fungerede på ben D2 og D3, så jeg var nødt til at flytte DDS RESET fra den originale D3 -forbindelse med en smule ledning:

DDS RESET - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

Arduino D2 & D3 bruges til encoderindgange A & B. D11 bruges til encoder switch input. D12 bruges ikke, men jeg troede jeg ville lave en skrueterminal til det alligevel til fremtidig udvidelse.

Arduino A4 & A5 leverer SDA & SCL (I2C) signaler til OLED -skærmen.

Arduino A0 & A1 tager input fra VSWR -broen (via OPAMP).

Trin 3: Installer modulerne, vedhæft periferienheder og flash koden

Installer modulerne, fastgør periferiudstyret og flash koden
Installer modulerne, fastgør periferiudstyret og flash koden

Det er værd at teste brættet, før du går på besvær med at montere det i et kabinet. Fastgør følgende komponenter ved hjælp af fleksibel ledning til brættet ved hjælp af skrueklemmerne:

  • 1,3 "OLED -display (SDA og SCL er forbundet til henholdsvis Arduino pin A4 og A5; jord og Vcc går til Arduino GND og +5V, naturligvis)
  • Roterende encoder (dette kræver en jord, to signallinjer og en switchlinje - du skal muligvis vende switchlinjerne rundt, hvis encoderen fungerer den forkerte vej - tilslut disse til henholdsvis Arduino -jord, D2, D3 og D11). Bemærk, at til mit prototypearbejde monterede jeg 15/30 encoderen på et KH-XXX encoder modulkort, da stifterne på de bare encodere er meget spinkle. Til det sidste job lodde jeg ledninger direkte på encoderen.
  • 9V batteri
  • SO -239 -stik - lod den midterste pin til antennesignallinjen, og brug en M3 -ringterminal og skrue til antennens jord

Flash følgende skitse på Arduino. Sørg også for, at du har inkluderet det meget gode OLED -driverbibliotek fra Oli Kraus, ellers vil kompilationen gå ned og brænde:

Hvis din OLED -skærm er lidt anderledes, har du muligvis brug for en anden konfigurationsindstilling i u8glib; dette er veldokumenteret i Olis eksempelkode.

Trin 4: Læg det hele i en fin æske (valgfrit)

Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)
Læg det hele i en fin æske (valgfrit)

Jeg overvejede seriøst at forlade analysatoren som et blottet bord, da det kun sandsynligvis ville blive brugt lejlighedsvis. Ved eftertanke tænkte jeg dog, at hvis jeg lavede meget arbejde på en enkelt antenne, kan det ende med at blive beskadiget. Så alt gik i en kasse. Der er ingen grund til at gå i detaljer om, hvordan dette blev gjort, da din boks sandsynligvis vil være anderledes, men nogle nøglefunktioner er værd at nævne:

1. Brug selvklæbende PCB-standoffs til montering af båndet. De gør livet virkelig let.

2. Brug en kort USB -adapterledning til at bringe Arduino USB -porten bag på kabinettet. Så er det let at få adgang til den serielle port for at få frekvens vs. VSWR -data og også at skylle Arduino igen uden at tage låget af.

3. Jeg udviklede en brugerdefineret 3D-printet del til at understøtte OLED-skærmen, da jeg ikke kunne finde noget på nettet. Dette har en fordybning, så man kan indsætte et 2 mm stykke akryl for at beskytte den skrøbelige skærm. Den kan enten monteres ved hjælp af dobbeltsidet tape eller selvskærende skruer (med tapperne på hver side). Når displayet er monteret, kan du bruge en varm ledning (tænk papirclips og blæselampe) til at smelte PLA -benene på bagsiden af printkortet for at sikre alt. Her er STL -filen for alle, der er interesseret:

Trin 5: Kalibrering

Kalibrering
Kalibrering

Oprindeligt foretog jeg ingen kalibrering, men opdagede, at VSWR -måleren konsekvent læste lavt. Dette betød, at selvom en antenne syntes at være i orden, kunne min rigs autotuner ikke matche den. Dette problem opstår, fordi DDS -modulet udsender et signal med meget lav amplitude (ca. 0,5 Vpp ved 3,5 MHz, ruller af når frekvensen stiger). Detektordioderne i VSWR-broen fungerer derfor i deres ikke-lineære område.

Der er to mulige rettelser til dette. Den første er at tilpasse en bredbåndsforstærker til udgangen fra DDS. Potentielt egnede enheder fås billigt fra Kina, og de vil øge output til omkring 2 V s. Jeg har bestilt en af disse, men har endnu ikke prøvet det. Min fornemmelse er, at selv denne amplitude vil være lidt marginal, og en vis ikke-linearitet vil forblive. Den anden metode er at lægge kendte belastninger på output på den eksisterende måler og registrere den viste VSWR på hvert frekvensbånd. Dette giver dig mulighed for at konstruere korrektionskurver for faktisk versus rapporteret VSWR, som derefter kan sættes i Arduino -skitsen for at anvende korrektion på fluen.

Jeg vedtog den anden metode, da den var let at gøre. Bare tag fat i følgende modstande: 50, 100, 150 og 200 ohm. På dette 50 ohm instrument vil disse svare til VSWR'er på 1, 2, 3 og 4 pr. Definition. I skitsen er der en switch 'use_calibration'. Indstil dette til LAVT og upload skitsen (som viser en advarsel på stænkskærmen). Udfør derefter målinger i midten af hvert frekvensbånd for hver modstand. Brug et regneark til at plotte forventet versus vist VSWR. Du kan derefter foretage en logaritmisk kurve, der passer til hvert frekvensbånd, hvilket giver en multiplikator og afsnit af formen TrueVSWR = m.ln (MeasuredVSWR)+c. Disse værdier skal indlæses i swr_results -arrayet i de sidste to kolonner (se den foregående kommentarsætning i skitsen). Dette er et mærkeligt sted at placere dem, men jeg havde travlt, og da denne array butikker flyder, virkede det som et fornuftigt valg dengang. Sæt derefter use_calibration -kontakten tilbage til HIGH, reflash Arduino og af sted.

Bemærk, at når du foretager spotfrekvensmålingerne, anvendes kalibreringen til det første valg af bånd. Dette opdateres ikke, hvis du foretager store ændringer i frekvensen.

Nu læser måleren som forventet for de faste belastninger og synes at være fornuftig, når jeg måler mine antenner! Jeg formoder, at jeg måske ikke gider prøve den bredbåndsforstærker, når den kommer …

Trin 6: Brug af analysatoren

Brug af analysatoren
Brug af analysatoren
Brug af analysatoren
Brug af analysatoren

Tilslut en antenne via en PL-259-ledning, og tænd for enheden. Det vil vise en stænkskærm og derefter automatisk foretage en sweep af alle de vigtigste HF -bånd. Displayet viser den testede frekvens, den aktuelle VSWR -aflæsning, minimum VSWR -aflæsning og frekvensen, hvormed den opstod. For at reducere målestøj foretages fem målinger af VSWR på hvert frekvenspunkt; middelværdien af disse fem aflæsninger føres derefter gennem et ni-punkts glidende gennemsnitsfilter med hensyn til frekvens, før den endelige værdi vises.

Hvis du vil stoppe denne all-band fejning, skal du bare trykke på encoder-knappen. Fejningen stopper, og en oversigt over alle de indsamlede bånddata vises (med nuller for de bånd, der endnu ikke er fejet). Et andet tryk viser hovedmenuen. Valg foretages ved at dreje encoderen og derefter trykke på den på det relevante punkt. Der er tre valg i hovedmenuen:

Fej alle bånd genstarter fejningen af alle de vigtigste HF -bånd. Når den er færdig, viser den oversigtsskærmen beskrevet ovenfor. Skriv dette ned, eller tag et foto, hvis du vil beholde det.

Feje enkeltbånd giver dig mulighed for at vælge et enkelt bånd med encoderen og derefter feje det. Både bølgelængden og frekvensområdet vises, mens valget foretages. Når fejningen er færdig, vil et andet tryk på encoderen vise en simpel VSWR versus frekvensgraf for det bånd, der lige er fejet, med en numerisk indikation af minimum VSWR og den frekvens, det opstod. Dette er meget praktisk, hvis du vil vide, om du skal forkorte eller forlænge dine dipolarme, da det viser VSWR -trenden med frekvens; dette går tabt med den simple numeriske rapport.

Enkelfrekvens giver dig mulighed for at vælge en enkelt fast frekvens og opdaterer derefter løbende en live VSWR -måling til antennetuning i realtid. Vælg først det relevante frekvensbånd; displayet viser derefter centerfrekvensen for det valgte bånd og en live VSWR -aflæsning. Den relevante båndkalibrering anvendes på dette tidspunkt. Et af cifrene i frekvensen vil blive understreget. Dette kan flyttes til venstre og højre med encoderen. Ved at trykke på encoderen forstærkes linjen; derefter vil rotation af encoderen reducere eller øge cifret (0-9 uden omvikling eller bæring). Tryk på encoderen igen for at rette cifferet, og gå derefter videre til det næste. Du kan få adgang til stort set enhver frekvens på tværs af hele HF -spektret ved hjælp af denne facilitet - båndvalget i starten hjælper bare med at komme dig tæt på, hvor du sandsynligvis vil være. Der er dog en advarsel: kalibreringen for det valgte bånd indlæses i starten. Hvis du bevæger dig for langt væk fra det valgte bånd ved at ændre cifrene, bliver kalibreringen mindre gyldig, så prøv at blive inden for det valgte bånd. Når du er færdig med denne tilstand, skal du flytte understregningen helt til højre, indtil den er under 'exit', og derefter trykke på encoderen for at vende tilbage til hovedmenuen.

Hvis du slutter din pc til USB -stikket bag på analysatoren (dvs. i Arduino), kan du bruge Arduino seriel skærm til at indsamle frekvens versus VSWR -værdier under enhver fejning (den er i øjeblikket indstillet til 9600, men du kan ændre det let ved at redigere min skitse). Værdierne kan derefter sættes i et regneark, så du kan plotte mere permanente grafer osv.

Skærmbilledet viser VSWR -resuméet for min 7,6 m fiskestang lodret antenne med 9: 1 UNUN. Min rig kan rumme en 3: 1 max SWR med sin interne auto-tunerenhed. Du kan se, at jeg vil være i stand til at tune det over alle bånd undtagen 80 m og 17 m. Så nu kan jeg slappe af i den viden, at jeg har en farbar flerbåndsantenne, og jeg vil ikke ødelægge noget dyrt, når jeg sender på de fleste bånd.

Held og lykke, og jeg håber, at du finder dette nyttigt.

Anbefalede: