Sisukord:
- Samm: praegused trafod
- 2. samm: signaali konditsioneerimine
- Samm: toiteallikas
- Samm: analoog -digitaalmuundurid
- Samm: mikrokontroller
- 6. samm: kokkupanek
- Samm: koodi üleslaadimine
- 8. samm: kalibreerimine
- 9. samm: lõpetage
Video: Vahelduvvoolu jälgimisandmete logija: 9 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
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
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
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
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
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
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
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
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
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:
GPS -i korpuse andmete logija: 7 sammu (piltidega)
GPS -i Cap Data Logger: Siin on suurepärane nädalavahetuse projekt, kui teete matkamist või võtate pikki jalgrattasõite ja vajate GPS -i andmesalvestit, et jälgida kõiki teie tehtud rännakuid/sõite … Kui olete ehituse lõpetanud ja laadis andmed alla seadme GPS -moodulist
Tehke oma elektriarvesti/logija: 5 sammu (piltidega)
Tehke oma voolumõõtur/logija: Selles projektis näitan teile, kuidas ühendasin Arduino, INA219 võimsusmonitori IC, OLED LCD ja Micro SD kaardi PCB, et luua võimsusmõõtur/logger, millel on rohkem funktsioone kui populaarne USB -voolumõõtur. Alustame
Avatud lähtekoodiga andmete logija (OPENSDL): 5 sammu (piltidega)
Avatud lähtekoodiga andmete logija (OPENSDL): Selle projekti eesmärk on projekteerida, ehitada ja katsetada odavat mõõtmissüsteemi hoonete toimivuse hindamise uuringute jaoks, mis hõlmavad vähemalt temperatuuri, suhtelist niiskust, valgustust ja on laiendatavad täiendavatele anduritele, ja arendada
Nesti termostaadi ajaloo andmete logija: 6 sammu (koos piltidega)
Nesti termostaadi ajaloo andmekoguja: Nesti termostaat jälgib temperatuuri, niiskust ja ahju/vahelduvvoolu kasutamist ning kasutajad näevad ajaloolisi andmeid ainult 10 päeva jooksul. Tahtsin koguda ajaloolisi andmeid (> 10 päeva) ja leidsin Google'i arvutustabelite skripti, mis pingutab iga määratud aja tagant
Raspberry Pi GPS -i logija: 10 sammu (piltidega)
Raspberry Pi GPS -i logija: see juhend annab teile teada, kuidas ehitada vaarika pi nulliga kompaktne GPS -i logija. Selle süsteemi peamine eelis on see, et see sisaldab akut ja on seetõttu väga kompaktne. Seade salvestab andmed a.nmea -faili. Järgmised andmed on