USB PC SWR in merilnik moči

Vse kar si radioamaterji sami naredimo zato, da bi naredili daljšo, boljšo in sploh radijsko zvezo.

USB PC SWR in merilnik moči

OdgovorNapisal/-a S55TA » 28 Jun 2025, 10:29

Izdelal sem USB SWR meter in merilnik moči. Temelji na klasični zasnovi tandem merilnega mostička in diod. Povezava je na USB. Program se izvaja na PC. V planu je izgradnja z AD8307. Trenutno pa uživam v velikem zaslonu SWR merilnika.

L.P. Tomo, S55TA.
Priponke
2025-06-28.png
Uporabniški avatar
S55TA
 
Prispevkov: 180
Pridružen: 14 Jul 2017, 12:55
Kraj: Turjak
Zahvalil se je: 3 krat
Prejel zahvalo: 114 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 11

Re: USB PC SWR in merilnik moči

OdgovorNapisal/-a S55RU » 29 Jun 2025, 22:33

Izgleda zelo obetavno.

Bi napisal kaj več ali gre za zaupno stvar? Hardware, software,...?
Uporabniški avatar
S55RU
 
Prispevkov: 542
Pridružen: 18 Jan 2015, 02:18
Kraj: Posočje
Zahvalil se je: 159 krat
Prejel zahvalo: 98 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 11

Re: USB PC SWR in merilnik moči

OdgovorNapisal/-a S55TA » 30 Jun 2025, 17:51

To je je samo za uvod. Nadaljevanje sledi.

Tomo
Uporabniški avatar
S55TA
 
Prispevkov: 180
Pridružen: 14 Jul 2017, 12:55
Kraj: Turjak
Zahvalil se je: 3 krat
Prejel zahvalo: 114 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 11

Re: USB PC SWR in merilnik moči

OdgovorNapisal/-a S55TA » 01 Jul 2025, 08:05

Koda SWR power metra in nekaj razlage.

Ta dokument je vaš ključ do razumevanja, prilagajanja in izboljšanja programske opreme za vaš Arduino SWR meter. Namenjen je vsem, ki želijo vedeti, kaj se dogaja "pod pokrovom".

Filozofija Delovanja: Od RF do Številke

Srž delovanja je preprosta, a elegantna: Strojna oprema (Tandem Match Coupler in diodni detektor) pretvori droben del RF moči (direktne in odbite) v enosmerno (DC) napetost. Višja kot je moč, višja je DC napetost. Vezje to napetost oslabi s fiksnim napetostnim delilnikom, da zaščiti Arduino in jo spravi v primerno merilno območje. Arduino (njegov ADC - Analogno-Digitalni Pretvornik) izmeri to oslabljeno DC napetost.
Programska oprema (ta koda) vzame izmerjeno napetost, jo s pomočjo kalibracijskih tabel pretvori nazaj v moč (W) in iz razmerja med močmi (oziroma napetostmi) izračuna SWR.
Poglavje 1:

Pot Signala in Ključni Izračuni
Tu se skriva vsa "magija". Če razumete to, razumete vse. 1.1 analogToVoltage(int rawAdc) - Od Številk do Voltov Kaj počne: Pretvori surovo digitalno vrednost (0-1023), ki jo vrne ADC, v dejansko napetost v Voltih.
Kako deluje:

Arduino ADC ima 10-bitno ločljivost, kar pomeni 2¹⁰ = 1024 korakov (od 0 do 1023).
Vrednost 0 predstavlja 0V. Vrednost 1023 predstavlja referenčno napetost (ADC_ACTUAL_VREF).
Formula: Napetost = (PrebranaVrednost / NajvišjaVrednost) * ReferenčnaNapetost
V kodi: return (rawAdc / 1023.0) * ADC_ACTUAL_VREF. Hekerski nasvet: ADC_ACTUAL_VREF je najpomembnejša konstanta za natančnost! Nikoli ni točno 5.0V ali 3.3V. Z multimetrom natančno izmerite napetost na AREF pinu (ker uporabljate analogReference(EXTERNAL)) in to vrednost vpišite v kodo. Razlika med 3.30V in 3.28V že vpliva na končni rezultat.

1.2 interpolatePower(...) - Umetnost Uganjevanja med Točkami. Kaj počne: Ker diodni detektor ni linearen (dvojna moč ne pomeni dvojne napetosti), ne moremo uporabiti preproste formule. Namesto tega imamo tabelo znanih točk (npr. pri 0.5V je moč 2W, pri 0.6V je 3.5W). Ta funkcija izračuna moč za katerokoli napetost med temi točkami.

Kako deluje (Linearna Interpolacija):
Poišče dve zaporedni točki v kalibracijski tabeli, med kateri pade naša izmerjena napetost voltage. Recimo, da sta to (v_i, p_i) in (v_i+1, p_i+1).
Izračuna, kje znotraj intervala napetosti [v_i, v_i+1] se nahaja naša napetost. To je preprosto razmerje: (voltage - v_i) / (v_i+1 - v_i). Če je vrednost 0.5, je točno na pol poti.
To isto razmerje nato uporabi na intervalu moči [p_i, p_i+1] in ga prišteje k osnovni moči.
Formula: Moč = p_i + (RazmerjeNapetosti) * (p_i+1 - p_i)

Hekerski nasvet:
Natančnost celotnega merilnika je neposredno odvisna od kakovosti kalibracijskih tabel. Več točk kot imate, in bolj kot so te natančno izmerjene, boljši bo rezultat.
Tabele so v PROGMEM, da prihranijo dragocen SRAM. Zato se za branje uporablja funkcija pgm_read_float_near().
Koda v setup() preveri, ali so napetosti v tabeli naraščajoče. To je varovalka, ki prepreči, da bi interpolacija dala nesmiselne rezultate ali se sesula.

1.3 Izračun SWR v measureAndReport() - Pametnejši Pristop
Lahko bi izračunali fwd_watts in rev_watts in nato iz njiju SWR. Ampak koda uporablja boljši, bolj robusten pristop.
Zakaj je boljši? Vsaka interpolacija vnese manjšo napako. Če bi SWR računali iz dveh že interpoliranih vrednosti (moči), bi se napaki sešteli. Z izračunom iz razmerja napetosti, ki so bolj "surovi" podatki, se tej napaki izognemo.

Kako deluje:
Izračun koeficienta odbojnosti (Rho, ρ): To je temeljno razmerje v RF tehniki. Pove, kolikšen delež signala se je odbil.
rho = V_rev / V_fwd
Kjer sta V_rev in V_fwd dejanski napetosti na izhodu detektorja. Ker pa sta obe napetosti v našem vezju oslabljeni za enak faktor (s fiksnim -10.1 dB delilnikom), je razmerje oslabljenih napetosti enako razmerju originalnih napetosti. To je ključno!
V kodi: float rho = rev_voltage / fwd_voltage;
Omejitev Rho: V idealnem svetu je rho lahko največ 1 (vsa moč se odbije). V praksi lahko zaradi šuma in drobnih razlik v kalibraciji preseže 1. To bi povzročilo negativno vrednost v imenovalcu SWR formule in matematično napako. Zato koda varno omeji rho na 0.99.
V kodi: if (rho > 0.99) rho = 0.99;
Klasična SWR Formula:
SWR = (1 + rho) / (1 - rho)
Če je rho = 0 (ni odbite moči), je SWR = (1+0)/(1-0) = 1. Popolno.
Če je rho = 0.33 (tretjina napetosti se odbije), je SWR = (1.33)/(0.67) ≈ 2.0.
V kodi: swr = (1.0 + rho) / (1.0 - rho);
Prag za prikaz (Threshold): Računanje SWR pri zelo nizki moči (npr. samo šum) je nesmiselno in daje divje rezultate. Zato koda računa SWR le, če je direktna moč (fwd_watts) nad pragom SWR_DISPLAY_THRESHOLD_W. Sicer privzame, da je SWR idealen (1.0).

Poglavje 2: Kako "Hekati" Kodo (Ideje za Modifikacije)

NAJPOMEMBNEJŠE: Naredite svojo kalibracijo!
Priključite natančen merilnik moči in 50-ohmsko breme (dummy load).
Oddajajte z različnimi močmi (npr. 1W, 2W, 5W, 10W, 20W, ...).
Za vsako moč si na serijski monitor (ali z multimetrom na pinih A0/A1) zapišite izmerjeno napetost.
S temi pari vrednosti (Moč, Napetost) ustvarite svoje tabele fwd_calibration_voltage_PGM in fwd_calibration_power_w_PGM.
Za REV kanal obrnite mostiček in ponovite postopek. To bo 10x povečalo natančnost vašega instrumenta.

Prilagoditev Povprečenja:
Konstanta NUM_SAMPLES = 25 določa, koliko meritev se povpreči.
Povečajte vrednost (npr. na 50): Odčitki bodo bolj mirni in stabilni, a se bodo počasneje odzivali na spremembe (npr. pri SSB modulaciji).
Zmanjšajte vrednost (npr. na 10): Odčitki bodo hitrejši in bolj "poskočni", a tudi bolj občutljivi na šum.

Dodajte Alarm za Visok SWR:
Odkomentirajte pine za alarm (ALARM_IZHODNI_PIN).
V funkciji measureAndReport(), po izračunu SWR, dodajte:
Generated cpp
if (swr > 2.5 && fwd_watts > 1.0) { // Prag SWR in minimalna moč za alarm
digitalWrite(ALARM_IZHODNI_PIN, HIGH);
} else {
digitalWrite(ALARM_IZHODNI_PIN, LOW);
}

Implementacija "Peak Hold" Funkcije:

Dodajte globalne spremenljivke, npr. float fwd_peak_watts = 0.0;.
V loop() dodajte logiko, da če je trenutna moč višja od shranjene najvišje, se ta posodobi.
Dodajte gumb ali serijski ukaz, ki ponastavi fwd_peak_watts na 0.
To je izjemno uporabno za merjenje najvišje moči pri SSB oddaji.

Povezava z Zaslonom (LCD/OLED):
Podatki se že pošiljajo preko serijskega vmesnika v lepem formatu. Namesto Serial.println(dataString);, lahko te podatke pošljete na I2C ali SPI zaslon za samostojno delovanje brez računalnika.

To bi bilo za arduino kodo. Če bi kdo rad izdelal svojo kalibracijsko tabelo, ker ima natančnejši in močnejši izvor signala, naj sporoči, da mu pošljem kalibracijski software. Trenutno pa je nastavljeno do 130W kolikor je moj izvor signala.
Priponke
VSWRPOWERMETER.zip
(3.82 MiB) Prenešeno 7 krat
Uporabniški avatar
S55TA
 
Prispevkov: 180
Pridružen: 14 Jul 2017, 12:55
Kraj: Turjak
Zahvalil se je: 3 krat
Prejel zahvalo: 114 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 11

Re: USB PC SWR in merilnik moči

OdgovorNapisal/-a S55TA » 01 Jul 2025, 08:27

Še nekaj besen o PC softweru. Napisan je v VisualStudiju.

Uporabniški Priročnik za SWR/Power Meter v. 2KW.

Pozabi na dolgočasne manuale v PDF obliki. To je tvoja nova komandna plošča za radijsko postajo. Nič več ugibanja, samo čisti podatki v realnem času, predstavljeni tako, da jih razumeš na prvi pogled.

Poglavje 1: Prvi Zagon in Povezava z Matrico
Preden greš v eter, moraš vzpostaviti povezavo med programom in tvojim Arduino SWR mostičkom.
Priklopi USB: Poveži Arduino z računalnikom. Operacijski sistem mu bo dodelil COM vrata.
Zaženi Program: Odpri SWR_Power_Meter.exe (ali kakorkoli si ga poimenoval).

Ujemi Signal (zgoraj levo):
Izberi COM Vrata: V padajočem meniju izberi prava COM vrata, na katera je priključen tvoj Arduino. Če nisi prepričan, klikni "Osveži", da program ponovno poišče vse naprave.
Vzpostavi Povezavo: Klikni gumb "Poveži" (na sliki je verjetno že povezan, ker je gumb Prekini aktiven).
Zelena Luč: Ko lučka zraven gumbov zasveti zeleno, si povezan. Podatki bodo začeli pritekati. Če želiš prekiniti, pritisni "Prekini".

Poglavje 2: Komandna Plošča - Vse na Dlani

Tvoj zaslon je razdeljen na tri ključne cone: digitalne odčitke, hitre vizualne grafe in analogne števce za dušo.
VELIKE ŠTEVILKE (Levo): Digitalna Natančnost
Tukaj ni prostora za napake. To so tvoji primarni podatki.
FWD: Direktna moč v Vatih (W), ki jo tvoj oddajnik pošilja proti anteni. To je surova sila.
SWR: Razmerje stojnih valov. Ključni podatek o tem, kako dobro je tvoja antena prilagojena. Nižje je boljše.
REV: Odbita moč v Vatih (W). To je moč, ki se je od antene "odbila" nazaj, ker je antena ni mogla v celoti sprejeti. To moč tvoj finale (izhodna stopnja) "kuri" zaman.
PEAK Vrednosti: Program si za vsak podatek zapomni najvišjo doseženo vrednost. Nujno za SSB operaterje! S tem vidiš, kakšno je tvoje razmerje med povprečno in vršno močjo (PEP). Za ponastavitev verjetno dvoklikneš na vrednost ali pa se ponastavi ob ponovni povezavi.
GRAFIČNI PRIKAZI (Zgoraj na sredini): Hitri Pogled
Za trenutke, ko nimaš časa brati številk. En pogled in vse ti je jasno.
Moč v anteno: Barvni graf, ki prikazuje tvojo direktno moč. Lestvica se prilagaja glede na izbrano merilno območje.
SWR: Kritični graf. Dokler je kazalec v modrem/zelenem, si varen. Ko leze proti rdečemu, je čas, da prenehaš oddajati in preveriš anteno.
Izgube: Vizualizacija tvoje odbite moči. Naj bo ta bar čim krajši!
Odstotki (desno):
97%: Odstotek moči, ki je dejansko prišla do antene (Pout / Pfwd).
13% (%REF): Odstotek moči, ki se je odbila nazaj.
ANALOGNI ŠTEVCI (Spodaj): Retro Duša, Digitalna Preciznost

Za vse, ki pogrešate premikanje klasičnih kazalcev. Prikazujejo enake podatke kot digitalni odčitki, a na bolj "organski" način. Super za intuitivno spremljanje med uglaševanjem.

Poglavje 3: Podatki za Gurmane (Spodaj levo)
Tukaj se loči zrnje od plev. To so podatki, ki ti povedo celotno zgodbo.
FWD/REV (dBm): Moč, izražena v decibel-miliVatih. Standard v profesionalni tehniki.
RL (Return Loss): Povratno slabljenje v dB. To je mera, kako "dobro" antena sprejema moč. Višja številka je boljša! RL 20 dB pomeni, da je antena "pojedla" 99% moči (SWR ≈ 1.2). RL 10 dB pomeni, da je pojedla 90% moči (SWR ≈ 1.9).
Pout: Dejanska moč, ki jo oddaja tvoja antena v eter (FWD moč - REV moč).
ML (Mismatch Loss): Izgube zaradi neprilagojenosti v dB. To ti pove, koliko moči se je izgubilo že v napajalnem kablu, preden je sploh prišla do antene, zgolj zaradi slabega SWR. To je energija, ki jo tvoj oddajnik ustvari, a nikoli ne postane del oddanega signala.
%REF: Enako kot odstotek pri grafih – delež odbite moči.
R1/R2 (Impedanca): Program poskuša iz SWR izračunati impedanco tvoje antene. POZOR: Ta izračun je veljaven samo, če je antena povsem resonančna in nima reaktančne komponente (X=0). V praksi je to bolj informativen podatek.

Poglavje 4: Prilagodi si Izkušnjo
Merilno območje: Izberi območje, ki ustreza tvoji moči (QRP ali QRO). S tem se bodo lestvice na grafih in števcih pravilno nastavile za maksimalno preglednost.
Tema: Izbiraš med temno (privzeto) in verjetno svetlo temo, da se vmesnik prilega tvojemu "shacku" podnevi ali ponoči.
Izhod: Ko končaš z delom, klikni "Izhod", da zapreš program.
PRO TIP: Uporabi te podatke, da resnično spoznaš svojo anteno. Spremljaj SWR in RL, ko spreminjaš frekvenco. Tako boš točno vedel, kje je tvoja antena najsrečnejša. Zdaj imaš orodje. Uporabi ga pametno.
73! Tomo, S55TA
Priponke
2025-06-28.png
Uporabniški avatar
S55TA
 
Prispevkov: 180
Pridružen: 14 Jul 2017, 12:55
Kraj: Turjak
Zahvalil se je: 3 krat
Prejel zahvalo: 114 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 11

Re: USB PC SWR in merilnik moči

OdgovorNapisal/-a S55TA » 02 Jul 2025, 09:15

Vse o tandemskem sklopniku, SWR mostičku. Kako ga navijemo bom pokazal prihodnjič, ko dobim pcb-je in bo vse razvidno s slike.

73, Tomo, S55TA
Priponke
Tandemski usmerjeni sklopnik.docx
(168.69 KiB) Prenešeno 21 krat
Uporabniški avatar
S55TA
 
Prispevkov: 180
Pridružen: 14 Jul 2017, 12:55
Kraj: Turjak
Zahvalil se je: 3 krat
Prejel zahvalo: 114 krat
Uporabnika povabil: radix
Število neizkoriščenih povabil: 11


Vrni se na Radioamaterske samogradnje

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost