Antennenmessung mit dem SDR-Shield  

Elektronik-Labor  Lernpakete  Projekte  HF  



https://www.elektor.de/das-sdr-praxisbuch



Messegeräte auf der Basis des SDR-Shields wurden ausführlich im SDR-Buch beschrieben. Ein automatisch durchstimmbarer Empfänger und zwei unabhängig steuerbare VFO-Ausgänge eröffnen unzählige Möglichkeiten. Man muss nicht bei jeder Gelegenheit ein teures Messgerät kaufen, sondern man programmiert sich das, was gerade gebraucht wird. Aktuelle brauchte ich eine Impedanzmessung direkt am Fußpunkt der Antenne, die auch die hohe Impedanz eines endgespeisten Dipols messen kann. Auf die Weise konnte ich den Resonanzpunkt und die Verstimmung der Antenne durch kapazitive Einflüsse untersuchen. Anders als im Buch beschrieben wollte ich nicht den ganzen Bereich automatisch durchfahren sondern mit dem Poti auf dem LCD-Shield manuell anstimmen.

Mit der Zweipolmessung wird der Frequenzgang einer Impedanz gemessen. Die einfache Anschlussschaltung verwendet einen hochohmigen Spannungsteiler mit 1 k und dem Messobjekt. Ein zweiter Spannungsteiler führt zum Empfänger-Eingang. Die Schaltung wurde mit SMD-Widerständen möglichst induktivitätsarm  aufgebaut.  Mit dieser einfachen Schaltung kann nicht zwischen Real- und Blindwiderstand unterschieden werden. Gemessen wird die Impedanz in Ohm. Ein gemessener Widerstand von 100 Ω könnte also reell (ein ohmscher Widerstand) oder z.B. ein kapazitiver Blindwiderstand sein. Im Resonanzpunkt hat man reelle Widerstände.





Das NF-Signal am Anschluss D wird auf ein mittleres GND-Potential gebracht und direkt vom AD-Wandler am Kanal ADC2 ausgewertet. Weil der AD-Wandler nur positive Spannungen misst, findet hier praktisch eine Gleichrichtung statt. Der Mittelwert aus 200 Einzelmessungen ist ein zuverlässiges Maß für die Signalspannung.





Damit kann auch eine einfache Stehwellenmessbrücke gebaut werden. Wenn das Messobjekt genau 50 Ohm hat,  gibt es keine Brückenspannung. Der kleine Breitband-Trafo in der Brücke überträgt eine Differenz zwischen den Brückenzweigen, die bei jeder Abweichung von der reellen Impedanz von 50 Ohm auftritt. Bei einem Kurzschluss oder einem offenen Anschluss sollte dieselbe hohe Spannung gemessen werden, die für ein unendlich hohes Stehwellenverhältnis steht. Allerdings sorgt der Innenwiderstand des Generators für ein Ungleichgewicht, das durch kleinere Widerstände im oberen Teil der Spannungsteiler teilweise kompensiert werden kann. Der verwendete Ringkernübertrager war übrigens ein Zufallsfund in der Bastelkiste und ursprünglich nicht für diesen Frequenzbereich vorgesehen, funktionierte aber trotzdem sehr gut.





Eine Messung an einem 50-Ω-Widerstand sollte durchgehend Null zeigen, was einem Stehwellenverhältnis von 1.0 entspricht. Mit 100 Ω oder 25 Ω sollte man entsprechend ein Stehwellenverhältnis von 2 finden. Messungen an reellen Widerständen mit kurzen Leitungslängen können zeigen, wie genau die Messbrücke ist. Kleine Fehler können durch den verwendeten Übertrager und durch Leitungslängen in der Brücke entstehen. Aber damit kann man leben, weil meist nur interessant ist, bei welcher Frequenz das beste Stehwellenverhältnis auf die Resonanz der Antenne hinweist, und wie breitbandig die Antenne ist. Im Prinzip kann auch eine einfache Impedanzmessung diese Fragen beantworten, allerdings erkennt die Stehwellenmessbrücke besser die unerwünschten Blindwiderstände.

Im vorliegenden Fall wollte ich die Impedanzmessung und die Stehwellenmessung in dieselbe Software packen. Im Display erscheint dann die Frequenz, die Impedanz und das Stehwellenverhältnis. Die beiden Messergebnisse setzten allerdings die jeweilige Hardware voraus. Ich kann also vor Ort entweder die Schaltung für die Zweipolmessung oder für die SWR-Messung anstecken, muss aber kein neues Programm laden.

Download: RFStandaloneSWR.zip

//SI5351_vfo + LCD + TX output Clk2
//RX/TX offset = -800 Hz
//RX/TX offset -20...+20 kHz
//S1 Band, WSPR 600m ...10m

#include "si5351.h"
#include "Wire.h"
#include <LiquidCrystal.h>

Si5351 si5351;
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
unsigned long f = 10100;
//nsigned long freqHz;
int pot;
long fstep;
int snr;
int r;

void setup(void)
{
Serial.begin(9600);
Serial.println("Si5351 Clockgen"); Serial.println("");
// Start serial and initialize the Si5351
si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0);
si5351.set_correction(162100, SI5351_PLL_INPUT_XO);
si5351.set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
si5351.set_freq(1010100000ULL, SI5351_CLK0);
si5351.set_freq(4040000000ULL, SI5351_CLK1);
si5351.set_freq(10000ULL, SI5351_CLK2);
si5351.output_enable(SI5351_CLK0, 1);
si5351.output_enable(SI5351_CLK1, 1);
si5351.output_enable(SI5351_CLK2, 0);
lcd.begin(16, 2);
pinMode(A0, INPUT_PULLUP);
pinMode(A1, INPUT_PULLUP);

}



void uac(void)
{
long uac;
analogReference(INTERNAL);
uac =analogRead(A2);
uac=0;
for (int i=0; i <= 200; i++){
uac = uac+ analogRead(A2);
}
snr = uac/50;
if (snr > 400) snr = 400;
Serial.println (snr);
snr= snr + 100;
if (uac > 13700) uac=13700;
r = uac*600/(14000-uac);
}


void loop(void)
{
lcd.setCursor(0, 0);
lcd.print (f);
lcd.print (" ");
analogReference(DEFAULT);
pot = analogRead(A3);
pot = analogRead(A3);
fstep = 0;
if (pot < 200) fstep = 500;
if (pot > 200) fstep = 100;
if (pot > 300) fstep = 10;
if (pot > 400) fstep = 1;
if (pot > 500) fstep = 0;
if (pot > 600) fstep = -1;
if (pot > 700) fstep = -20;
if (pot > 800) fstep = -100;
if (pot > 900) fstep = -500;
f = f + fstep;
if (f < 1000) f=1000;
if (f > 30000) f = 30000;
si5351.set_freq(f*100000ULL, SI5351_CLK0);
delay(100);
si5351.set_freq((f+5ULL)*400000ULL, SI5351_CLK1);
delay(200);
uac();
lcd.setCursor(0, 1);
lcd.print (snr);
lcd.print (" ");
lcd.print (r);
lcd.print (" ");
}




Elektronik-Labor  Lernpakete  Projekte  HF