5-miestny stolový multimeter so sieťovou komunikáciou

V praktickej časti ZENIT v elektronike sme stavali 5-miestny stolový multimeter s USB/Wifi komunikáciou. Multimeter meria jednosmerné napätie do 400 V, jednosmerný prúd do 5 A, odpor v rozsahu 1R – 10 M, polovodičové prechody a teplotu s použitím rezistívnych senzorov. Merací prístroj komunikuje s vonkajším svetom cez štandardné rozhranie SCPI (sériová linka USB, alebo Wifi), takže dokážete čítať namerané údaje a prístroj aj aktívne riadiť v prípade automatizovaných meraní. Podľa kvality kalibrácie sa neistota merania pohybuje na úrovni 0,01 – 0,1 %. Je to veľmi užitočný a hodnotný prístroj do domáceho laboratória.

 

Meracia časť

Schéma zapojenia a osadzovací plán meracej časti. Zoznam súčiastok, aj ich referencie sú rovnaké ako v zadaní praktickej časti ZENITu. Na druhej stránke schémy je pridaný kompletný napájací zdroj. Všetky súčiastky okrem operačného zosilňovača a AD prevodníka sú dostupné z TME. Ak máte záujem o návrh dosky plošného spoja vhodný pre výrobu kontaktujte ma.

Riadiaca časť

Schéma zapojenia a osadzovací plán riadiacej časti. Zoznam súčiastok. Väčšina dostupná z TME, displej, arduino nano a wifi modul z RLX alebo internetu... Ak máte záujem o návrh dosky plošného spoja vhodný pre výrobu kontaktujte ma.

Krabica pre prístroj vyrobená na 3D tlačiarni

Filip Kollár zo SPŠE K. Adlera v Bratislave navrhol krabicu pre multimeter, ktorá sa dá kompletne vyrobiť na 3D tlačiarni. STL súbory na stiahnutie.


Firmware

Pripravili sme tri verzie riadiaceho programu pre multimeter.

Toto je vzorové riešenie úlohy programovanie mikrokontrolérov zo súťaže ZENIT. Program je vytvorený v prostredí Arduino IDE zenit2018_vzor.ino

Základná verzia software vytvorená v prostredí Arduino IDE, ktorá poskytuje takmer plnú funkcionalitu multimetra. V programe nie je implementovaný zápis kalibračných konštánt do EEPROM (musia byť nadefinované v programe pred kompiláciou) a nie je implementovaná komunikácia cez Wifi. Komunikácia cez USB je plne funkčná. zdrojový kód (Arduino)

Martin Eršek pripravil plne funkčný riadiaci software v C (vrátane Wifi komunikácie), projekt je voľne k dispozícii cez jeho GitHub. Stiahnite si celý projekt a skompilujte-upravte, alebo si stiahnite uz hotový .hex a flashnite do arduina pomocou avrdude.

Podrobnejšia dokumentácia ku firmware pdf.

Komunikácia multimetra s počítačom

Prístroj komunikuje po galvanicky oddelenej sériovej linke (USB) rýchlosťou 9600 baud. Každý príkaz musí byť ukončený znakom \n. V plnej verzii firmware prístroj disponuje aj Wifi konektivitou, viď. návod na použitie Wifi.

Príastroj akceptuje štandardné príkazy vo formáte SCPI. Príkaz s otáznikom na konci si vyžiada nameranú hodnotu, alebo uloženú kalibračnú hodnotu, napríklad :MEAS:VOLT?

Pre zápis hodnoty do prístroja (zmenu rozsahu, zmenu meranej veličiny) sa pošle príkaz s hodnotou na konci, napríklad :CAL:VREF 4.998.

Príklad komunikácie s multimetrom

Identifikácia prístroja

*IDN?
Multimeter ZENIT

Odmeranie napätia, údaj priamo vo voltoch

:MEAS:VOLT?
3.252319

Priame odobratie vzorky z AD prevodníka (používa sa pri kalibrácii)
:MEAS:RAW?
5036648

Zmeranie odporu rezistora, údaj v Ohmoch

:MEAS:RES?
561.838

Vyzdvihnutie kalibračnej konštanty slope (smernica) pre rozsah 4V

:CAL:SLOPE:V4DC?
1.2919864e-07

Zápis kalibračnej konštanty slope (smernica) pre rozsah 4V

:CAL:SLOPE:V4DC 1.3919865e-07

Následné overenie práve zapísanej hodnoty kalibračnej konštanty
:CAL:SLOPE:V4DC?
1.3919865e-07

Štandardné príkazy:
*IDN?
Odpoveď "Multimeter ZENIT"

Meracie príkazy:
:MEAS:RES?
:MEAS:VOLT?
:MEAS:CURR?
:MEAS:TEMP?
:MEAS:TEMP:RTD?
:MEAS:TEMP:NTC?
:MEAS:DIODE?
:MEAS:RAW?

Zmena rozsahu:
:MEAS:VOLT:RANGE 1
:MEAS:VOLT:RANGE 2
:MEAS:VOLT:RANGE 3
:MEAS:VOLT:RANGE AUTO
:MEAS:VOLT:RANGE?

:MEAS:CURR:RANGE 1
:MEAS:CURR:RANGE 2
:MEAS:CURR:RANGE 3
:MEAS:CURR:RANGE AUTO
:MEAS:CURR:RANGE?

Kalibrácia:
:CAL:VREF {Reference voltage}
:CAL:VREF?

:CAL:SLOPE:V4DC {Slope for 4V range}
:CAL:SLOPE:V4DC?
:CAL:SLOPE:V40DC {Slope for 40V range}
:CAL:SLOPE:V40DC?
:CAL:SLOPE:V400DC {Slope for 400V range}
:CAL:SLOPE:V400DC?
:CAL:SLOPE:A5DC {Slope for 5A range}
:CAL:SLOPE:A5DC?
:CAL:SLOPE:MA40DC {Slope for 40mA range}
:CAL:SLOPE:MA40DC?
:CAL:SLOPE:MA400DC {Slope for 400mA range}
:CAL:SLOPE:MA400DC?

:CAL:OFFSET:V4DC {Offset for 4V range}
:CAL:OFFSET:V4DC?
:CAL:OFFSET:V40DC {Offset for 40V range}
:CAL:OFFSET:V40DC?
:CAL:OFFSET:V400DC {Offset for 400V range}
:CAL:OFFSET:V400DC?
:CAL:OFFSET:A5DC {Offset for 5A range}
:CAL:OFFSET:A5DC?
:CAL:OFFSET:MA40DC {Offset for 40mA range}
:CAL:OFFSET:MA40DC?
:CAL:OFFSET:MA400DC {Offset for 400mA range}
:CAL:OFFSET:MA400DC?

:CAL:R1 {reference resistor value R1}
:CAL:R1?
:CAL:R2 {reference resistor value R2}
:CAL:R2?

:CAL:TEMP:NTC_COEFF_B {NTC sensor coefficient Beta}
:CAL:TEMP: NTC_COEFF_B?
:CAL:TEMP:NTC_R25 {NTC sensor resistance value at 25°C}
:CAL:TEMP:NTC_R25?
:CAL:TEMP:RTD_COEFF_A {RTD sensor resistance temperature coefficient}
:CAL:TEMP: RTD_COEFF_A?
:CAL:TEMP:RTD_R0 {RTD sensor resistance value at 0°C}
:CAL:TEMP:RTD_R0?

Wifi komunikácia

Pre funkčnosť komunikácie s multimetrom cez WiFi je potrebné:

V repozitári na zadanej adrese sa nachádza aj skompilovaný súbor main.hex, v tomto súbore sú však skompilované defaultné prihlasovacie údaje na wifi a to konkrétne : WIFI_SSID "your_wifi" WIFI_PASS "your_password".

Pokiaľ budete chcieť aby sa multimeter pripojil na Vašu domácu wifi sieť, je potrebné v súbore esp.h editovať tieto údaje: #define WIFI_SSID "your_wifi" #define WIFI_PASS "your_password" tj. nahradiť ich Vašim názvom wifi a heslom k nej (v prípade prázdneho hesla použite ""). Následne daný kód skompilujte za pomoci "make clean", "make", prípadne aj rovno nahrajte "make upload". "make clean" je potrebný nakoľko zmena nastala len v súbore esp.h a tým pádom by make považoval esp.o za nezmenený tj. nové údaje by sa znovu neskompilovali!!!

Pripojenie sa k zariadeniu: Multimeter sa po stlačení tlačítka č.8 pokúsi pripojiť na wifi, v prípade úspešného pripojenia napíše na displej získanú IP adresu (IP adresu získa z DHCP serveru Vášho wifi routera tj. je potrebné mať zapnuté DHCP (väčšina routerov ak nie všetky ho majú zapnuté by default)). Prístroj čaká na spojenia (je schopný obsluhovať viacero spojení súčastne tj. viete sa naň súčastne pripojiť z viacerých PC a posielať oddelene SCPI príkazy) na porte definovanom v súbore esp.h by default to je: SCPI_PORT "1234"

Pripojenie k prístroju:

Linux, Mac: Do terminálu zadáme príkaz telnet s nasledujúcimi parametrami: telnet ip port tj. napr.: telnet 192.168.1.13 1234 Stlačením "ENTER" spustíme telnet v shelli, po úspešnom pripojení môžeme začať zadávať SCPI príkazy (identické SCPI príkazy ako v UART móde).

Windows: Nainštalujeme si program Putty. V putty zvolíme možnosť connection type na hodnotu telnet, do políčka hostname vložíme IP adresu multimetra a rovnako do políčka port na ktorom multimeter načúva. Voľbu potvrdíme tlačítkom Open. Otvorí sa nám okno do ktorého môžeme začať zadávať SCPI príkazy (identické SCPI príkazy ako v UART móde). Samozrejme pre automatizáciu meraní si môžete napísať vlastné skripty napr. v pythone, ktoré sa identickým spôsobom pripoja k multimetru.

Kalibrácia

Merací prístroj bol navrhnutý s použitím dostupných presných a stabilných súčiastok. Elektronika meracieho prístroja je vysoko lineárna a prevodové charakteristiky všetkých meraných veličín sa dajú vyjadriť polynómom prvého rádu (y = smernica * x + offset).

Bez kalibrácie, len s použitím hodnôt a tolerancií súčiastok zo schémy sa neistota merania multimetra pohybuje na úrovni 1%. Vzhľadom na to, že multimeter komunikuje s nadriadeným počítačom je veľmi jednoduché prístroj okalibrovať s použitím iného, presnejšieho multimetra (napr. 6.5 miestneho). Nové, presnejšie kalibračné konštanty sa zapíšu do pamäti mikrokontroléra a neistota merania sa zníži až na úroveň 0.02-0.05%.

Štandardné hodnoty prevodových konštánt pre meranie napätia vypočítané z hodnôt súčiastok:

Vref = 5.000 (Volt)
Slope_U4VDC = (2490.0 + 747.0) / (747.0) * 0.5 / 2^24 = 1.29143397e-07 (Volt/bin)
Offset_U4VDC = 0.0 (Volt)

Hodnoty prevodových konštánt získané kalibráciou s použitím presnejšieho 5.5 miestneho multimetra:

Vref = 4.998 (Volt)
Slope_U4VDC = 1.29198636e-07 (Volt/bin)
Offset_U4VDC = -3.58179155e-05 (Volt)

Príklad jednoduchého skriptu (Python), ktorý ovláda laboratórny zdroj Rigol, Multimeter Rigol a Multimeter Zenit. Z nameraných údajov vypočíta kalibračné konštanty.

Príklad dosiahnutých výsledkov u prototypu, meranie napätia rozsah 4V:

Príklad dosiahnutých výsledkov u prototypu, rozsah 40V:

Príklad dosiahnutých výsledkov u prototypu, rozsah 400V:

Príklad dosiahnutých výsledkov u prototypu, meranie prúdu rozsah 40mA:

Príklad dosiahnutých výsledkov u prototypu, rozsah 400mA:

Príklad dosiahnutých výsledkov u prototypu, rozsah 5A:

Kontakt: daniel.valuch@cern.ch