Sisukord:

Vahelduvvoolu jälgimisandmete logija: 9 sammu (piltidega)
Vahelduvvoolu jälgimisandmete logija: 9 sammu (piltidega)

Video: Vahelduvvoolu jälgimisandmete logija: 9 sammu (piltidega)

Video: Vahelduvvoolu jälgimisandmete logija: 9 sammu (piltidega)
Video: CS50 2015 - Week 1, continued 2024, Juuli
Anonim
Vahelduvvoolu seireandmete logija
Vahelduvvoolu seireandmete logija

Tere kõigile, tere tulemast minu esimese juhendatava juurde! Päeval olen katseinsener ettevõttes, mis tarnib tööstuslikke kütteseadmeid, öösel agar tehnikahuviline ja isetegija. Osa minu tööst hõlmab kütteseadmete jõudluse testimist. Sel korral tahtsin, et saaksin 1000 seadme jooksul jälgida 8 seadme RMS -i voolutugevust ja logida andmed tulemuste graafikuks. Mul on juurdepääs andmelogijale, kuid see oli juba pühendunud mõnele muule projektile ja vajasin midagi odavat, nii et otsustasin selle põhilise andmekoguja kokku panna.

Projekt kasutab Arduino Unot analoogandurite lugemiseks analoog -digitaalmuunduri (ADC) kaudu ja salvestab andmed ajatempliga SD -kaardile. Vooluahelate kavandamisel on palju teooriat ja arvutusi, nii et selle asemel, et selgitada absoluutselt kõike, näitan ma teile, kuidas seda teha. Kui olete huvitatud täieliku tabamuse nägemisest, andke mulle sellest kommentaarides teada ja ma selgitan edasi.

MÄRGE:

Mul on olnud palju küsimusi True RMS arvutuste kohta. See seade kasutab laine tippu jäädvustamiseks poollaine alaldit, mida saab seejärel korrutada 0,707 -ga, et saada RMS. Järelikult annab see täpse tulemuse ainult lineaarsete koormustega (st mõõdetav vool on puhas siinuslaine). Mittelineaarsed tarvikud või koormused, mis annavad kolmnurkse, ristkülikukujulise või mõne muu siinuseta lainekuju, ei anna RMS-i tõelist arvutust. See seade mõõdab ainult vahelduvvoolu, see ei ole mõeldud pinge mõõtmiseks, järelikult ei arvuta ega mõõta võimsustegurit. Palun vaadake minu teisi juhiseid selle kohta, kuidas luua võimsustegur, mida saab kasutada. Paljud inimesed on samuti öelnud, et sirge vahelduvvooluühendus 2,5 V keskjoonega on parem, kuid see tekitab tüsistusi, kuna see hõlmab piisavalt kiiret digitaalset diskreetimissagedust, tugevat keskmistamist/andmete silumist jne ning selle tekitatud ebakindlus on palju suurem kui mõõtmine toores väärtus. Isiklikult eelistan võimaluse korral riistvaralahendusi ja lihtsamat koodi, nii et see meetod mind ei huvita. Täpsuse osas usun, et see on palju parem kui viimane ja hiljem näete minu tulemustes, et pärast kalibreerimist on regressioonikoefitsient 1,0 lähedal.

Samm: praegused trafod

Praegused trafod
Praegused trafod
Praegused trafod
Praegused trafod

See projekt kasutab voolutrafot HMCT103C 5A/5MA. Sellel on 1: 1000 pöörde suhe, mis tähendab iga 5A voolu, mis voolab läbi juhi, 5 mA voolab läbi CT. CT kahe klemmi külge tuleb ühendada takisti, et oleks võimalik mõõta selle pinget. Sel korral kasutasin 220 oomi takistit, seetõttu kasutades Ohmi seadust V = IR, on CT väljund 1,1 volti vahelduvvool iga 5 mA CT voolu kohta (või iga 5A mõõdetud voolu kohta). Lülitusjuhtmete tegemiseks joodeti CT -d takisti ja mõne instrumendijuhtmega ribaplaadile. Lõpetasin juhtmed 3,5 mm isastele helipistikutega.

Siin on voolutrafo andmeleht

Andmeleht

2. samm: signaali konditsioneerimine

Signaali konditsioneerimine
Signaali konditsioneerimine
Signaali konditsioneerimine
Signaali konditsioneerimine

CT signaal on nõrk, nii et seda tuleb võimendada. Selleks jootsin kokku lihtsa võimendi vooluahela, kasutades uA741 kaheraudset op -võimendit. Sel juhul on võimenduseks seatud 150, kasutades valemit Rf / Rin (150k / 1k). Võimendi väljundsignaal on siiski vahelduvvool, op-amp väljundis olev diood katkestab vahelduvvoolu negatiivse pooltsükli ja edastab positiivse pinge 0,1uF kondensaatorile, et tasandada laine laineliseks alalisvoolusignaaliks. Allpool on skeemi moodustavad osad:

  • V1-See skeem on meelevaldne, see tähistab lihtsalt signaalipinget, mis sisestatakse op-võimendi mitteinverteerivasse sisendisse.
  • R1 - see on tuntud kui tagasiside takisti (Rf) ja see on seatud väärtusele 150k
  • R2 - seda nimetatakse sisendtakistiks (Rin) ja see on seatud väärtusele 1k
  • 741 - see on integreeritud ahel uA741
  • VCC - positiivne toiteliin +12V
  • VEE - negatiivne toiteraudtee -12V
  • D1 - Kas haflainete alaldussignaali diood 1N4001
  • C3 - see kondensaator hoiab alalisvoolu signaali määratud aja jooksul

