Daugiafunkcis vatmetras su galvanine izoliacija. Tinklo įtampos matavimas Įtampos matavimas mikrovaldikliu

Paprastas kintamos įtampos voltmetras, kurio dažnis yra 50 Hz, yra pagamintas kaip įmontuotas modulis, kuris gali būti naudojamas atskirai arba įmontuotas į gatavą įrenginį.
Voltmetras yra surinktas ant PIC16F676 mikrovaldiklio ir 3 skaitmenų indikatoriaus ir jame nėra labai daug dalių.

Pagrindinės voltmetro charakteristikos:
Išmatuotos įtampos forma yra sinusinė
Didžiausia išmatuotos įtampos vertė yra 250 V;
Matuojamos įtampos dažnis - 40…60 Hz;
Matavimo rezultato rodymo skiriamoji geba yra 1 V;
Voltmetro maitinimo įtampa yra 7–15 V.
Vidutinis srovės suvartojimas - 20 mA
Du dizaino variantai: su maitinimo šaltiniu ir be jo
Vienpusė PCB
Kompaktiškas dizainas
Išmatuotų verčių rodymas 3 skaitmenų LED indikatoriuje

Kintamosios įtampos matavimo voltmetro schema


Įgyvendintas tiesioginis kintamosios įtampos matavimas, vėliau apskaičiuojant jo vertę ir išvestį į indikatorių. Išmatuota įtampa tiekiama į įvesties skirstytuvą, pagamintą ant R3, R4, R5, o per atskyrimo kondensatorių C4 tiekiama į mikrovaldiklio ADC įvestį.

Rezistoriai R6 ir R7 sukuria 2,5 volto įtampą (pusė galios) ADC įėjime. Santykinai mažos talpos kondensatorius C5 apeina ADC įvestį ir padeda sumažinti matavimo klaidas. Mikrovaldiklis organizuoja indikatoriaus veikimą dinaminiu režimu pagal laikmačio trikdžius.

--
Ačiū už dėmesį!
Igoris Kotovas, žurnalo „Datagor“ vyriausiasis redaktorius


🕗 01/07/14 ⚖️ 19,18 Kb ⇣ 239 Sveiki, skaitytojau! Mano vardas Igoris, man 45 metai, aš esu sibirietis ir aistringas elektronikos inžinierius mėgėjas. Aš sugalvojau, sukūriau ir prižiūriu šią nuostabią svetainę nuo 2006 m.
Daugiau nei 10 metų mūsų žurnalas gyvuoja tik mano lėšomis.

Gerai! Dovana baigėsi. Jei norite failų ir naudingų straipsnių, padėkite man!

Pratarmė

Senais, ikiskaitmeniniais laikais, bet kuris iš mūsų turėjo tenkintis rodyklėmis matavimo priemonėmis, pradedant paprastais laikrodžiais, svarstyklėmis ir baigiant... hmm, tad iš karto net nerandame jų panaudojimo ribos! Na, tarkime – precizinis laboratorinis mikroar dar įspūdingesnis – pikoametras. O tikslumo klasių buvo gana daug, priklausomai nuo tikslo.

Pavyzdžiui, įprastas degalų kiekio automobilio bake indikatorius yra ryškiausias maksimalaus rodmenų netikslumo pavyzdys! Nežinau nei vieno vairuotojo, kuris pasikliautų šiuo „rodikliu“ ir nepildytų degalų iš anksto. Įkyrūs vairuotojų pesimistai niekada neišvažiavo be kuro kanistro bagažinėje!

Bet laboratorijose, ypač Valstybiniame patikros komitete, buvo jungtuvai su veidrodine skale ir daug geresne nei 0,5 tikslumo klase.

Ir beveik visi buvome patenkinti ir laimingi. Ir jei jie nebuvo patenkinti, jie įsigijo tikslesnius instrumentus, žinoma, jei įmanoma!

Tačiau dabar atėjo skaitmeninis amžius. Visi tuo džiaugėmės – dabar iš karto matome skaičius ant rodiklių ir džiaugiamės mums pasiūlytu „tikslumu“. Be to, šiais laikais šie visur esantys „skaitmenai“ kainuoja daug mažiau nei „netikslūs perjungėjai“, kurie tapo retenybe. Tačiau mažai kas galvoja, kad mums skaičiais rodomi kiekiai vis tiek išlieka analogiški, nesvarbu, ar tai svoris, ar srovės stiprumas – nesvarbu. Tai reiškia, kad šie kiekiai vis dar yra išmatuoti analogiškai! Ir tik apdorojimui ir pateikimui jie konvertuojami į skaitmeninę vertę. Čia slepiasi klaidos, todėl nustembame, kai du skirtingi kambario termometrai toje pačioje vietoje rodo skirtingas vertes!

Kelias nuo išmatuotos vertės iki indikatoriaus

Pažvelkime į visą matavimo-indikavimo procesą. Be to, aš sąmoningai renkuosi elektros kiekį. Pirma, mes vis dar dirbame elektronikos inžinierių, o ne šilumos fizikų ar kepėjų svetainėje, tegul jie atleidžia mano palyginimo licenciją! Antra, savo samprotavimus noriu sustiprinti pavyzdžiais iš asmeninės patirties.

Pirma, aš renkuosi esamą stiprumą!

Turėsiu pakartoti banalumą, kad norint gauti skaitmeninį analoginio kiekio vaizdą, jums reikia analoginio į skaitmeninį keitiklio (ADC). Bet kadangi savaime jis mums vis dar mažai naudingas, mums reikės kitų mazgų, kad įvykdytume viską, kas suplanuota. Būtent:

  1. prieš patį ADC reikia normalizavimo įrenginio, tarkime: normalizuojančio stiprintuvo arba slopintuvo, priklausomai nuo įvesties reikšmės santykio su ADC konvertavimo diapazonu;
  2. dekoderis po ADC, kad būtų pateiktas konvertuotas skaitmeninis ekvivalentas į atitinkamo indikatoriaus skaitmeninį kodą.

