INHOUDSOPGAWE:

AC huidige monitor data logger: 9 stappe (met foto's)
AC huidige monitor data logger: 9 stappe (met foto's)

Video: AC huidige monitor data logger: 9 stappe (met foto's)

Video: AC huidige monitor data logger: 9 stappe (met foto's)
Video: 10 gewoontes om gelukkig te worden 2024, November
Anonim
AC huidige monitor data logger
AC huidige monitor data logger

Hallo Almal, welkom by my eerste instruksies! Bedags is ek 'n toetsingenieur vir 'n onderneming wat industriële verwarmingstoerusting verskaf; snags is ek 'n ywerige tegnologie -stokperdjie en selfdoener. 'N Deel van my werk behels die toets van die prestasie van verwarmers; by hierdie geleentheid wou ek die RMS -huidige trekking van 8 toestelle meer as 1000 uur monitor en die data aanteken om die resultate later te grafiseer. Ek het toegang tot 'n datalogger, maar dit was reeds toegewyd aan 'n ander projek en ek het iets goedkoop nodig gehad, so ek het besluit om hierdie basiese datalogger saam te voeg.

Die projek gebruik 'n Arduino Uno om analoog sensors via analoog na digitale omskakelaar (ADC) te lees en teken die data op met 'n tydstempel op 'n SD -kaart. Daar is baie teorie en berekeninge betrokke by die ontwerp van die stroombane, so in plaas daarvan om absoluut alles te verduidelik, sal ek jou net wys hoe om dit te maak. As u belangstel om die VOLLEDIGE treffer te sien, laat weet my dan in die kommentaar, en ek sal dit verder verduidelik.

LET WEL:

Ek het baie vrae gehad oor ware RMS -berekeninge. Hierdie toestel gebruik 'n halfgelykrigter om die piek van die golf te bepaal, wat dan met 0,707 vermenigvuldig kan word om RMS te gee. Dit gee gevolglik slegs 'n akkurate resultaat met lineêre laste (dws die stroom wat gemeet word, is 'n suiwer sinusgolf). Nie-lineêre voorrade of vragte wat driehoekige, reghoekige of ander nie-sinusgolfvorme gee, gee nie 'n ware RMS-berekening nie. Hierdie toestel meet slegs wisselstroom, maar dit is nie ontwerp om spanning te meet nie; dit bereken of meet nie die kragfaktor nie. Sien my ander instruksies oor hoe om 'n kragfaktormeter te maak waarmee u dit kan doen. Baie mense het ook gesê dat 'n reguit wisselstroomkoppeling met 'n 2.5V middellyn beter is, maar dit bring komplikasies mee, aangesien dit behels dat 'n voldoende vinnige digitale bemonsteringsnelheid, robuuste gemiddeldes/dataversterking, ens. die rou waarde. Persoonlik verkies ek hardeware -oplossings en eenvoudiger kode waar moontlik, so ek stel nie belang in die metode nie. Akkuraatheid, ek glo dat dit baie beter is as laasgenoemde, en u sal later in my resultate sien dat daar 'n regressiekoëffisiënt naby 1.0 is na kalibrasie.

Stap 1: Huidige transformators

Huidige transformators
Huidige transformators
Huidige transformators
Huidige transformators

Hierdie projek gebruik 'n stroomtransformator HMCT103C 5A/5MA. Dit het 'n verhouding van 1: 1000 draaie, wat beteken dat vir elke 5A stroom wat deur die geleier vloei, 5mA deur die CT vloei. 'N Weerstand moet oor die twee terminale van die CT gekoppel word sodat 'n spanning daaroor gemeet kan word. By hierdie geleentheid het ek 'n weerstand van 220 Ohm gebruik, daarom, met behulp van Ohm se wet V = IR, sal die uitset van die CT 1,1 Volt AC wees, vir elke 5mA CT -stroom (of elke 5A van gemete stroom). Die CT's is aan die bord gesoldeer met die weerstand en 'n paar instrumentdraad om vlieënde leidings te maak. Ek het die leidings beëindig met 3,5 mm manlike klankaansluitings.

Hier is die datablad vir die huidige transformator

Gegewensblad

Stap 2: Seinkondisionering

Sein kondisionering
Sein kondisionering
Sein kondisionering
Sein kondisionering

Die sein van die CT sal swak wees, dus moet dit versterk word. Hiervoor het ek 'n eenvoudige versterkerkring gesoldeer met 'n uA741 dubbele spoorversterker. In hierdie geval word die wins dus op 150 gestel met behulp van die formule Rf / Rin (150k / 1k). Die uitsetsein van die versterker is egter steeds wisselstroom, maar die diode op die uitset van die op-amp verlaag die negatiewe halfsiklus van die wisselstroom en stuur die positiewe spanning na 'n 0.1uF-kondensator om die golf in 'n rimpelende GS-sein glad te maak. Hieronder is die dele wat die kring uitmaak:

  • V1-Dit is willekeurig in hierdie diagram; dit verteenwoordig eenvoudig die seinspanning wat ingevoer word in die nie-omkerende ingang van die op-amp.
  • R1 - Dit staan bekend as die terugvoerweerstand (Rf) en is ingestel op 150k
  • R2 - Dit staan bekend as die insetweerstand (Rin) en is ingestel op 1k
  • 741 - Dit is die geïntegreerde stroombaan uA741
  • VCC - Positiewe toevoerrail +12V
  • VEE - Negatiewe toevoerrail -12V
  • D1 - Is die hafgolf -regstellende seindiode 1N4001
  • C3 - Hierdie kapaktor hou die GS -sein vir 'n vasgestelde tyd

Op foto 2 kan u sien dat dit met Veroboard en blikkende koperdraad saamgestel is. Daar is vier gate geboor vir PCB -afstandpunte sodat hulle gestapel kan word (omdat daar agt kanale is, moet daar altesaam agt versterkerbane wees.

Stap 3: Kragtoevoer

Kragtoevoer
Kragtoevoer
Kragtoevoer
Kragtoevoer
Kragtoevoer
Kragtoevoer

As u nie daarvan hou om dit van nuuts af te maak nie, kan u die bord wat vooraf gemonteer is uit China koop, soos hierbo op die foto, maar u benodig nog steeds die 3VA-transformator (verlaag 240V tot 12V). Die een op die foto het my ongeveer £ 2,50 gekos

Om die projek aan te dryf, het ek besluit om my eie 12VDC -kragtoevoer met dubbele spoor te maak. Dit was gerieflik, aangesien die op -versterkers +12V, 0V, -12V benodig en die Arduino Uno enige toevoer tot 14 VDC kan aanvaar. Hieronder is die dele wat die kring uitmaak:

  • V1 - Dit verteenwoordig die voeding van die netaansluiting 240V 50Hz
  • T1 - Dit is 'n klein 3VA transformator waaroor ek gelieg het. Dit is belangrik dat die transformator 'n sentrale kraan op die sekondêre het wat aan 0V gekoppel sal word, dws grond
  • D1 tot D4 - Dit is 'n volgolfbrug gelykrigter met 1N4007 diodes
  • C1 en C2 - 35V elektrolitiese kondensators 2200uF (moet 35V wees, aangesien die potensiaal tussen positief en negatief 30V sal bereik)
  • U2 - LM7812, is 'n 12V positiewe spanningsreguleerder
  • U3 - LM7912, is 'n 12V negatiewe spanningsreguleerder (let op die penverskille tussen die 78xx en 79xx IC!)
  • C3 & C4 - 100nF Glad kondensators 25V elektrolities
  • C5 en C6 - 10uF keramiek skyf kapasitors

Ek het die komponente op strook gesoldeer en die vertikale spore vasgemaak met 'n koper geblaseerde koperdraad. Foto 3 hierbo toon my DIY -kragtoevoer, jammer daar is baie springers op die foto!

Stap 4: Analoog met digitale omsetters

Analoog met digitale omsetters
Analoog met digitale omsetters
Analoog met digitale omsetters
Analoog met digitale omsetters

Die Arduino Uno het reeds 'n ingeboude 10-bis ADC, maar daar is slegs 6 analoog insette. Daarom het ek gekies om twee ADC breakouts te gebruik met die ADS1115 16-bit. Dit stel 2^15 = 32767 bisse in staat om spanningsvlakke van 0-4.096V voor te stel (4.096V is die werkingspanning van die uitbreek), dit beteken dat elke bietjie 0.000125V verteenwoordig! Omdat dit die I2C -bus gebruik, beteken dit dat tot 4 ADC's aangespreek kan word, sodat tot 16 kanale gemonitor kan word indien nodig.

Ek het probeer om die verbindings met Fritzing te illustreer, maar as gevolg van die beperkings is daar geen aangepaste onderdele om 'n seinopwekker te illustreer nie. Die pers draad is gekoppel aan die uitset van die versterkerkring, die swart draad langs dit illustreer dat alle versterkerkringe gemeenskaplike grond moet deel. Ek het dus 'n broodbord gebruik om te illustreer hoe ek die punte vasgemaak het. My werklike projek het egter die uitbarstings wat in vroulike kopstukke sit, aan Veroboard gesoldeer, en al die bindpunte word op die verobord gesoldeer.

Stap 5: Mikrokontroleerder

Mikrobeheerder
Mikrobeheerder

Soos hierbo genoem, was die kontroleerder wat ek gekies het 'n Arduino Uno, dit was 'n goeie keuse, aangesien dit baie aan boord het en ingeboude funksies het wat andersins afsonderlik gebou moes word. Boonop is dit verenigbaar met baie spesiaal geboude 'skilde'. By hierdie geleentheid het ek 'n intydse klok nodig gehad om alle resultate te tydstempel en 'n SD -kaartskrywer om die resultate in 'n.csv- of.txt -lêer op te neem. Gelukkig het die Arduino-data-aanmeldskerm albei in 'n skild wat pas op die oorspronklike Arduino-bord sonder ekstra soldeer. Die skild is verenigbaar met die RTClib- en SD -kaartbiblioteke, dus hoef u geen spesialis -kode te gebruik nie.

Stap 6: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Ek het 5 mm ridgid medium/lae digtheid PVC (soms bekend as skuimplank) gebruik om die meeste van my komponente af te skroef en met 'n handwerkmes in 'n geskikte grootte te sny. Al die komponente is op 'n modulêre manier vir die prototipe gebou, aangesien dit individuele dele kan verwyder as dinge verkeerd loop, maar dit is nie so doeltreffend of netjies soos 'n geëtste PCB nie (verdere werk), dit beteken ook baie springdrade tussen die komponente.

Stap 7: Laai kode op

Laai die kode op na die Arduino, of kry die kode van my Github -repo

github.com/smooth-jamie/datalogger.git

Stap 8: Kalibrasie

Kalibrasie
Kalibrasie
Kalibrasie
Kalibrasie
Kalibrasie
Kalibrasie

Teoreties is die gemete stroom die gevolg van verskeie dinge saam:

Gemete ampère = (((a *0.45)/150)/(1.1/5000))/1000 waar 'a' die seinspanning van die versterker is

0.45 is die rms-waarde van die Vout van die versterkerkring, 150 is die op-amp-versterking (Rf / Rin = 150k / 1k), 1.1 is 'n volskaalse spanningsuitset van die CT wanneer gemete ampère 5A is, 5000 is eenvoudig 5A in mA, en 1000 is die hoeveelheid draaie in die transformator. Dit kan vereenvoudig word om:

Gemete ampère = (b * 9.216) / 5406555 waar b die ADC -gerapporteerde waarde is

Hierdie formule is getoets met behulp van die Arduino 10-bis ADC en 'n verskil tussen multimeterwaardes en Arduino-gegenereerde waardes is met 11% waargeneem, wat 'n onaanvaarbare afwyking is. My voorkeurmetode vir kalibrasie is om ADC -waarde teenoor stroom op 'n multimeter in 'n sigblad aan te teken en 'n polinoom van die derde orde te teken. Hieruit kan die kubieke formule gebruik word om beter resultate te gee by die berekening van gemete stroom:

(byl^3) + (bx^2) + (cx^1) + d

Die koëffisiënte a, b, c en d word in Excel bereken uit 'n eenvoudige datatabel, x is u ADC -waarde.

Om die data te kry, het ek 'n keramiek 1k veranderlike weerstand (reostaat) en 'n 12V transformator gebruik om die wisselspanning van 240V te verlaag, wat my 'n veranderlike stroombron van 13mA tot 100mA kon genereer. Hoe meer datapunte versamel word, hoe beter, maar ek stel voor dat u 10 datapunte versamel om 'n akkurate neiging te kry. Die aangehegte Excel -sjabloon sal die koëffisiënte vir u bereken; dit is dan net om dit in die arduino -kode in te voer

Op reël 69 van die kode sal u sien waar u die koëffisiënte moet invoer

float chn0 = ((7.30315 * pow (10, -13)) * pow (adc0, 3) + (-3.72889 * pow (10, -8) * pow (adc0, 2) + (0.003985811 * adc0) + (0.663064521)));

wat dieselfde is as die formule in vel1 van die Excel -lêer:

y = 7E-13x3-4E-08x2 + 0,004x + 0,663

Waar x = adc0 van watter kanaal u ook al kalibreer

Stap 9: Voltooi

Voltooi
Voltooi
Voltooi
Voltooi
Voltooi
Voltooi
Voltooi
Voltooi

Plaas dit in 'n projekomhulsel. Ek het die kragtoevoer afgehandel met 'n skakelaar om die hele ding aan/uit te skakel, en 'n IEC "figuur 8" -aansluiting vir die hoofingang. Skroef dit alles saam en jy is gereed om dit te toets.

Verdere werk

Die hele projek is redelik vinnig bespot, en daar is baie ruimte vir verbetering, geëtste kring, beter komponente. Ideaal gesproke sal die hele ding op FR4 geët of gesoldeer word, eerder as baie springers. Soos ek vroeër gesê het, is daar baie dinge wat ek nie genoem het nie, maar as u iets spesifiek wil weet, laat weet my in die kommentaar, en ek sal die instruksies opdateer!

Opgedateer 2016-12-18

Ek het nou 'n 16x2 LCD bygevoeg met die I2C "rugsak" om die eerste vier kanale te monitor, en ek sal nog een byvoeg om die laaste vier te monitor wanneer dit deur die pos kom.

Krediete

Hierdie projek is moontlik gemaak deur al die skrywers van die biblioteke wat in my Arduino -skets gebruik is, insluitend die DS3231 -biblioteek, Adafruit ADS1015 -biblioteek en die Arduino SD -biblioteek

Aanbeveel: