Satura rādītājs:
- 1. darbība. Pašreizējie transformatori
- 2. solis: signāla kondicionēšana
- 3. solis: barošanas avots
- 4. solis: analogie digitālajiem pārveidotājiem
- 5. solis: mikrokontrolleris
- 6. darbība: montāža
- 7. darbība: koda augšupielāde
- 8. solis: kalibrēšana
- 9. solis: pabeidziet
Video: Maiņstrāvas uzraudzības datu reģistrētājs: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Sveiki visi, laipni lūdzam manā pirmajā pamācībā! Pa dienu esmu testēšanas inženieris uzņēmumā, kas piegādā rūpnieciskās apkures iekārtas, naktī esmu dedzīgs tehnoloģiju hobijs un DIY'er. Daļa no mana darba ir saistīta ar sildītāju veiktspējas pārbaudi. Šoreiz es vēlējos, lai varētu 1000 stundu laikā pārraudzīt 8 ierīču RMS strāvas padevi un reģistrēt datus, lai vēlāk attēlotu rezultātus. Man ir piekļuve datu reģistrētājam, taču tas jau bija paredzēts citam projektam, un man vajadzēja kaut ko par zemām izmaksām, tāpēc es nolēmu apvienot šo pamata datu reģistrētāju.
Projekts izmanto Arduino Uno, lai nolasītu analogos sensorus, izmantojot analogo -ciparu pārveidotāju (ADC), un reģistrē datus ar laika zīmogu SD kartē. Shēmu projektēšanā ir daudz teorijas un aprēķinu, tāpēc tā vietā, lai izskaidrotu pilnīgi visu, es tikai parādīšu, kā to izdarīt. Ja jūs interesē redzēt PILNU trāpījumu, paziņojiet man komentāros, un es paskaidrošu tālāk.
PIEZĪME:
Man bija daudz jautājumu par True RMS aprēķiniem. Šī ierīce izmanto pusviļņu taisngriezi, lai uztvertu viļņa maksimumu, ko pēc tam var reizināt ar 0,707, lai iegūtu RMS. Tā rezultātā tas sniegs precīzu rezultātu tikai ar lineārām slodzēm (ti, izmērītā strāva ir tīrs sinusoidāls vilnis). Nelineāras piegādes vai slodzes, kas dod trīsstūra, taisnstūra vai jebkuru citu sinusa viļņu formu, nedos patiesu RMS aprēķinu. Šī ierīce mēra tikai maiņstrāvu, tā nav paredzēta sprieguma mērīšanai, tāpēc tā neaprēķina un nemēra jaudas koeficientu. Lūdzu, skatiet manu citu pamācību par to, kā izveidot jaudas koeficienta mērītāju, ko var izmantot šim nolūkam. Daudzi cilvēki arī ir teikuši, ka labāka ir taisna maiņstrāvas sakabe ar 2,5 V viduslīniju, taču tas rada sarežģījumus, jo tas ietver pietiekami ātru digitālās paraugu ņemšanas ātrumu, stabilu vidējo vērtību/datu izlīdzināšanu utt., Un tā radītā nenoteiktība ir daudz lielāka nekā mērīšana neapstrādāta vērtība. Personīgi es dodu priekšroku aparatūras risinājumiem un vienkāršākam kodam, ja iespējams, tāpēc šī metode mani neinteresē. Ar precizitāti es uzskatu, ka tas ir daudz labāk nekā pēdējais, un vēlāk manos rezultātos redzēsit, ka pēc kalibrēšanas ir regresijas koeficients, kas ir tuvu 1,0.
1. darbība. Pašreizējie transformatori
Šajā projektā tiek izmantots strāvas transformators HMCT103C 5A/5MA. Tam ir 1: 1000 apgriezienu attiecība, kas nozīmē katru 5A strāvu, kas plūst caur vadītāju, 5 mA plūst caur CT. Divi CT termināļi ir jāpievieno rezistoram, lai varētu izmērīt spriegumu. Šajā gadījumā es izmantoju 220 omu rezistoru, tāpēc, izmantojot Ohma likumu V = IR, CT izeja būs 1,1 volti maiņstrāvas uz katriem 5 mA CT strāvas (vai ik pēc 5A izmērītās strāvas). CT tika pielodēti, lai noņemtu plāksni ar rezistoru un kādu instrumenta vadu, lai izveidotu lidojošus vadus. Es pārtraucu vadus ar 3,5 mm vīriešu audio ligzdas spraudņiem.
Šeit ir pašreizējā transformatora datu lapa
Datu lapas
2. solis: signāla kondicionēšana
Signāls no CT būs vājš, tāpēc tas ir jāpastiprina. Šim nolūkam es lodēju vienkāršu pastiprinātāja ķēdi, izmantojot divu sliežu opa pastiprinātāju uA741. Šajā gadījumā pastiprinājums tiek iestatīts uz 150, izmantojot formulu Rf / Rin (150k / 1k). Tomēr izejas signāls no pastiprinātāja joprojām ir maiņstrāva, op-amp izejas diode pārtrauc maiņstrāvas negatīvo pusciklu un nodod pozitīvo spriegumu 0.1uF kondensatoram, lai izlīdzinātu viļņu viļņotā līdzstrāvas signālā. Zemāk ir daļas, kas veido ķēdi:
- V1-šajā diagrammā tas ir patvaļīgi, tas vienkārši attēlo signāla spriegumu, kas tiek ievadīts op-amp neinvertējošā ieejā.
- R1 - tas ir pazīstams kā atgriezeniskās saites rezistors (Rf) un ir iestatīts uz 150k
- R2 - tas ir pazīstams kā ieejas rezistors (Rin) un ir iestatīts uz 1k
- 741 - šī ir integrētā shēma uA741
- VCC - pozitīva barošanas sliede +12V
- VEE - negatīvā barošanas sliede -12V
- D1 - Vai haf viļņu taisnošanas signāla diode 1N4001
- C3 - šis kondensators noteiktu laiku tur līdzstrāvas signālu
2. attēlā redzams, ka tas ir samontēts, izmantojot Veroboard un alvas vara stiepli. PCB statīviem tika izurbti 4 caurumi, lai tos varētu sakraut (jo ir astoņi kanāli, kopā jābūt astoņām pastiprinātāju shēmām.
3. solis: barošanas avots
Ja jūs nevēlaties to izgatavot no nulles, jūs varat iegādāties iepriekš samontētu dēli no Ķīnas, kā parādīts iepriekš, bet jums joprojām būs nepieciešams 3VA transformators (atkāpieties no 240 V līdz 12 V). Attēlā redzētais man izmaksāja aptuveni £ 2.50
Lai darbinātu projektu, es nolēmu izveidot savu divu sliežu 12VDC barošanas avotu. Tas bija ērti, jo darbības pastiprinātājiem ir nepieciešami +12V, 0V, -12V, un Arduino Uno var pieņemt barošanu līdz 14 VDC. Zemāk ir daļas, kas veido ķēdi:
- V1 - tas norāda barošanu no tīkla kontaktligzdas 240V 50Hz
- T1 - Šis ir mazs 3VA transformators, par kuru es meloju. Ir svarīgi, lai transformatoram būtu centrālais pieskāriens sekundārajam, kas tiks savienots ar 0 V, ti, zemi
- D1 līdz D4 - tas ir pilna viļņa tilta taisngriezis, izmantojot 1N4007 diodes
- C1 un C2 - 35V elektrolītiskie kondensatori 2200uF (jābūt 35V, jo potenciāls starp pozitīvo un negatīvo sasniegs 30V)
- U2 - LM7812, ir 12V pozitīva sprieguma regulators
- U3 - LM7912 ir 12 V negatīva sprieguma regulators (uzmanieties, lai ņemtu vērā tapu atšķirības starp 78xx un 79xx IC!)
- C3 & C4 - 100nF Izlīdzinoši kondensatori 25V elektrolītiskie
- C5 & C6 - 10uF keramikas disku kondensatori
Es lodēju komponentus uz sloksnes un pievienojos vertikālajām sliedēm ar tukšu viena kodola alvas vara stiepli. Iepriekš redzamajā 3. attēlā redzams mans DIY barošanas avots, žēl, ka fotoattēlā ir daudz džemperu!
4. solis: analogie digitālajiem pārveidotājiem
Arduino Uno jau ir iebūvēts 10 bitu ADC, tomēr ir tikai 6 analogās ieejas. Tāpēc es izvēlējos izmantot divus ADC pārtraukumus ar 16 bitu ADS1115. Tas ļauj 2^15 = 32767 bitiem attēlot sprieguma līmeņus no 0-4,096V (4,096V ir pārtraukuma darba spriegums), tas nozīmē, ka katrs bits ir 0,000125V! Turklāt, tā kā tiek izmantota I2C kopne, tas nozīmē, ka var adresēt līdz 4 ADC, ļaujot pēc vēlēšanās uzraudzīt līdz 16 kanāliem.
Esmu mēģinājis ilustrēt savienojumus, izmantojot Fritzing, taču ierobežojumu dēļ nav pielāgotu daļu, kas ilustrētu signālu ģeneratoru. Violetais vads ir pievienots pastiprinātāja ķēdes izejai, melnais vads blakus tam parāda, ka visām pastiprinātāju shēmām ir jābūt kopīgai. Tāpēc es esmu izmantojis maizes dēli, lai ilustrētu, kā esmu izveidojis kaklasaites punktus. Tomēr manā faktiskajā projektā izlaušanās notiek sieviešu galvenēs, pielodētas pie Veroboard, un visi sasaistes punkti ir pielodēti verboardā.
5. solis: mikrokontrolleris
Kā minēts iepriekš, kontrolieris, kuru es izvēlējos, bija Arduino Uno, tā bija laba izvēle, jo tajā ir daudz iebūvētu un iebūvētu funkcionalitāti, kas citādi būtu jāveido atsevišķi. Turklāt tas ir saderīgs ar daudziem īpaši izgatavotiem “vairogiem”. Šajā gadījumā man bija nepieciešams reāllaika pulkstenis, lai visiem rezultātiem būtu laikspiedols, un SD kartes rakstītājs, lai ierakstītu rezultātus.csv vai.txt failā. Par laimi, Arduino datu reģistrēšanas vairogam ir vairogs, kas ir piestiprināts pie oriģinālās Arduino plates bez papildu lodēšanas. Vairogs ir saderīgs ar RTClib un SD karšu bibliotēkām, tāpēc nav nepieciešams īpašs kods.
6. darbība: montāža
Es izmantoju 5 mm ridgid vidēja/zema blīvuma PVC (dažreiz pazīstams kā putuplasta plāksne), lai pieskrūvētu lielāko daļu savu sastāvdaļu un ar amatniecības nazi sagrieztu to ērtā izmērā. Visas sastāvdaļas tika veidotas modulāri prototipam, jo tas ļauj noņemt atsevišķas detaļas, ja kaut kas noiet greizi, tomēr tas nav tik efektīvs vai sakopts kā iegravēts PCB (turpmāks darbs), tas nozīmē arī daudzus džemperu vadus starp sastāvdaļas.
7. darbība: koda augšupielāde
Augšupielādējiet kodu Arduino vai iegūstiet kodu no mana Github repo
github.com/smooth-jamie/datalogger.git
8. solis: kalibrēšana
Teorētiski izmērītā strāva būs vairāku lietu rezultāts:
Izmērītie ampēri = ((((a *0,45)/150)/(1,1/5000))/1000 kur 'a' ir signāla spriegums no pastiprinātāja
0,45 ir pastiprinātāja ķēdes Vout vidējā vērtība, 150 ir op-amp pastiprinājums (Rf / Rin = 150k / 1k), 1,1 ir CT pilna mēroga sprieguma izeja, kad izmērītie ampēri ir 5A, 5000 ir vienkārši 5A mA, un 1000 ir transformatora apgriezienu skaits. To var vienkāršot šādi:
Izmērītie ampēri = (b * 9.216) / 5406555, kur b ir ADC ziņotā vērtība
Šī formula tika pārbaudīta, izmantojot Arduino 10 bitu ADC, un atšķirība starp multimetra vērtībām un Arduino ģenerētajām vērtībām tika novērota par 11%, kas ir nepieņemama novirze. Mana vēlamā kalibrēšanas metode ir ierakstīt ADC vērtību pret pašreizējo multimetrā izklājlapā un uzzīmēt trešās kārtas polinomu. No tā var izmantot kubikformulu, lai iegūtu labākus rezultātus, aprēķinot izmērīto strāvu:
(cirvis^3) + (bx^2) + (cx^1) + d
Koeficienti a, b, c un d tiek aprēķināti programmā Excel no vienkāršas datu tabulas, x ir jūsu ADC vērtība.
Lai iegūtu datus, es izmantoju keramikas 1k mainīgo rezistoru (reostatu) un 12v transformatoru, lai samazinātu maiņstrāvas spriegumu no 240 V, kas man radīja mainīga strāvas avotu no 13 mA līdz 100 mA. Jo vairāk datu punktu savākti, jo labāk, tomēr es ieteiktu savākt 10 datu punktus, lai iegūtu precīzu tendenci. Pievienotā Excel veidne aprēķinās koeficientus jūsu vietā, tad ir tikai jāievada tie arduino kodā
Koda 69. rindā redzēsit, kur ievadīt koeficientus
float chn0 = ((7.30315 * pow (10, -13)) * pow (adc0, 3) + (-3.72889 * pow (10, -8) * pow (adc0, 2) + (0.003985811 * adc0) + (0.663064521)));
kas ir tāda pati kā formula Excel faila 1. lapā:
y = 7E-13x3-4E-08x2 + 0,004x + 0,663
Kur x = kalibrējamā kanāla adc0
9. solis: pabeidziet
Ievietojiet to projekta aplokā. Es pabeidzu strāvas padevi ar pārslēgšanas slēdzi, lai visu ieslēgtu/izslēgtu pie barošanas avota, un IEC "8. attēla" savienotāju tīkla ieejai. Skrūvējiet to visu kopā un esat gatavs to pārbaudīt.
Turpmākais darbs
Viss projekts tika izspēlēts diezgan ātri, tāpēc ir daudz iespēju uzlabot, iegravēta ķēde, labākas sastāvdaļas. Ideālā gadījumā visa lieta būtu iegravēta vai pielodēta uz FR4, nevis džemperiem. Kā jau teicu iepriekš, ir daudz lietu, kuras neesmu minējis, bet, ja ir kaut kas konkrēts, ko vēlaties zināt, paziņojiet man komentāros, un es atjaunināšu pamācību!
Atjauninājums 18.12.2016
Tagad esmu pievienojis 16x2 LCD, izmantojot I2C "mugursomu", lai uzraudzītu pirmos četrus kanālus, un pievienos vēl vienu, lai uzraudzītu pēdējos četrus, kad tas ierodas caur pastu.
Kredīti
Šo projektu padarīja iespējamu visi manā Arduino skicē izmantoto bibliotēku autori, tostarp DS3231 bibliotēka, Adafruit ADS1015 bibliotēka un Arduino SD bibliotēka
Ieteicams:
GPS vāciņu datu reģistrētājs: 7 soļi (ar attēliem)
GPS vāciņu datu reģistrētājs: šeit ir lielisks nedēļas nogales projekts, ja vēlaties doties pārgājienos vai doties garos velosipēdu braucienos, un jums ir nepieciešams GPS datu reģistrētājs, lai izsekotu visiem jūsu veiktajiem pārgājieniem/braucieniem … Kad esat pabeidzis būvniecību un lejupielādēja datus no ierīces GPS moduļa
DIY GPS datu reģistrētājs jums nākamajā braucienā/pārgājienu takā: 11 soļi (ar attēliem)
DIY GPS datu reģistrētājs jums nākamajam braucienam/pārgājienu ceļam: Šis ir GPS datu reģistrētājs, ko varat izmantot vairākiem mērķiem, teiksim, ja vēlaties reģistrēt savu garo braucienu, ko veicāt nedēļas nogalē, lai pārbaudītu rudens krāsas. vai arī jums ir iecienīta taka, kuru katru gadu apmeklējat rudenī, un jūs
Galīgais laika apstākļu gaisa balonu datu reģistrētājs: 9 soļi (ar attēliem)
Augstākā laika apstākļu gaisa balonu datu reģistrētājs: ierakstiet laika apstākļu gaisa balonu datus ar galīgo laika apstākļu gaisa balonu datu reģistrētāju. Laika balons augstā augstumā, pazīstams arī kā augstkalnu balons vai HAB, ir milzīgs balons, kas piepildīts ar hēliju. Šie baloni ir platforma
Atvērtā koda datu reģistrētājs (OPENSDL): 5 soļi (ar attēliem)
Atvērtā pirmkoda datu reģistrētājs (OPENSDL): šī projekta mērķis ir izstrādāt, izveidot un pārbaudīt ēku veiktspējas novērtēšanas pētījumu zemo izmaksu mērīšanas sistēmu, kas ietver vismaz temperatūru, relatīvo mitrumu, apgaismojumu un ir paplašināma ar papildu sensoriem, un attīstīties
Nest termostata vēstures datu reģistrētājs: 6 soļi (ar attēliem)
Nest termostata vēstures datu reģistrētājs: Nest termostats izseko temperatūru, mitrumu un krāsns/maiņstrāvas izmantošanu, un lietotāji var skatīt vēsturiskos datus tikai par 10 dienām. Es vēlējos apkopot vēsturiskus datus (> 10 dienas) un saskāros ar Google izklājlapu skriptu, kas pingē ligzdo katru iestatīto laiku