Yra paruoštų mikroschemų, kurios sujungia ir ADC, ir dekoderį. Pavyzdžiui, ICL7136 ar panašus, naudojamas multimetruose.

Iš esmės visi šie mazgai viena ar kita forma yra tiesiog būtini. Paties jutiklio dar neįvardijau – šiuo atveju srovės ir įtampos keitiklis arba tiesiog šuntas.

Taigi, trumpai pereikime per visą grandinę. Srovė, tekanti per šuntą (galingas rezistorius su labai maža varža), sukuria potencialų skirtumą jo poliuose. Guten Tag, pone Ohmai! Tačiau šis skirtumas yra gana mažas ir ne kiekvienas ADC gali visiškai konvertuoti šią reikšmę, todėl signalas (įtampa) iš šunto turi būti sustiprintas iki priimtinos vertės. Štai kodėl reikalingas normalizuojantis stiprintuvas. Dabar ADC, gavęs virškinamą įtampą įėjime, atliks konversiją su mažiausia galima klaida. Jo išvestyje gauname skaičių, atitinkantį dabartinę išmatuotos srovės vertę pasirinktame diapazone, kuri turi būti atitinkamai iškoduota, kad būtų rodoma indikatoriuje. Pavyzdžiui, konvertuokite jį į septynių segmentų indikatoriaus kodą.

Čia nematau reikalo išsamiau nagrinėti kiekvieną iš pirmiau minėtų etapų, nes straipsnyje aš siekiu kito tikslo. O detalių apstu internete.

Specifika

Aš turiu vadinamąjį elektroninė apkrova su srovės srauto indikatoriumi. Yra pagrindinė apkrovos schema, tačiau norint tiksliau nustatyti srovę, jums reikės išorinio ampermetro. Nusprendžiau sujungti abu įrenginius, kad sutaupyčiau vietos ir neturėčiau viso pulko multimetrų.

Mano įmontuotas ampermetras yra surinktas ir užprogramuotas Tiny26L MK. Šio ampermetro dalis yra antrasis (nemokamas) LM358 lusto operatyvinis stiprintuvas, kuris yra pagrindinės balasto grandinės dalis. Tie. Tai yra mano standartizuojantis stiprintuvas, nes maksimalus įtampos kritimas per šuntą (5A x 0,1 omo) yra tik 0,5 volto, o to aiškiai nepakanka visam konversijos diapazonui su vidine atskaitos įtampa.

Pasak T.O. (Anglų k. = Datasheet) įtaisyto atskaitos šaltinio (ION) vardinė įtampa yra 2,56 volto. Labai patogus dydis! Tačiau praktiškai tai nepasirodo taip gerai: mano MK pakoreguota ION įtampa pasirodė esanti 2,86 volto! Kaip aš tai nusprendžiau, yra atskira tema. Vis tiek grįžkime prie patogios 2,56 volto įtampos. Pažiūrėkite, kas atsitiks: ant šunto nukrenta daugiausiai 0,5 volto, o ADC konvertuoja daugiausiai 2,56 volto. Normalizuojantis stiprintuvas, kurio stiprinimas yra 5, pasiūlo save, tada konvertavimo metu gautam skaičiui nereikės jokios pažangios aritmetikos rezultatui parodyti: 5 amperai = 2,5 voltai = 250 vienetų (8 bitų konvertavimui). Jums tereikia rezultatą padauginti iš dviejų ir sudėti kablelį tarp šimtų ir dešimčių, kad gautumėte labai patogų vaizdą: ampero vienetus, dešimtąsias ir šimtąsias dalis. Galutinė transformacija į septynių segmentų ženklus yra technologijos reikalas. Viskas gerai, galite tai įdiegti aparatinėje įrangoje!

Tačiau, kaip jau parodžiau su įmontuoto ION pavyzdžiu, su naudojamais komponentais pasiekti priimtiną (jau nekalbant apie aukštą!) tikslumą nėra taip paprasta. Galite pasirinkti matematiškai kompensuoti klaidas, naudodami MK programą, nors tam reikės kalibravimo. Šis kelias gana lengvai įgyvendinamas C ir kitomis aukšto lygio kalbomis. Bet man, užsispyrusiam surinkėjui, blaškymasis su matematika naudojant RISC instrukcijas yra papildomas galvos skausmas!

Pasirinkau kitą kelią – normalizuojančio stiprintuvo (NA) stiprinimo korekciją. Tam jums nereikia daug – vieno apipjaustymo rezistoriaus! Jo vertė turi būti parinkta teisingai, kad reguliavimo diapazonas būtų pakankamas, bet ne perdėtas.

Normalizuojančių stiprintuvo elementų parinkimas

Taigi, būtina nustatyti reguliavimo diapazoną. Pirmiausia reikia nustatyti komponentų leistinus nuokrypius. Pavyzdžiui, mano šunto paklaida yra 1%. Kiti rezistoriai normalizuojančioje stiprintuvo grandinėje gali turėti iki 10 % toleranciją. Nepamirškite ir mūsų ION netikslumo, kuris mano atveju siekė beveik +12%! Tai reiškia, kad faktinis konvertuotas skaičius bus beveik 12% mažesnis. Bet kadangi aš jau žinau šią klaidą, tai atsižvelgiu į NU padidėjimą, kuris turėtų būti 5,72. O kadangi tikrosios kitų komponentų paklaidos nežinomos, belieka surasti maksimalią galimą bendrą paklaidą, kad būtų galima apskaičiuoti reguliavimo diapazoną.

Paprasta šių „procentų“ suma rodo save: 1% šunto plius 2 kartus 10% operatyvinio stiprintuvo grįžtamojo ryšio rezistorių. Iš viso: 21 proc.

