INHOUDSOPGAWE:

HF -antenne -ontleder met Arduino en DDS -module: 6 stappe (met foto's)
HF -antenne -ontleder met Arduino en DDS -module: 6 stappe (met foto's)

Video: HF -antenne -ontleder met Arduino en DDS -module: 6 stappe (met foto's)

Video: HF -antenne -ontleder met Arduino en DDS -module: 6 stappe (met foto's)
Video: Heavy Metals And Health: The Untold Story 2024, Julie
Anonim
HF -antenna -ontleder met Arduino en DDS -module
HF -antenna -ontleder met Arduino en DDS -module
HF -antenna -ontleder met Arduino en DDS -module
HF -antenna -ontleder met Arduino en DDS -module

Hi

In hierdie instruksies sal ek jou wys hoe ek 'n goedkoop antenna-ontleder gebou het wat 'n antenne kan meet en sy VSWR oor enige of al die HF-frekwensiebande kan vertoon. Dit sal die minimum VSWR en ooreenstemmende frekwensie vir elke band vind, maar ook 'n real-time VSWR vir 'n deur die gebruiker gekose frekwensie om die aanpassing van die antenna te vergemaklik. As u 'n enkele frekwensieband vee, sal dit 'n grafiek van VSWR versus frekwensie vertoon. Dit het ook 'n USB-poort aan die agterkant vir die uitvoer van frekwensie en VSWR-data, om meer verfynde grafiekplotting op 'n rekenaar moontlik te maak. Die USB -poort kan ook gebruik word om die firmware te herlaai indien nodig.

Ek het onlangs amateurradio aangegaan (omdat ek van die idee van peer-to-peer-kommunikasie oor groot afstande sonder infrastruktuur gehou het) en vinnig die volgende waarnemings gemaak:

1. Al die wêreldwye kommunikasie wat my interesseer, vind plaas op die HF-bande (3-30 MHz)

2. HF-ontvangers is baie duur en sal breek as u dit nie in 'n redelik goed gepaste antenna ry nie

3. Daar word oor die algemeen van u verwag om u eie HF -antenna op te rig uit stukke draad wat oor die tuin gespan is (tensy u nog meer geld wil bestee as wat u in 2 spandeer het).

4. Jou antenna kan 'n slegte pasmaat wees, maar jy sal dit eers weet as jy dit probeer.

Nou sal 'n puris waarskynlik sê dat 'n mens eers die antenna op baie lae krag moet toets teen die frekwensie van belangstelling en die VSWR op die meter van die tuig moet kontroleer om die kwaliteit van die vuurhoutjie te bepaal. Ek het nie regtig die tyd om met elke soort frekwensie wat ek dalk wil gebruik, met sulke dinge te sukkel nie. Wat ek regtig wou gehad het, was 'n antenna -ontleder. Hierdie toestelle kan die kwaliteit van die antenna -pasmaat op enige frekwensie oor die HF -bande toets. Ongelukkig is hulle ook baie duur, so ek het begin kyk of ek dit self kan maak. Ek het die uitstekende werk wat deur K6BEZ uitgevoer is, raakgeloop (sien https://www.hamstack.com/project_antenna_analyzer.html), wat ondersoek ingestel het na die gebruik van 'n Arduino om 'n goedkoop module vir direkte digitale sintetiseerder (DDS) te beheer. Hy het die Arduino gou op prys laat vaar, maar verkies om 'n PIC te gebruik. Wel, in 2017 kan u 'n Arduino Nano koop vir ongeveer £ 3,50, so ek het gedink dit is tyd om weer na sy werk te kyk, op te kom waar hy opgehou het en te sien wat ek kan bedink (let op dat ek nie die enigste is nie) wie het dit gedoen: daar is 'n paar baie goeie voorbeelde op die internet).

Update (29/7/2018) - op hierdie werk is aansienlik voortgebou deur bi3qwq, uit China, wat 'n paar goeie verbeterings aangebring het aan die gebruikerskoppelvlak, wat hy vriendelik gedeel het. Hy het 'n baie professionele PCB ontwerp (met 'n uitstekende kalibrasieweerstandfunksie) en 'n baie mooi bouwerk. Om alles te kroon, het hy 'n skema opgestel, wat ek weet baie van diegene wat voorheen kommentaar gelewer het, sal verbly. Sien die kommentaar afdeling vir meer inligting.

Opdatering - ek het onlangs 60 m ingekom, wat die oorspronklike skets nie behandel het nie. So nou het ek firmware weergawe 7 opgelaai, wat die 160 m en 60 m bande byvoeg. Dit is nie byvoegings nie; hulle is volledig geïntegreer in die werking van die ontleder. Dit was gelukkig dat ek 'n u8glib -lettertipe kon vind wat nog leesbaar was, maar ek kon tien bands gelyktydig op die klein skerm vertoon (alhoewel dit nie 'n monospace was nie, wat 'n mate van verdriet veroorsaak het). Ek het die kalibrasiewaardes vir die nuwe bande beraam, gebaseer op interpolasie / ekstrapolasie van die bestaande kalibrasiewaardes. Ek het dit dan met vaste weerstande nagegaan, en dit lewer redelik goeie resultate.

Opdatering - soos verskeie mense oor skemas gevra het, is die fundamentele Arduino / DDS / VSWR -brugbaan grootliks onveranderd van die oorspronklike werk van K6BEZ. Kyk na die bogenoemde URL vir sy oorspronklike skematika waarop ek hierdie projek gebaseer het. Ek het 'n encoder, 'n OLED -skerm en volledig ontwikkelde firmware bygevoeg om 'n moeitelose gebruikerservaring te verseker.

Opdatering - Hierdie stelsel gebruik 'n baie lae spanning DDS -seinbron in samewerking met 'n weerstandsbrug wat diodeverklikkers bevat. Die diodes werk dus in hul nie-lineêre streke, en my eerste weergawe van hierdie stelsel was geneig om VSWR onder te lees. As 'n voorbeeld moet 'n impedansielading van 16 ohm of 160 ohm 'n VSWR van ongeveer 3 in 'n 50 ohm -stelsel toon; hierdie meter het in hierdie situasie 'n VSWR nader aan 2 aangedui. Daarom het ek 'n sagtewarekalibrasie uitgevoer met behulp van bekende ladings, wat 'n effektiewe oplossing vir hierdie probleem blyk te wees. Dit word beskryf in die voorlaaste stap van hierdie instruksies en 'n hersiene skets is opgelaai.

Opdatering - ingeboude grafiese fasiliteit is bygevoeg tot enkele sweeps, aangesien dit te handig was om weg te laat, veral as die antenna lengtes vir minimum VSWR ingestel word: 'n grafiek gee u 'n onmiddellik sigbare neiging.

Stap 1: Koop u goed

U benodig die volgende items. Die meeste van hulle kan goedkoop by Ebay verkry word. Die duurste enkele item was die boks, teen £ 10! Sommige items kan vervang word (ek het byvoorbeeld 47 R in plaas van 50 R gebruik). Die diodes was taamlik ongewoon (ek moes 5 afslag by Italië koop) en sal die moeite werd wees om items wat makliker beskikbaar is, te vervang as u weet wat u doen.

  • Arduino Nano
  • DDS-module (DDS AD9850 Signal Generator Module HC-SR08 Signal Sine Square Wave 0-40MHz)
  • 1.3 "i2c OLED -skerm
  • MCP6002 op-amp (8-pen)
  • 2 af AA143 diode
  • Keramiek -kondensators: 2 van 100 nF, 3 van 10 nF
  • 1 uF elektrolitiese kondensator
  • Weerstande: 3 van 50 R, 2 van 10 K, 2 van 100 K, 2 van 5 K, 2 van 648 R
  • 2,54 mm steekskroefklemblokke: 3 uit 2-pen, 2 uit 4-pen
  • Enkern-aansluitdraad
  • 702 of soortgelyke aansluitdraad
  • Strookbord
  • Vierkante kopstukstrook (wyfie) om die Arduino en DDS aan te sluit - koop nie per ongeluk die ronde sakke nie!
  • SO-239 onderstel vir onderstel
  • Draaikodeerder (15 pols, 30 detent) met drukknop en knop
  • Goedkoop roterende encoder 'module' (opsioneel)
  • Projek boks
  • Wisselskakelaar
  • Reghoekige mini-usb tot USB B-skottelsteun (50 cm)
  • PP3 en batteryklem / houer
  • Selfklevende PCB-monteerpale / afstande

U benodig ook 'n soldeerbout en elektroniese gereedskap. 'N 3D -drukker en 'n pilaarboor is handig vir die omhulsel, maar as u wil, kan u waarskynlik die hele ding op die strook aanmekaar sit en nie 'n boks pla nie.

U onderneem natuurlik hierdie werk en benut die resultate wat op eie risiko gegenereer word.

Stap 2: Lê die strookbord uit

Lê die strookbord uit
Lê die strookbord uit
Lê die strookbord uit
Lê die strookbord uit

Beplan hoe u die komponente op die strookbord gaan rangskik. U kan dit self doen, met verwysing na die oorspronklike skema van K6BEZ (wat nie 'n enkodeerder of skerm het nie - sien bladsy 7 van https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf), of u kan baie tyd bespaar en kopieer my uitleg.

Ek maak hierdie uitlegte op 'n eenvoudige manier met vierkantige papier en 'n potlood. Elke kruising verteenwoordig 'n strookbordgat. Die koperspore loop horisontaal. 'N Kruis verteenwoordig 'n gebreekte baan (gebruik 'n boor van 6 mm of die regte gereedskap as jy een het). Sirkelsrye met 'n boks om hulle verteenwoordig opskrifte. Groot bokse met skroewe dui die verbindingsblokke aan. Let daarop dat daar in my diagram 'n ekstra lyn is wat horisontaal deur die middel van die bord loop. Laat dit uit as u dit bymekaar sit (dit is gemerk 'laat hierdie reël weg').

Sommige komponente blyk vreemd uitgelê te wees. Dit is omdat die ontwerp ontwikkel het sodra ek die basiese hardeware aan die werk gekry het (veral toe ek besef dat die encoder byvoorbeeld hardewareonderbrekings nodig het).

As ek komponente op die bord soldeer, gebruik ek Blu-Tak om dit stewig vas te hou terwyl ek die bord omdraai om die bene te soldeer.

Ek het probeer om die hoeveelheid draad wat ek gebruik het, te verminder deur die Arduino- en die DDS -module in lyn te bring en net die strookbord te gebruik om sleutelpenne aan te sluit. Ek het destyds nie besef dat die hardeware -onderbrekings nodig was om die encoder te lees nie, net op penne D2 en D3 werk, so ek moes DDS RESET van die oorspronklike D3 -verbinding met 'n bietjie draad skuif:

DDS RESET - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

Arduino D2 en D3 word gebruik vir die encoder insette A & B. D11 word gebruik vir die encoder switch input. D12 word nie gebruik nie, maar ek het gedink ek sou 'n skroefaansluiting daarvoor maak vir toekomstige uitbreiding.

Arduino A4 en A5 bied die SDA & SCL (I2C) seine vir die OLED -skerm.

Arduino A0 en A1 neem die insette van die VSWR -brug (via die OPAMP).

Stap 3: Installeer die modules, heg die randapparatuur aan en flits die kode

Installeer die modules, heg die randapparatuur aan en flits die kode
Installeer die modules, heg die randapparatuur aan en flits die kode

Dit is die moeite werd om die bord te toets voordat u die moeite doen om dit in 'n omhulsel te monteer. Bevestig die volgende komponente met behulp van buigsame draad aan die bord met behulp van die skroefklemblokke:

  • 1.3 "OLED -skerm (SDA en SCL is gekoppel aan onderskeidelik Arduino -pen A4 en A5; grond en Vcc gaan natuurlik na Arduino GND en +5V)
  • Draaikodeerder (dit benodig 'n grond, twee seinlyne en 'n skakellyn - u moet moontlik die skakellyne omdraai as die encoder verkeerd werk - koppel dit aan Arduino grond, D2, D3 en D11 onderskeidelik). Let daarop dat ek vir my prototipe werk die 15/30 encoder op 'n KH-XXX encoder modulebord gemonteer het, aangesien die penne op die kaal encoders baie dun is. Vir die laaste taak het ek drade reguit op die encoder gesoldeer.
  • 9V battery
  • SO -239 -aansluiting - soldeer die middelste pen aan die antenna -seinlyn en gebruik 'n M3 -ringaansluiting en skroef vir die antenna -grond

Flits die volgende skets op die Arduino. Maak ook seker dat u die baie goeie OLED -bestuurdersbiblioteek van Oli Kraus ingesluit het, anders kan die kompliment neerstort en brand:

As u OLED -skerm effens anders is, benodig u moontlik 'n ander konfigurasie -instelling in u8glib; dit is goed gedokumenteer in die voorbeeldkode van Oli.

Stap 4: Sit alles in 'n lekker boks (opsioneel)

Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)
Sit alles in 'n lekker boks (opsioneel)

Ek het dit ernstig oorweeg om die ontleder as 'n kaal bord te laat, aangesien dit waarskynlik af en toe gebruik sou word. By nadenke het ek egter gedink dat as ek baie werk aan 'n enkele antenna doen, dit moontlik beskadig kan raak. So het alles in 'n boks gegaan. Daar is geen sin om in detail te gaan oor hoe dit gedoen is nie, aangesien u boks waarskynlik anders sal wees, maar 'n paar belangrike kenmerke is die moeite werd om te noem:

1. Gebruik selfklevende PCB-afstande vir die montering van die strookbord. Hulle maak die lewe regtig maklik.

2. Gebruik 'n kort USB -adapterkabel om die Arduino USB -poort aan die agterkant van die omhulsel uit te haal. Dan is dit maklik om toegang tot die seriële poort te kry om frekwensie vs VSWR -data te verkry en ook om die Arduino te laat terugspoel sonder om die deksel af te haal.

3. Ek het 'n persoonlike 3D-gedrukte onderdeel ontwikkel om die OLED-skerm te ondersteun, aangesien ek niks op die internet kon vind nie. Dit het 'n uitsparing om 'n stuk akriel van 2 mm in te steek om die brose skerm te beskerm. Dit kan óf gemonteer word met dubbelzijdige band of self-tappende skroewe (met die oortjies aan weerskante). Nadat die skerm aangebring is, kan u 'n warm draad (dink paperclip en blaaslamp) gebruik om die PLA -penne aan die agterkant van die printplaat te smelt om alles vas te maak. Hier is die STL -lêer vir almal wat belangstel:

Stap 5: Kalibrasie

Kalibrasie
Kalibrasie

Oorspronklik het ek geen kalibrasie gedoen nie, maar het ontdek dat die VSWR -meter deurgaans laag is. Dit het beteken dat, hoewel 'n antenna goed lyk, die outomatiese ontvanger van my tuig nie daarby pas nie. Hierdie probleem ontstaan omdat die DDS -module 'n baie lae amplitude -sein gee (ongeveer 0,5 Vpp by 3,5 MHz, afrol as die frekwensie toeneem). Die detektordiodes in die VSWR-brug werk dus in hul nie-lineêre gebied.

Daar is twee moontlike oplossings hiervoor. Die eerste is om 'n breëbandversterker by die uitset van die DDS te pas. Potensieel geskikte toestelle is goedkoop in China beskikbaar en dit verhoog die opbrengs tot ongeveer 2 V. pp. Ek het een hiervan bestel, maar ek moet dit nog nie probeer nie. My gevoel is dat selfs hierdie amplitude 'n bietjie marginaal sal wees en dat daar 'n mate van nie-lineariteit sal bly. Die tweede metode is om bekende belastings op die uitset van die bestaande meter te plaas en die getoonde VSWR op elke frekwensieband aan te teken. Hiermee kan u korreksiekurwes bou vir werklike versus gerapporteerde VSWR, wat dan in die Arduino -skets geplaas kan word om regstelling onmiddellik toe te pas.

Ek het die tweede metode aangeneem, aangesien dit maklik was om te doen. Kry net die volgende weerstande: 50, 100, 150 en 200 ohm. Op hierdie 50 ohm -instrument sal dit per definisie ooreenstem met VSWR's van 1, 2, 3 en 4. In die skets is daar 'n skakelaar 'use_calibration'. Stel dit op LAAG en laai die skets op (wat 'n waarskuwing op die spatskerm sal vertoon). Voer dan metings in die middel van elke frekwensieband vir elke weerstand uit. Gebruik 'n sigblad om die verwagte teenoor die vertoonde VSWR te teken. U kan dan 'n logaritmiese kromme vir elke frekwensieband doen, wat 'n vermenigvuldiger en afsnypunt gee van die vorm TrueVSWR = m.ln (MeasuredVSWR)+c. Hierdie waardes moet in die swr_results -skikking in die laaste twee kolomme gelaai word (sien die voorafgaande kommentaarverklaring in die skets). Dit is 'n vreemde plek om dit te plaas, maar ek was haastig en terwyl hierdie reeks winkels dryf, lyk dit destyds na 'n verstandige keuse. Plaas dan die use_calibration -skakelaar terug op HIGH, herlaai die Arduino en begin.

Let daarop dat die kalibrasie toegepas word vir die aanvanklike keuse van die band wanneer die spotfrekwensiemetings gedoen word. Dit sal nie opgedateer word as u groot veranderings in frekwensie aanbring nie.

Nou lees die meter soos verwag vir die vaste vragte en lyk dit sinvol as ek my antennas meet! Ek vermoed dat ek nie die breëbandversterker kan probeer as dit aankom nie …

Stap 6: Gebruik die analiseerder

Die gebruik van die ontleder
Die gebruik van die ontleder
Gebruik die analiseerder
Gebruik die analiseerder

Koppel 'n antenna via 'n PL-259-kabel en skakel die toestel aan. Dit sal 'n spatskerm vertoon en dan outomaties 'n sweep van al die belangrikste HF -bands uitvoer. Die skerm toon die frekwensie wat getoets word, die huidige VSWR -lesing, die minimum VSWR -lesing en die frekwensie waarop dit plaasgevind het. Om die geraas van die meting te verminder, word vyf metings van VSWR op elke frekwensiepunt gedoen; die gemiddelde waarde van hierdie vyf lesings word dan deur 'n nege-punt bewegende gemiddelde filter met betrekking tot frekwensie deurgegee voordat die finale waarde vertoon word.

As u hierdie all-bands-sweep wil stop, druk dan net op die encoder-knop. Die sweep sal stop en 'n opsomming van al die versamelde banddata sal vertoon word (met nulls vir die bands wat nog nie gevee is nie). 'N Tweede druk sal die hoofkieslys vertoon. Keuses word gemaak deur die encoder te draai en dit dan op die toepaslike punt in te druk. Daar is drie keuses in die hoofkieslys:

Deur alle bande te vee, begin die sweep van al die belangrikste HF -bande weer. As dit klaar is, sal dit die opsommingsskerm wat hierbo beskryf is, vertoon. Skryf dit neer of neem 'n foto as u dit wil behou.

Met 'n enkele band kan u 'n enkele band met die encoder kies en dit dan vee. Beide die golflengte en frekwensiebereik word tydens die keuse gemaak. As die sweep klaar is, sal 'n tweede druk van die encoder 'n eenvoudige VSWR versus frekwensie grafiek van die band wat pas gevee is, vertoon, met 'n numeriese aanduiding van die minimum VSWR en die frekwensie wat dit plaasgevind het. Dit is baie handig as u wil weet of u u dipoolarms moet verkort of verleng, aangesien dit die VSWR -neiging met frekwensie toon; dit gaan verlore met die eenvoudige numeriese verslag.

Met 'n enkele frekwensie kan u 'n enkele vaste frekwensie kies en dan voortdurend 'n lewendige VSWR -meting opdateer, in real -time vir antenna -afstemdoeleindes. Kies eers die relevante frekwensieband; die skerm sal dan die middelfrekwensie van die gekose band en 'n lewendige VSWR -lesing wys. Die relevante bandkalibrasie word op hierdie punt toegepas. Een van die syfers van die frekwensie sal onderstreep word. Dit kan met die encoder na links en regs geskuif word. Deur op die encoder te druk, word die lyn sterker; As u die encoder draai, sal dit die syfer verminder of verhoog (0-9 sonder omhulsel of dra). Druk weer op die encoder om die syfer reg te stel, en gaan dan na die volgende een. U kan byna elke frekwensie in die hele HF -spektrum gebruik deur hierdie fasiliteit te gebruik - die bandkeuse aan die begin help u net om naby te kom waar u waarskynlik wil wees. Daar is egter 'n voorbehoud: die kalibrasie vir die geselekteerde band word aan die begin gelaai. As u te ver weg van die geselekteerde band beweeg deur die syfers te verander, word die kalibrasie minder geldig, dus probeer om binne die gekose band te bly. As u klaar is met hierdie modus, skuif u die onderstrepingstreep tot regs totdat dit onder 'exit' is, en druk dan op die encoder om terug te keer na die hoofkieslys.

As u u rekenaar aansluit op die USB -aansluiting aan die agterkant van die ontleder (dws in die Arduino), kan u die Arduino -seriële monitor gebruik om frekwensie versus VSWR -waardes te versamel tydens enige sweepoperasie (dit is tans ingestel op 9600, maar u kan dit verander maklik deur my skets te redigeer). Die waardes kan dan in 'n sigblad geplaas word, sodat u meer permanente grafieke, ens.

Die kiekie toon die VSWR -opsomming vir my 7,6 m visstok vertikale antenna met 9: 1 UNUN. My tuig het 'n maksimum SWR van 3: 1 met sy interne outomatiese eenheid. U kan sien dat ek dit oor alle bande behalwe 80 m en 17 m kan afstem. So nou kan ek ontspan in die wete dat ek 'n begaanbare multi-band-antenna het en dat ek niks duur sal breek as ek op die meerderheid bands kyk nie.

Sterkte en ek hoop dat u dit nuttig sal vind.

Aanbeveel: