0816
Q-metr
autor: OK1FMY
14.03.2019


Nedávno jem si našel trochu času a dokončil jsem projekt, který jsem měl v hlavě už dost dlouho. Q-metr jsem chtěl mít a přitom je mi jasné, že je to přístroj, ktreý použiji jen občas. Takže jsem nedělal nic definitivního do krabičky, ale jenom doplňkový modul k Arduinu na univerzální destičce 5x7 cm. Použil jsem externí generátor signálu - čínský JDS-6600.
Moje Arduino je Mega 2560. Používám ho na hraní, protože se mi ho podařilo koupit za více než přijatelnou cenu. Tento konkrétní projekt by podle mne zvládlo i Nano a to levou zadní. Displayem se v tomto článku nezabývám. Každý arduiňák nějaký má a umí na něm písmenka a číslice zobrazit.
02050 schema
Existují různé možnosti, jak Q-metr udělat. Já jsem zvolil jednoduchou variantu s odporovým děličem. Je to jako obyčejně o kompromisu. Dělicí poměr R1/R2 by měl být asi od 100 do 150. Odpor R2 by měl být co nejmenší, aby netlumil měřený obvod. Odpor R1 je zátěží pro generátor a neměl by být o mnoho menší než 50 ohmů. Já jsem použil jako R1 dva odpory 56 ohmů paralelně. U R1 je potřeba zohlednit i to, že zátěž na něm může být až 0.15 W - ovšem pokud váš generátor je schopen takový výkon dodat. R2 je tvořen v mém případě kouskem odporového drátu a jeho hodnota je cca 0.2 ohmu. Také lze např. spojit paralelně pět odporů 1 ohm. Přesné hodnoty R1 a R2 nejsou až tak důležité. Důležité je změřit dělicí poměr (R1+R2)/R2 a ten zanést jako konstantu do programu - R1R2. Poměr jsem měřil dvěmi způsoby. První způsob - přímo ohmmetrem (Voltcraft LCR-4080). Druhý způsob - přivedl jsem napětí 1.5 V z jednoho monočlánku na dělič a změřil celkové napětí a napětí na R2. Oba způsoby v mém případu vedly k podobnému výsledku - něco mezi 136 a 137. Do programu jsem zadal průměr z těchto dvou hodnot.

Pro uchycení měřených LX-CX jsem zvolil patici s páčkou jak to bývá v různých testerech součástek. Pokud postrádáte pro Q-metr typický ladicí kondenzátor, můžete ho doplnit nebo připojit krátkými drátky do patice - pro nižší kmitočty to určitě vyhoví.

Detektory jsou standardní. Použil jsem diody GAZ51, protože je mám. Kdybych je neměl, použil bych nějaké "šotky". Rozšířené 1N4148 by to určitě zvládly také. Výstupní odpor detektoru je velký a vstupní odpor analogových vstupů Arduina o mnoho menší. Rešil jsem to opakovači s OZ. Je potřeba OZ s FETy na vstupu a aby vystačil s jedním napájením +5V. TLC272 je vhodným kandidátem.

Samostanou kapitolou je nelinearita detektoru. Při nižších napětích na vstupu je napětí na výstupu menší než by bylo přímo úměrné. Já jsem to řešil SW kalibrací v Arduinu. Nejdříve jsem si sestavil tabulku - kolik mV je potřeba na dosažení určité úrovně na analogovém vstupu Arduina. Měření je potřeba provádět na kmitočtu, který váš milivolmetr zvládá. Já jsem použil UNI-11e z bývalé NDR a měřil jsem na kmitočtu 20 kHz.
02050 KalibracePro měření v Arduinu je potřeba definovat napěťovou referenci. Nejdříve jsem zkoušel interní 2.56 V. Zjistil jsem ale, že interní reference závisí na napájecím napětí. Když napájím Arduino z USB je napětí reference o něco nižší než když použiji externí zdroj 9 nebo 12 V. Ono se zvýší i napětí 5 V na desce. Při napájení z USB mám cca 4.8 V a při externím napájení je to cca 5.05 V. Nakonec jsem použil stabilizátor 3.3 V na desce jako externí referenci (AREF). Stabilizátor dává 3.3 V dost přesně a jeho napětí se nemění při změně napájení. K měření jsem použil jednoduchý prográmek analog0, který také přikládám.

Získal jsem následující tabulku pro dvě diody:
Dílky [mV] 25 50 100 150 200 300 400 600 800 1000
D1 [mV] 106 180 310 442 562 819 1030 1505 2000 2480
D2 [mV] 108 179 307 438 560 810 1020 1505 1980 2480

Z tabulky jsem udělal závěr, že mezi diodami není významný rozdíl a dále jsem používal průměr z obou hodnot. Také jsem zjistil, že zhruba od 400 dílků naměřených na Arduinu je závislost výstupního napětí na vstupním již lineární.
V tabulce je vstupní napětí v mV jako efektivní hodnota a detektor má na výstupu hodnotu špičkovou. Ale to nevadí, protože pro výpočet Q je důležitý poměr napětí naměřeného na obvodu LC a na vrcholu děliče R1R2.

Rozhodl jsem se počáteční nelineární část charakteristiky detektoru aproximovat pomocí funkce a*pow(x,b) a lineární část pomocí přímky ax + b. V Excelu jsem vypočítal regresi a průsečík lineární a nelineární části. Výsledná aproximační funkce je:
 // Detector characteristic values
#define linThreshold 409
// non-linear part
const float a1 = 6.146567;
const float b1 = 0.85436;
// linear part
const float a2 = 2.4875;
const float b2 = 30.00136;
// count milliVolts from digital level
float milliVolts (int level)
{
  float floatLevel = float(level);
  if (level < linThreshold) // non-linear part
    { return a1 * pow (floatLevel, b1); }
  // else - linear part
  return a2 * floatLevel + b2;
}
Excelový soubor jsem přiložil a zájemcům rád pomůžu. Stačí, když si provedete kalibraci diod podle mého postupu. Také je možné nelinearitu detektoru ignorovat a spokojit se s méně přesnými výsledky. Potom stačí v programu funkci milliVolts() vynechat a počítat:
valueQ = int( float(levelLC) * R1R2 / float(levelIn) + 0.5 );
V programu jsem použil časovač - timer. Pro jistotu ho přikládám také. Program funguje následovně:
V základní smyčce měří a ukazuje výsledky naměřené na detektorech. Zobrazují se hodnoty získané z funkce analogRead(), což jsou celá čísla v rozsahu od 0 do 1023. Toto slouží k nalezení rezonance (maximum LC) a nastavení
úrovně od generátoru. Obě hodnoty by měly být co největší, ale menší než 1023. Když zmáčknete tlačítko Q, měření se přeruší a z posledních naměřených hodnot je spočteno Q. Poté program čeká dokud tlačítko nepustíte. Text programu jsem přiložil také - qmeter2.

Jako všechny měřicí přístroje i tento má své parazitní hodnoty. Reálně lze zobrazit měřený obvod na následujícím obrázku. V patici jsem použil vždy šest párů kontaktů pro CX a pro LX. Parazitní kapacitu poloviny patice jsem naměřil cca 2.5 pF. Pokud chcete upřesnit výsledky měření, můžete počítat. Může to mít význam při vysokém Q, kde se uplatní tlumení R2. Způsob zapojení kontaktů patice 2x12 pro jistotu přikládám také.
02050 ObvodLC02050 Patice
02050 Display


02050 Qmetr

První pokusy jsem dělal s tlumivkou 470 uH (její reálná hodnota je okolo 430 uH) a kondenzátorem 1 nF (reálně cca 1030 pF). Rezonance byla trochu nad 237 kHz. Naměřené Q = 63 je podle mne realistická hodnota.
Jsem připraven odpovědět na dotazy: ok1fmy@crk.cz  Miloš, OK1FMY
Ke stažení
 [1] analog0.ino program pro kalibraci diod OK1FMY
 [2] qmeter2.ino výpočet hodnot pro funkci milliVolts() OK1FMY
 [3] qmeter2.ino vlastní program pro Q-metr OK1FMY
 [4] Timer-master.zip použit v programu qmeter2 OK1FMY