Pažiūrėkime, ar tai iš tikrųjų tiesa. Norėdami tai padaryti, pažvelkime į diagramos dalį, kurioje pateikiamas šis NU su jau pasirinktomis reikšmėmis:

Kaip matote, yra neinvertuojantis stiprintuvas su derinamu perdavimo koeficientu, teoriškai reguliuojamu nuo 4,979 iki 6,735 pagal diagramoje nurodytus reitingus. Bet jei atsižvelgsime į mūsų ±10% galimą kiekvieno rezistoriaus paklaidą, su blogiausia kombinacija gausime Ku = 5,864 - 8,009, kuris aiškiai viršija reikiamą koeficientą! Jei toks derinys įvyks, turėsite pasirinkti kitus nominalus. Geriau iš karto padidinti derinimo rezistoriaus vertę, pavyzdžiui, iki 39k. Tada apatinė Ku riba bus 5,454, o tai jau priimtina.

Na, o aš – „tikras radijo narkomanas“ – turėjau išsirinkti trimerį iš turimų ir tiesiog pasisekė investuoti į asortimentą! Jei turėčiau kitokios vertės žoliapjovę, tai būtų nesvarbu, perskaičiuočiau R2 ir R3, kurių nuokrypis mano atveju yra 5%, todėl man nereikėjo imti kito žoliapjovės.

Savo trūkumų ir praleidimų įveikimas

Atrodytų, viskas apgalvota ir apskaičiuota – pridėkite mokestį. Pirmiausia išbandykime šį dizainą ant duonos lentos! Ne anksčiau pasakyta, nei padaryta! Ku atstatomas ne visai taip, kaip tikėtasi, bet tiek, kiek reikia. Tačiau indikatorius nesiruošė rodyti 0,00, kai nebuvo apkrovos srovės! Visų pirma, įtariau, kad programa yra MK, bet kai ADC įvestis buvo trumpai sujungta su bendru laidu, pasirodė brangūs nuliai. Tai reiškia, kad kažkas ateina į MK įvestį, išskyrus nulį voltų. Bandymas su multimetru patvirtino šią prielaidą ir nustatė kitą užduotį. Nesigilindamas į savo tyrimo detales, aprašysiu tik rezultatą.

Priežastis pasirodė tokia: visiškai neatsižvelgiau į tai, kad mano naudojamas op-amp buvo toli gražu ne pačios geriausios kokybės. Jis net nėra vadinamas. „bėgelis–bėgis“. Tai reiškia, kad jo išėjimo potencialas niekada nepasieks nė vieno maitinimo poliaus, t.y. mano atveju jis niekada nebus lygus 0 voltų! Dabar, jei jis būtų maitinamas iš dvipolio šaltinio, tada išvestis būtų numatyta nuliui. Bet mano maitinimo šaltinis yra vienpolis ir aš neketinau apsunkinti grandinės jokiu keitikliu. Išeitis buvo rasta kuriant „virtualią žemę“, t.y. Dėl atskiro maitinimo šaltinio (priešingai nei pagrindinėje grandinėje), aš galėjau naudoti diodą, kad perkelčiau bendro laido potencialą neigiamo akumuliatoriaus poliaus atžvilgiu.

Taigi, plokštė yra išgraviruota ir lituojama. Atėjo laikas supakuoti šį dizainą į dėklą. Kas, tiesą sakant, buvo padaryta. Tačiau eksploatacijos metu išryškėjo dar vienas nedidelis trūkumas – operatyvinio stiprintuvo įvesties grandinių dreifas. Tai buvo išreikšta neigiamu rodmenų poslinkiu, t.y. esant poros dešimčių miliamperų srovei indikatorius vis tiek rodė nulius, kas man netiko! Leisčiau perstumti kelis mA – vis tiek miliamperų vienetai nerodomi. Turėjau įvesti šališkumo grandinę į NU įvestį.

R4 ir RZ nominalai parenkami taip, kad būtų sukurtas plius/minus kelių dešimčių milivoltų poslinkis, palyginti su „virtualia žeme“. Neturėjau noro perdaryti gatavos lentos ir vietoj Ku reguliatoriaus pridėjau reikiamą reguliuojamą skirstytuvą.

Apskritai gautas įrenginys patenkina mano poreikius. Žinoma, jį galima patobulinti ilgą laiką, bet kol kas nereikia!

Apie skaitmeninę dalį ir matematiką kalbėsiu kitą kartą, naudodamas voltampermetro pavyzdį laboratorijos maitinimo šaltinyje.

Ibrahimas Kamalis (IKALOGIC)

Pastaba. Nerekomenduojama projektuose naudoti šaltinio kodo pavyzdžių, esančių aprašo tekste. Aprašymo pabaigoje yra nuoroda į archyvą su visu projekto šaltinio kodu.

Šis straipsnis skirtas edukaciniams tikslams. Išmatuoti akumuliatoriaus (baterijos) įtampos lygį naudojant mikrovaldiklį, kuris maitinamas iš to paties šaltinio, apsvarstysime techninės įrangos sprendimą ir programinės įrangos įgyvendinimą. Daroma prielaida, kad vartotojai yra susipažinę su AVR mikrovaldiklių programavimu ir turi pagrindinių žinių apie C kalbą. Naudojamas kompiliatorius yra WinAVR.

Akivaizdu, kad nors ir labai paprasta, užduotis matuoti mikrovaldiklio maitinimo įtampą gali būti labai svarbi ir rimta, ypač akumuliatoriais maitinamuose įrenginiuose ir programose.

Akumuliatoriaus įtampos lygiui stebėti yra daug metodų ir sprendimų, daugeliui jų reikia naudoti išorinius komponentus ir mazgus. Mūsų svarstomas sprendimas nereikalauja išorinių komponentų, naudosime tik mikrovaldiklio išteklius ir periferinius įrenginius – įmontuotą ADC.

Naudosime ATMEGA48 mikrovaldiklį, tačiau programos kodas pilnai suderinamas su ATMEGA88, ATMEGA168, ATMEGA328 mikrovaldikliais. Be to, šiek tiek pataisę šaltinio kodą, šį sprendimą galite pritaikyti AVR mikrovaldikliams su įmontuotu ADC.

Vartotojai tikriausiai domisi: "Ar tikrai mikrovaldiklio maitinimo įtampos matavimo procesas yra toks sudėtingas?" Norėdami išspręsti šią problemą, turime mikrovaldiklį ir analoginę įtampos reikšmę turime konvertuoti į skaitmeninę vertę, kurią mikrovaldiklis gali naudoti tolesniems skaičiavimams ir veiksmams.

Jūs tikriausiai pasakysite: „Taigi, koks reikalas. Akumuliatoriaus, iš kurio maitinamas mikrovaldiklis, teigiamą gnybtą prijungsime prie ADC įvesties ir įtampos reikšmę konvertuosime į skaitmeninę vertę!

Tačiau šiuo atveju klysite, tai nėra taip paprasta. Problema ta, kad įtampos šaltinis naudojamas pačiam mikrovaldikliui (Vcc) maitinti, taip pat kaip ADC įtampos atskaitos taškas.

Jei pažvelgsite į šią problemą iš matematinio taško, jei suprasite problemą. Apskritai ryšys tarp išmatuotos įtampos ir skaitmeninės vertės, konvertuotos 8 bitų ADC, yra toks:

,

Kur ADC_VALUE- vertė, gauta konvertuojant iš analoginio į skaitmeninį,
V_priemonė- išmatuota įtampos vertė, V_REF- ADC etaloninė įtampa.

Dabar, atsižvelgdami į mūsų problemos sąlygas, mes tai žinome V_measure = V_REF = Vcc ir dėl to lygties rezultatas visada bus reikšmė lygi 255 ir ji nepasikeis keičiantis akumuliatoriaus įtampai. Tokia situacija visada atsitiks matuojant akumuliatoriaus įtampą, kuri taip pat naudojama kaip įtampos atskaita.

Norint išspręsti problemą nenaudojant jokių išorinių komponentų, AVR mikrovaldiklis turi labai naudingą įmontuotą komponentą, vadinamą vidine juostos tarpo atskaitos įtampa. Šio šaltinio išėjimo įtampa yra apie 1,1 V, o keičiantis mikrovaldiklio temperatūrai ir maitinimo įtampai ji išlieka nepakitusi. Šią įtampą galima pritaikyti ADC įėjimui, kaip ir bet kuriai išorinei įtampai, išskyrus tai, kad tai daroma programinėje įrangoje, neįtraukiant papildomų išorinių komponentų.

Nors šis mazgas nebuvo sukurtas mūsų konkrečiam tikslui, mes jį naudosime savo užduotyje matuoti mikrovaldiklio maitinimo įtampą.

Apsvarstykite mūsų lygtį

ADC_VERTĖ = V_matas * 255/V_REF ,

Tačiau nusprendę išmatuoti etaloninę įtampą V_BG, gauname tokią išraišką

ADC_VERTĖ = V_BG * 255/V_REF

Ir kadangi mūsų atveju ADC atskaitos įtampa yra lygi Vcc(pagrindinė mūsų problemos esmė), tada lygtis įgis tokią formą

ADC_VERTĖ = V_BG * 255/Vcc

Žinant tai V_BG=1,1 V, iš lygties galime apskaičiuoti mikrovaldiklio maitinimo įtampą

Vcc = 1,1 * 255 / ADC_VALUE

Paskutinės išraiškos dėka galėsite apskaičiuoti tikrąją savo mikrovaldiklio įrenginio maitinimo įtampos vertę nenaudodami jokių išorinių komponentų.

Pažvelkime į įgyvendinimo pavyzdį.

Schema

Mikrovaldikliui maitinti naudojame tris NiCad baterijas. Maitinimo įtampa su pilnai įkrautomis baterijomis bus 4,2 V. Turime įjungti prie PB0 prievado prijungtą šviesos diodą, jei įtampa yra mažesnė nei 3,2 V.

Sąrašas

#įtraukti avrio.h #įtraukti avrinterrupt.h
// Pasauliniai kintamieji
float vcc;//kintamasis, skirtas išlaikyti Vcc reikšmę
void setup_adc(void)
{
ADMUX = 0xE; //Nustatykite juostos tarpo įtampą kaip ADC įvestį
ADCSRA = (1ADEN)|(1ADATA)|(1ADIE)|(1ADSC)|5;
}
ISR(ADC_vect) //ADC konversijos pabaigos pertraukimas
{
nepasirašytas char adc_duomenys;
adc_duomenys = ADC>>2; //skaityti 8 bitų reikšmę
vcc = 1,1 * 255 / adc_duomenys;
}
// Pagrindinė programa
// ***********************************************************
int main (tuščia)
{
DDRB = DDRB | (1PB0); //nustatyti PB0 kaip išvestį (LED).
sei(); //Suaktyvinti pertraukimus setup_adc();
//nustatykite ADC

kol (1)
{
// Begalinis ciklas
if(vcc< 3.2)
{
PORTB |= (1PB0);
}
Kitas
{
PORTB &= ~(1PB0);
}
}
}

Atkreipkite dėmesį, kad įtampa V_BG bus skirtingi skirtingiems mikrovaldikliams, ypač iš skirtingų partijų, ir gali būti 1,01 V - 1,2 V diapazone, todėl kalibruoti reikės. Taigi, jei apskaičiuota Vcc vertė naudojant šį kodą yra neteisinga, turite atlikti šiuos veiksmus: voltmetru išmatuoti maitinimo įtampą Vcc ir, naudodamiesi žemiau pateikta lygtimi ir žinant vertę ADC_VALUE, apskaičiuokite vertę V_BG

Mes pereiname prie paskutinės jutiklių peržiūros ciklo dalies, kurioje apžvelgsime nuolatinės ir kintamosios srovės ir įtampos jutiklius. Apie visus kitus jutiklius, kurie nebuvo įtraukti į pagrindinę seriją, būsimuose straipsniuose pateiksime papildomų apžvalgų, kai jų staiga prireiks.
Šis straipsnis atveria naują medžiagų apie elektros kokybės parametrų matavimą seriją, kurioje bus aptariami srovės ir įtampos jutiklių prijungimo prie mikrovaldiklio klausimai, elektros kokybės analizatorių veikimo algoritmai, tam tikrų elektros kokybės rodiklių reikšmė ir jų reikšmė. . Be to, paliesime pirmojo straipsnio komentaruose paminėtą daugeliui rūpimą temą apie skaitmeninimo ir duomenų apdorojimo tikslumą.

Srovės jutikliai

Matavimo šuntas

Paprasčiausias ir tiksliausias srovės matavimo būdas. Kaip žinote, kai srovė teka per aktyviąją varžą, joje atsiranda įtampos kritimas, proporcingas išmatuotai srovei. Puiku, paimame rezistorių ir įdedame jį į atvirą išmatuotos grandinės grandinę:


10 pav. Srovės jutiklio srovės šuntas
Įtampos kritimas per šuntą yra proporcingas praleistai srovei:
(10)
Atitinkamai, priklausomai nuo reikalingos įtampos jutiklio išėjime, parenkame reikiamą šunto varžą. Bet! Įtampos kritimas per šuntą sukels nuostolius ir šilumą, todėl esant didelėms srovėms, norėdami apriboti nuostolius, esame priversti tenkintis žemomis įėjimo įtampos vertėmis. Šie komerciškai pagaminti vaikinai suteikia standartinę 75 mV išėjimo įtampą:

11 pav.: ShSM tipo srovės šuntas
Dauguma šunto matavimo galvučių yra sukalibruotos iki 75 mV. Atkreipkite dėmesį į antrąją varžtų porą – jie skirti specialiai prijungimui prie matavimo prietaiso, siekiant sumažinti nuostolius.
Norint išmatuoti srovę naudojant tokius šuntus, reikia naudoti operacinius stiprintuvus. Tuo pačiu metu vidutinis stiprinimas yra 20–40, o tai atitinka plačiai naudojamų operacinių stiprintuvų galimybes. Iš esmės tai gali būti padaryta remiantis vienu bipoliniu tranzistorius.
Gauname tokią diagramą:


12 pav. Operacijos stiprintuvo kaip stiprintuvo naudojimas
Reikėtų atsižvelgti į tai, kad matuojant kintamąją srovę, išėjimo signalas bus dvipolis, o operacinis stiprintuvas turi būti maitinamas iš dvipolio maitinimo šaltinio.
Tik tuo atveju pažiūrėkime, kaip veikia mūsų schema:


13 pav. Srovės jutiklio stiprintuvo modeliavimas
Į įvestį pritaikome 75mV, padauginame iš 20, išėjime turime 1,5V amplitudės signalą 10A srovei. Kitame straipsnyje išsiaiškinsime, kodėl dvipolis signalas yra blogas.
Privalumai:

  • didelis tikslumas;
  • platus įtampų ir dažnių diapazonas;

Trūkumai:

  • nėra galvaninės izoliacijos;
  • mažas efektyvumas.
Prietaiso srovės transformatorius

Matavimo srovės transformatorius – tai transformatorius, kurio pirminė apvija yra prijungta prie srovės šaltinio, o antrinė – su matavimo prietaisais arba apsauginiais automatiniais įtaisais.
Srovės transformatoriai naudojami matuoti sroves didelės srovės grandinėse, dažnai esant dideliam potencialui. Pavyzdžiui, norėjome išmatuoti srovę 10 kV tinkle. Arba norime gauti paprastą ir palyginti pigų mūsų 220 V įrenginio išmatuotos srovės grandinės galvaninės izoliacijos būdą. Pagrindinė srovės transformatorių problema yra ta, kad jie gali matuoti tik kintamąją įtampą.
Srovės transformatorius visada apkrautas. Jei srovės transformatoriaus antrinė apvija yra atvira, joje atsiras poros tūkstančių kilovoltų potencialas, kuris sužeis personalą ir išjungs įrenginį, pralauždamas jo izoliaciją.
Transformatoriai yra su įmontuota pirmine apvija. Pavyzdžiui:

14 pav.: Coilcraft CS2106L serijos srovės transformatorius
Arba šie drambliai, kurie turi kažką panašaus į pirminę apviją didžiulio autobuso pavidalu, arba net langą laidams per jį pravesti


15 pav. Pramoninis kelių amperų srovės transformatorius
Pagrindinis srovės transformatoriaus trūkumas yra tas, kad jis veikia tik tam tikru dažniu. Žingsnis į kairę, žingsnis į dešinę – egzekucija. Kalta metalinė šerdis.
Bet jei jį pašaliname, gauname oro transformatorių, arba vadinamąjį. Rogowski ritė:

16 pav.: Rogowski ritės prijungimo schema
Skirtingai nuo kitų jutiklių, kuriems reikalinga sąveika su išmatuota grandine, Rogowski ritė gali būti montuojama ant matuojamos grandinės laidų kaip diržas.
Kai kuriuose matavimo prietaisuose yra šie jutikliai:


17 pav. Rogowski ritės jutiklis
Išmatuotų srovių diapazonas yra nuo dešimčių iki tūkstančių amperų, ​​tačiau jie kenčia nuo mažo tikslumo.
Privalumai:

  • galvaninė izoliacija;
  • dirbti su didelėmis tūkstančių amperų srovėmis;

Trūkumai:

  • matuoja tik kintamąją srovę tam tikrame dažnių diapazone (išskyrus Rogowski ritę);
  • pakeičia signalo fazę ir reikalauja kompensacijos
Holo efekto srovės jutikliai

Šio tipo jutikliai naudoja potencialų skirtumo efektą, atsirandantį, kai srovės laidininkas yra patalpintas į magnetinį lauką.

18 pav. Hall efektas
Kurdami jutiklį paimame magnetinę grandinę, per ją praleidžiame matuojamos grandinės laidą ir į magnetinės grandinės sekciją įdedame Holo jutiklį, gauname atviro tipo srovės jutiklį:


19 pav. Atviro tipo Hall efekto srovės jutiklis
Tokio jutiklio pranašumas yra jo paprastumas. Trūkumas yra šerdies įmagnetinimas, todėl didėja rodmenų netiesiškumas.
Pridėkime prie šerdies apviją ir per ją praleiskime srovę, proporcingą išmatuotai srovei:


20 pav.: Holo efekto kompensavimo srovės jutiklis
Su nuliniu šerdies poslinkiu padidiname jutiklio tiesiškumą ir jo tikslumo klasę. Tačiau savo konstrukcijoje toks jutiklis yra artimas srovės transformatoriams, todėl jo kaina žymiai padidėja.
Kaip ir transformatoriai, yra įvairių tipų jutikliai, leidžiantys per juos pravesti maitinimo laidą:


22 pav. Holo efekto srovės jutiklis
Yra jutiklių su padalinta šerdimi, tačiau jų kaina tiesiog nepatenka į diagramas.
„Allegro“ gamina jutiklius su integruota maitinimo grandine, pagrįsta Hallo efektu su galvanine izoliacija 2,1 kV ir 3 kV. Dėl mažo dydžio jie neužtikrina didelio tikslumo, tačiau yra kompaktiški ir lengvai naudojami.


23 pav.: Allegro ACS754 srovės jutiklis

  • ACS712 jutiklis – nuolatinės ir kintamosios srovės iki 30A matavimas ± 1,5% tikslumu
  • ACS713 jutiklis – optimizuotas nuolatinės srovės matavimui iki 30A. Turi dvigubai didesnį jautrumą nei universalus atitikmuo.
  • ACS754 jutiklis – nuolatinės ir kintamosios srovės iki 200A matavimas ± 1,5% tikslumu
  • ACS755 jutiklis – optimizuotas nuolatinės srovės matavimui.
  • Jutiklis ACS756 yra jutiklis, skirtas matuoti nuolatinę ir kintamąją srovę iki 100A su 3-5V maitinimo įtampa.


24 pav. Jutiklio išėjimo įtampa ir srovė
Privalumai:

  • platus išmatuotų srovių diapazonas, kurių dažnis iki 50-100 kHz ir didesnis;
  • matuoja nuolatinę ir kintamąją srovę.
  • galvaninė izoliacija

Trūkumai:

  • Brangus
Papildomos nuorodos:

DC matavimo transformatoriai analogiu.ru/6/6-2-2.html
Rogowski ritės www.russianelectronics.ru/leader-r/review/2193/doc/54046
Salės efektas Vikipedijoje: ru.wikipedia.org/wiki/Hall_Effect
Salės jutikliai robocraft.ru/blog/electronics/594.html
Danilovas A. Šiuolaikiniai pramoniniai srovės jutikliai www.soel.ru/cms/f/?/311512.pdf
Grandinių projektavimas pagal analoginį stiprintuvą HCPL-7851 www.kit-e.ru/assets/files/pdf/2010_04_26.pdf

Išvada

Iškėliau sau užduotį apžvelgti dažniausiai bendruomenėje naudojamus jutiklius kurdama įvairius įrenginius. Dauguma jutiklių nebuvo įtraukti į ciklą tik dėl to, kad artimiausiu metu jų neprireiks mano medžiagoms, tačiau dalis jų yra planuose. Tikrai padarysiu atskirą medžiagą su pagreičio ir kampinio greičio jutikliais, kompasu ir pavyzdžiais, tad laukite naujų straipsnių!

Voltmetrai ant mikrovaldiklio - kas gali būti paprasčiau? Tai tiesa, kai kalbame apie nuolatinės srovės matavimą arba momentinės kintamosios srovės verčių nustatymą. Bet matmuo efektyvią vertę kintamoji įtampa, ypač ne sinusoidinis formų yra nebanali užduotis. Tačiau tai taip pat galima išspręsti naudojant gana paprastą ir nebrangų AVR šeimos mikrovaldiklį.

Šis straipsnis yra daugiau diskusija šia tema nei konkretaus projekto aprašymas. Jos tikslas – nukreipti mintį tinkama linkme, nustatyti tikslus, spąstus, išdėlioti „pilotą“ juos apeiti... Kad kiekvienas galėtų savarankiškai įgyvendinti išsakytą principą.

Taigi, pirma, mikroekskursija į teoriją. Kaip žinote, efektyvioji kintamosios srovės ir įtampos vertė yra ta vertė, kuri imama apskaičiuojant išleidžiamą šilumą ar galią. Nuolatinei srovei efektyvioji vertė yra lygi kintamosios srovės amplitudei, vidutinei ir momentinei, tai yra skirtingi dydžiai.

Momentinis Kintamosios srovės įtampos vertė yra absoliutus įtampos lygis tam tikru momentu, vienkartinis rodmuo. Amplitudė reikšmė yra didžiausia sinusinės bangos (arba kitos nesinusinės bangos formos kreivės) vertė per laikotarpį. Amplitudės reikšmė imama modulo, t.y. Nėra minuso ir pliuso amplitudės. Vidutinis vertė, kaip matyti iš paties termino, yra visų momentinių verčių (imčių) suma per laikotarpį, padalinta iš mėginių skaičiaus. Matematiškai tai yra momentinių verčių integralas per tam tikrą laikotarpį. Akivaizdu, kad sinusoidinės formos vidutinė vertė per laikotarpį bus lygi nuliui. Jei įtampos kreivės forma yra iškraipyta, vidutinė vertė per laikotarpį gali pasirodyti ne nulis - tada ji vadinama pastovus komponentas kintamoji įtampa. Pagaliau, srovė arba efektyvus įtampos vertė yra skaitinė vertė, lygi pusei momentinės įtampos verčių kvadrato integralo per laikotarpį. Štai kodėl jis taip pat vadinamas vidurkio kvadratas įtampa.

Dabar pagalvokime, kaip ši teorija padės mums išspręsti mūsų problemą. MK mes susiduriame su ADC, kuris (kaip apytiksliai) gali mums pateikti individualius įtampos rodmenis, t.y. jis gali nustatyti momentines įtampos reikšmes. Nesunku suprasti, kad norint nustatyti efektyvią vertę, kurios mums reikia integruoti(tie. apibendrinti) ADC rezultatų kvadratai, vartojamas reguliariais intervalais per vieną laikotarpį išmatuota įtampa. Kodėl aš nekalbu apie būtinybę padalyti kvadratų sumą per pusę, nors teorija, atrodo, to reikalauja? Taip, nes ADC mums pateikia rezultatą abstrakčiais skaičiais, atskirtais nuo realybės. Kad gautume tikrąją šios abstrakcijos vertę, vis tiek turime jas padauginti iš tam tikro matmenų koeficiento, kuris gali atsižvelgti į tą patį padalijimą iš 2. Leiskite paaiškinti: jei ADC „vienas žingsnis“ atitinka 0,02 V įtampa, tada norėdami konvertuoti į realius voltus, turime ADC rezultatą padauginti iš 0,02. Jei skaičiavimo procese šias reikšmes reikia padalyti iš 2, ar ne lengviau iš karto padauginti iš 0,01 V koeficiento?!

Apibūdinkime savo programos algoritmą. Apskritai viskas bus taip:

  1. Reguliariais intervalais gaukite N ADC mėginių per vieną išmatuotos įtampos periodą.
  2. Rezultatų ir sumos kvadratu.
  3. Paimkite gautos sumos kvadratinę šaknį.
  4. Padauginkite rezultatą iš mastelio koeficiento ir parodykite rezultatą indikatoriuje.

Kad mūsų voltmetras nuolat rodytų vertę, šis algoritmas turi būti atliekamas cikliškai.

Dabar eikime į detales. Pirmiausia nuspręskime dėl mėginių skaičiaus N. Atrodytų, viskas paprasta: kuo jis didesnis, tuo tikslesnis rezultatas. Ir tai tiesa, tačiau nereikia pamiršti, kad disponuojame ne superkompiuteriu, o tik AVR mikrovaldikliu, kurio galimybės labai ribotos.

Visų pirma, yra ADC greičio apribojimas. Atmel rekomenduoja naudoti ADC, kai veikia laikrodžio greičiu ne daugiau kaip 200 kHz, kitu atveju rezultatų paklaida padidės. Vienas ADC matavimo ciklas trunka (pastovioje būsenoje) 13 ciklų, t.y. su bet kokiais triukais negalėsime ADC naudoti dažniau nei 15384 kartus per sekundę, jei norime teisingai gauti visus 10 rezultato bitų. Išsiaiškinkime, ką mes gauname kaip rezultatą. Tinklo įtampos periodo trukmė yra 20 ms. Esant aukščiau paminėtam mėginių ėmimo dažniui, mes tiesiog neturėsime laiko gauti daugiau nei 307 mėginius per vieną laikotarpį. Žinoma, jei paaukosite šiek tiek tikslumo, galite padidinti ADC greitį ir atitinkamai mėginių skaičių per laikotarpį.

Kitas svarbus apribojimas yra matematinių operacijų greitis. Kvadratavimas yra labai brangi procedūra pagal mikrovaldiklio ciklų skaičių, o jei integraciją atliekate „skraidydami“, t.y. Gavus ADC rezultatus, 15K atrankos dažnis bus nepasiekiamas net teoriškai. Yra tik viena išeitis – greitai sukaupti reikiamą kiekį duomenų masyve, o paskui lėtai juos apdoroti. Ir čia susiduriame su trečiuoju apribojimu – RAM kiekiu. Teoriškai maksimaliam mėginių skaičiui iš 307 ir 10 bitų skaičių saugojimui reikės 614 baitų RAM, o tai jau yra daugiau nei visa turima atmintis daugelyje MK, o, pavyzdžiui, Atmega8 – daugiau nei pusė. Bet darbui dar reikia vietos kaminui, kitiems tarpiniams kintamiesiems... Taigi mėginių skaičius N = 307 gali būti laikomas absoliučiai maksimaliu visiems MK, kurių RAM talpa yra 1K ar mažesnė.

Norėdami užpildyti pavyzdžių masyvą, ADC ciklo pabaigoje naudojame pertraukimą. Tai yra, mes apibrėžsime indekso kintamąjį, nukreipiantį į kitą mūsų masyvo elementą, o pertraukimų tvarkyklėje išsaugosime ADC rezultatą šio indekso masyve ir padidinsime indeksą. Kadangi, remiantis mūsų skaičiavimais, nuo pirmojo mėginio momento iki paskutinio (307) turėtų praeiti 20 milisekundžių, galime manyti, kad išsprendėme momentinių įtampos verčių gavimo per laikotarpį problemą. Tačiau būtina kontroliuoti, ar indeksas neviršija leistinos reikšmės, t.y. patikrinkite, ar padarėme daugiau nei 307 mėginius? Natūralu, kad turite būti tikri, kad visų papildomų skaičiavimų laikas nepadidins mėginių gavimo dažnumo, kitaip neišvengiama didelių klaidų.

Tarkime, kad pagaliau gavome savo pavyzdžių masyvą, o dabar turime jį apdoroti. Ar galite įsivaizduoti kvadratą asamblėjos kalba? O kaip išgauti kvadratines šaknis? Žinoma, viskas gali būti išspręsta, tačiau daug lengviau naudotis C kalbos įtaisytomis funkcijomis kvadratas Ir kv. Iš čia yra 2 neišvengiamos išvados: mes kuriame programą C ir visus ankstesnius argumentus reikalauti koregavimo... Šią stulbinančią išvadą reikėtų suprasti taip: C yra aukšto lygio kalba, todėl žymiai lėtesnė nei asamblėjas. Tai reiškia, kad pertraukimų tvarkymo procedūroms gali prireikti daugiau laiko nei tikėjomės, t.y. sutrikdyti darnius mėginių skaičiaus ir dažnumo skaičiavimus. Tai reiškia, kad būtina kontroliuoti mūsų programos kritinių skyrių vykdymo laiką (pavyzdžiui, toje pačioje AVR studija), o jei paaiškėja, kad mėginių ėmimo laikotarpis yra žymiai ilgesnis nei apskaičiuotasis, pakoreguokite visus skaičiavimus – nuo ​​mėginių skaičiaus iki ADC dažnio. Bet trumpam pamirškime tai.

Taigi, matavimai ir skaičiavimai baigėsi. Belieka organizuoti rezultatų išvedimą. Čia, kaip sakoma, taikymo sritis yra plati: nuo septynių segmentų indikatorių su dinaminiu ekranu iki LCD simbolių ekranų ar rezultatų perdavimo per UART į kompiuterį. Tik atminkite, kad dinaminis ekranas veikia ir per pertraukimus, t.y. gali iškraipyti mėginių gavimo laiko intervalus.

Tikiuosi principas aiškus. Dabar keli žodžiai apie nepaliestas problemas. Visų pirma, visos mūsų mintys, susijusios su matavimu tinkląįtampa, t.y. įtampa su dažniu 50 Hz. Kitais dažniais mūsų programa pateiks rezultatus su klaida. Šios klaidos dydis bus minimalus, jei jis neviršys 20 ms sveikasis periodų skaičiusįtampa (simetriškoms bangų formoms - pusės ciklų). Jei sveikų periodų (pusės ciklų) skaičius nėra sveikasis skaičius, paklaida bus didžiausia, o voltmetro rodmenų pobūdis bus „mušimų“ forma. Kadangi veltui tikėtis didelio tikslumo iš skaitmeninės integracijos su mėginių skaičiumi per trumpesnį nei kelių dešimčių laikotarpį, viršutinė išmatuotos įtampos dažnio vertė iš tikrųjų bus ne didesnė kaip 200 Hz. Trumpai tariant, vis tiek gaminsime įrenginį tik 50 Hz dažniu. Nors sulaukęs 25 metų jis veiks visai neblogai. Žinoma, prietaisas parodys teisingą vertę bet kokiai kintamajai 50 Hz įtampai, taip pat nuolatinei srovei.

Scheminė Proteus projekto schema

Norėdami patvirtinti visus aukščiau pateiktus skaičiavimus (ir juos patikrinti), pateikiu konkretų voltmetro įgyvendinimo pavyzdį. Aš nesudariau tikros grandinės, apsiribojau projektu proteusas. Tačiau modeliavimo metu gauti rezultatai visiškai patvirtino tai, kas išdėstyta aukščiau, ir leidžia teigti, kad tikroji grandinė su minimaliais pakeitimais (maitinimo ir apsauginės grandinės) veiks. Siūloma MK programinė įranga yra visiškai funkcionali - modifikuokite grandinę, sukurkite spausdintinę plokštę ir naudokite ją. Tačiau aš tai dariau savaip, t.y. šiek tiek kitaip nei ką tik tau sakiau. Svarbiausias dalykas, kuris yra neteisingas mano programoje, yra pavyzdžių skaičius masyve: aš juos turiu 256 . Dėl šios priežasties turėjau atsisakyti „natūralaus“ mėginių dažnio ir susieti juos su laikmačiu, o tam savo ruožtu reikėjo padidinti ADC veikimo dažnį iki 250 kHz (kai MK laikrodžio dažnis yra 8 MHz). Beje, gauti 250 kHz ADC iš mega įmontuoto RC generatoriaus yra daug lengviau nei 200, todėl gali būti, kad rašydami savo programą ir jūs būsite priversti eiti mano keliu...

Projektas skirtas Proteus 7.1 Pro SP2 ir programinės įrangos failą galima atsisiųsti . Projekte ta dalis, kuri yra pats voltmetras, apibraukta brūkšniu pažymėta linija. O kairėje yra bandymo signalo šaltinis. Įvesties tiltelis ir įtampos daliklis turi būti suprojektuoti su rezervu įėjimo įtampai geriau rinktis 1000 voltų diodus, jie tikrai tai atlaikys. Geriau pertvarą padaryti tiksliai taip, kaip parodyta diagramoje - iš trijų rezistorių, nes vienas atitinkamos vertės rezistorius gali neatlaikyti aukštos įtampos. Beje, dar geriau paimti daugiau rezistorių, bus lengviau pasirinkti padalijimo koeficientą. Diagrama neparodo daug niuansų, pavyzdžiui, apsauginis stabilizatorius prie ADC įvesties, tačiau tai tik niuansai. Mano programinė įranga suteikia galimybę išmatuoti įtampą iki 710 V, o sinusinės įtampos bangos formos paklaida ne didesnė kaip 2 V. Kitoms įtampos formoms paklaida gali padidėti, bet ne daug. Manau tikrai tilps į 5 proc. Paprastam įrenginiui, kurio skalė yra 10-700 V, tai nėra blogai, ar ne? Aparatinė programinė įranga turi savybę: jei įvesties įtampa, kurios amplitudė yra didesnė nei 1000 V (apytiksliai), prietaisas parodys simbolį „ E“ – perkrova. Tai atsitiks net jei efektyvioji vertė yra žymiai mažesnė nei 700 V.

Komentuoti gali tik registruoti vartotojai.
Prašome užsiregistruoti arba prisijungti prie savo paskyros.