Pildil 2 näete, et see on kokku pandud Veroboardi ja tinatatud vasktraadi abil. PCB stendide jaoks puuriti 4 auku, et neid saaks virnastada (kuna seal on kaheksa kanalit, peab kokku olema kaheksa võimendusahelat.

Samm: toiteallikas

Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas
Toiteallikas

Kui te ei soovi seda nullist valmistada, võite osta Hiinast eelnevalt kokkupandud plaadi, nagu ülaltoodud, kuid vajate siiski 3VA trafot (vähendage 240 V kuni 12 V). Pildil olev maksis mulle umbes 2,50 naela

Projekti toiteks otsustasin teha oma kaheraudtee 12VDC toiteallika. See oli mugav, kuna op -võimendid vajavad +12V, 0V, -12V ja Arduino Uno võtab vastu mis tahes toite kuni 14 VDC. Allpool on skeemi moodustavad osad:

  • V1 - See kujutab endast toitevõrku 240V 50Hz
  • T1 - See on väike 3VA trafo, mille kohta ma valetasin. Tähtis on, et trafol oleks sekundaaril tsentraalne kraan, mis ühendatakse 0 V, st maandusega
  • D1 kuni D4 - see on täislaine silla alaldi, mis kasutab 1N4007 dioode
  • C1 ja C2 - 35V elektrolüütkondensaatorid 2200uF (peab olema 35V, kuna potentsiaal positiivse ja negatiivse vahel jõuab 30V -ni)
  • U2 - LM7812 on 12 V positiivse pinge regulaator
  • U3 - LM7912, on 12 V negatiivne pingeregulaator (olge ettevaatlik, kui märkate 78xx ja 79xx IC pinti erinevusi!)
  • C3 & C4 - 100nF Siluvad kondensaatorid 25V elektrolüütilised
  • C5 ja C6 - 10uF keraamilised ketaskondensaatorid

Jootsin komponendid ribalauale ja ühendasin vertikaalsed rajad palja ühe südamikuga tinutatud vasktraadiga. Ülaltoodud pilt 3 näitab minu isetegija toiteallikat, kahjuks on fotol palju hüppajaid!

Samm: analoog -digitaalmuundurid

Analoog -digitaalmuundurid
Analoog -digitaalmuundurid
Analoog -digitaalmuundurid
Analoog -digitaalmuundurid

Arduino Unol on juba sisseehitatud 10-bitine ADC, kuid analoogsisendeid on ainult 6. Seetõttu otsustasin 16-bitise ADS1115-ga kasutada kahte ADC-katkestust. See võimaldab 2^15 = 32767 bitti kujutada pingetaset vahemikus 0-4,096V (4,096V on katkestuse tööpinge), see tähendab, et iga bit tähistab 0,000125V! Kuna see kasutab I2C -bussi, tähendab see, et saab adresseerida kuni 4 ADC -d, mis võimaldab soovi korral jälgida kuni 16 kanalit.

Olen püüdnud ühendusi illustreerida Fritzzi abil, kuid piirangute tõttu pole signaaligeneraatori illustreerimiseks kohandatud osi. Lilla traat on ühendatud võimendiahela väljundiga, selle kõrval olev must juhe illustreerib, et kõigil võimendusahelatel peab olema ühine maa. Nii et ma olen kasutanud leivaplaati, et illustreerida, kuidas olen viigipunktid teinud. Kuid minu tegelikus projektis on purunemised naissoost päistes, joodetud Veroboardile ja kõik sidumispunktid on joodetud veroboardile.

Samm: mikrokontroller

Mikrokontroller
Mikrokontroller

Nagu eespool mainitud, oli minu valitud kontroller Arduino Uno, see oli hea valik, kuna sellel on palju pardal ja sisseehitatud funktsioone, mida muidu oleks vaja eraldi ehitada. Lisaks ühildub see paljude spetsiaalselt ehitatud kilpidega. Sel korral vajasin kõigi tulemuste ajatempliks reaalajas kella ja tulemuste.csv- või.txt -faili salvestamiseks SD -kaardi kirjutajat. Õnneks on Arduino andmekogumiskilbil mõlemad kilbid, mis lükkavad kinnitused algsele Arduino plaadile ilma täiendava jootmiseta. Kilp ühildub RTClibi ja SD -kaardi raamatukogudega, nii et pole vaja erikoodi.

6. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Kasutasin 5 mm ridgid keskmise/madala tihedusega PVC -d (mõnikord tuntud kui vahtplaati), et kruvida enamik komponente ja lõigata see käsitöönoaga sobiva suurusega. Kõik komponendid ehitati prototüübi jaoks modulaarselt, kuna see võimaldab valesti minna üksikuid osi eemaldada, kuid see pole nii tõhus ega korras kui söövitatud trükkplaat (edasine töö), see tähendab ka palju vahejuhtmeid komponendid.

Samm: koodi üleslaadimine

Laadige kood üles Arduinosse või hankige kood minu Githubi repost

github.com/smooth-jamie/datalogger.git

8. samm: kalibreerimine

Kalibreerimine
Kalibreerimine
Kalibreerimine
Kalibreerimine
Kalibreerimine
Kalibreerimine

Teoreetiliselt on mõõdetud vool mitme asja tulemus:

Mõõdetud amprit = (((a *0,45)/150)/(1,1/5000))/1000 kus 'a' on võimendi signaalipinge

0,45 on võimendiahela Vout efektiivväärtus, 150 on op-amp võimendus (Rf / Rin = 150k / 1k), 1,1 on CT täisväärtuslik pingeväljund, kui mõõdetud amprit on 5A, 5000 on lihtsalt 5A mA ja 1000 on trafo pöörete arv. Seda saab lihtsustada järgmiselt:

Mõõdetud amprit = (b * 9,216) / 5406555, kus b on ADC teatatud väärtus

Seda valemit testiti Arduino 10-bitise ADC abil ning erinevust multimeetri väärtuste ja Arduino loodud väärtuste vahel täheldati 11%, mis on vastuvõetamatu kõrvalekalle. Minu eelistatud kalibreerimismeetod on salvestada arvutustabelis multimeetrile ADC väärtus vs praegune ja joonistada kolmanda järgu polünoom. Sellest saab kuupmeetrilist valemit kasutada paremate tulemuste saamiseks mõõdetud voolu arvutamisel:

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

Koefitsiendid a, b, c ja d arvutatakse Excelis lihtsast andmetabelist, x on teie ADC väärtus.

Andmete saamiseks kasutasin keraamilist 1k muutuvat takisti (reostaati) ja 12v trafot, et vähendada võrgu vahelduvpinget 240 V -lt, mis andis mulle muutuva vooluallika vahemikus 13 mA kuni 100 mA. Mida rohkem andmepunkte kogutakse, seda parem, kuid soovitan koguda 10 andmepunkti, et saada täpne suundumus. Lisatud Exceli mall arvutab teie eest koefitsiendid, siis tuleb vaid need sisestada arduino koodi

Koodi real 69 näete, kuhu koefitsiendid sisestada

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

mis on sama mis Exceli faili lehe 1 valem:

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

Kus x = kalibreeritava kanali adc0

9. samm: lõpetage

Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama
Lõpetama

Pange see projektiümbrisesse. Lõpetasin toiteallika lülituslülitiga, et kogu asi toiteallikast sisse/välja lülitada, ja võrgusisendi jaoks IEC "joonis 8" pistik. Keerake see kõik kokku ja olete valmis seda proovima.

Edasine töö

Kogu projekt imitati üsna kiiresti, nii et seal on palju arenguruumi, söövitatud vooluring, paremad komponendid. Ideaalis oleks kogu asi söövitatud või joodetud FR4 -le, mitte koormatele džempritele. Nagu ma varem ütlesin, on palju asju, mida ma pole maininud, kuid kui soovite midagi teada, andke mulle kommentaarides teada ja värskendan juhendit!

Värskendus 18.12.2016

Olen nüüd lisanud 16x2 LCD, kasutades I2C "seljakotti" nelja esimese kanali jälgimiseks, lisan teise, et jälgida nelja viimast, kui see postituse kaudu saabub.

Autorid

Selle projekti tegid võimalikuks kõik minu Arduino visandis kasutatud raamatukogude autorid, sealhulgas DS3231 raamatukogu, Adafruit ADS1015 raamatukogu ja Arduino SD raamatukogu

Soovitan: