Բովանդակություն:

AC ընթացիկ մոնիտորինգի տվյալների գրանցիչ. 9 քայլ (նկարներով)
AC ընթացիկ մոնիտորինգի տվյալների գրանցիչ. 9 քայլ (նկարներով)

Video: AC ընթացիկ մոնիտորինգի տվյալների գրանցիչ. 9 քայլ (նկարներով)

Video: AC ընթացիկ մոնիտորինգի տվյալների գրանցիչ. 9 քայլ (նկարներով)
Video: How to use Allegro ACS712 AC/DC Current Sensor with Arduino 2024, Հուլիսի
Anonim
AC ընթացիկ մոնիտորինգի տվյալների անտառահատ
AC ընթացիկ մոնիտորինգի տվյալների անտառահատ

Ողջույն բոլորին, բարի գալուստ իմ առաջին հրահանգը: Dayերեկը ես ինժեներ -փորձարկող եմ մի ընկերության համար, որը մատակարարում է արդյունաբերական ջեռուցման սարքավորումներ, իսկ գիշերը ես տեխնոլոգիայի եռանդուն հոբբիստ եմ և DIY'er: Իմ աշխատանքի մի մասը ներառում է ջեռուցիչների կատարողականի ստուգում, այս առիթով ես ուզում էի կարողանալ 1000 ժամվա ընթացքում վերահսկել 8 սարքի RMS ընթացիկ վիճակահանությունը և մուտքագրել տվյալները `արդյունքները հետագայում գրաֆիկացնելու համար: Ես մուտք ունեմ տվյալների գրանցիչ, բայց դա արդեն նվիրված էր մեկ այլ նախագծի, և ինձ հարկավոր էր ինչ -որ ցածր գին, ուստի որոշեցի միասին հավաքել այս հիմնական տվյալների ցուցակը:

Նախագիծն օգտագործում է Arduino Uno ՝ անալոգային սենսորներ կարդալու համար անալոգային թվային փոխարկիչի (ADC) միջոցով և տվյալները գրանցում է SD քարտի ժամանակային կնիքով: Շրջանակների նախագծման մեջ շատ տեսություն և հաշվարկներ կան, ուստի բացարձակապես ամեն ինչ բացատրելու փոխարեն, ես պարզապես ցույց կտամ ձեզ, թե ինչպես դա անել: Եթե ձեզ հետաքրքրում է FULL հիթը տեսնելը, ապա ինձ տեղյակ պահեք մեկնաբանություններում, և ես լրացուցիչ կբացատրեմ:

ՆՇՈՒՄ:

Ես շատ հարցեր ունեի True RMS հաշվարկների վերաբերյալ: Այս սարքը օգտագործում է կես ալիքի ուղղիչ ՝ ալիքի գագաթը գրավելու համար, որն այնուհետև կարող է բազմապատկվել 0,707 -ով ՝ RMS ստանալու համար: Հետևաբար, դա միայն ճշգրիտ արդյունք կտա գծային բեռների դեպքում (այսինքն ՝ չափվող հոսանքը մաքուր սինուս ալիք է): Ոչ գծային մատակարարումները կամ բեռները, որոնք տալիս են եռանկյունաձև, ուղղանկյուն կամ այլ ոչ սինուսային ալիքի ձևեր, չեն տա RMS- ի իսկական հաշվարկ: Այս սարքը չափում է AC հոսանքը միայն այն նախատեսված չէ լարման չափման համար, հետևաբար այն չի հաշվարկում կամ չափում հզորության գործոնը: Խնդրում եմ, տես իմ մյուս հրահանգը, թե ինչպես ստեղծել էներգիայի գործոնի հաշվիչ, որը կարող է օգտագործվել դրա համար: Շատերը նաև ասել են, որ 2.5 Վ կենտրոնական գծի հետ ուղիղ միացումն ավելի լավ է, սակայն դա բարդություններ է առաջացնում, քանի որ ներառում է բավականաչափ արագ թվային նմուշառման արագություն, միջին միջին/տվյալների հարթեցում և այլն: հում արժեքը: Անձամբ ես նախընտրում եմ ապարատային լուծումներ և հնարավորինս պարզ կոդ, այնպես որ ինձ չի հետաքրքրում այդ մեթոդը: Accշգրտությամբ, ես հավատում եմ, որ սա շատ ավելի լավ է, քան վերջինս:

Քայլ 1: Ընթացիկ տրանսֆորմատորներ

Ընթացիկ տրանսֆորմատորներ
Ընթացիկ տրանսֆորմատորներ
Ընթացիկ տրանսֆորմատորներ
Ընթացիկ տրանսֆորմատորներ

Այս նախագիծը օգտագործում է HMCT103C 5A/5MA ընթացիկ տրանսֆորմատոր: Այն ունի 1: 1000 պտույտ հարաբերակցություն, ինչը նշանակում է հոսանքի յուրաքանչյուր 5 Ա հոսանքի համար, որը հոսում է հաղորդիչով, 5 մԱ հոսում է ՀՏ -ով: Անհրաժեշտ է մի դիմադրություն միացնել CT- ի երկու տերմինալների վրա, որպեսզի թույլ տա չափել դրա լարումը: Այս առիթով ես օգտագործեցի 220 Օմ ռեզիստոր, հետևաբար օգտագործելով Օհմի օրենքը V = IR, CT- ի ելքը կլինի 1.1 Վոլտ AC, յուրաքանչյուր 5 մԱ CT հոսանքի համար (կամ չափված հոսանքի յուրաքանչյուր 5A): ՀՏ -երը զոդման են ենթարկվել ռեզիստորով տախտակի վրա և որոշ գործիքային մետաղալարեր `թռչող տողեր պատրաստելու համար: Ես հանգույցները դադարեցրեցի 3.5 մմ արական աուդիո խցիկի խցաններով:

Ահա ընթացիկ տրանսֆորմատորի տվյալների թերթիկը

Տվյալների թերթիկ

Քայլ 2: Ազդանշանի պայմանավորում

Ազդանշանի պայմանավորում
Ազդանշանի պայմանավորում
Ազդանշանի պայմանավորում
Ազդանշանի պայմանավորում

CT- ից ազդանշանը թույլ կլինի, ուստի այն պետք է ուժեղացնել: Դրա համար ես միացրեցի մի պարզ ուժեղացուցիչի սխեմա ՝ օգտագործելով uA741 երկակի երկաթուղային օպերատոր: Այս դեպքում շահույթը սահմանվում է 150 ՝ օգտագործելով Rf / Rin բանաձևը (150k / 1k): Այնուամենայնիվ, ուժեղացուցիչից ելքային ազդանշանը դեռ AC է, op-amp- ի ելքի դիոդը կտրում է AC- ի բացասական կես ցիկլը և դրական լարումը փոխանցում 0.1uF կոնդենսատորին `ալիքը հարթեցնելու համար ալիքվող DC ազդանշանի: Ստորև բերված են հատվածը, որը կազմում է միացումը.

  • V1-Այս սխեմայում սա կամայական է, այն պարզապես ներկայացնում է ազդանշանի լարումը, որը սնվում է op-amp- ի ոչ շրջադարձային մուտքի մեջ:
  • R1 - Սա հայտնի է որպես հետադարձ դիմադրություն (Rf) և սահմանվում է 150k
  • R2 - Սա հայտնի է որպես մուտքային դիմադրություն (Rin) և սահմանված է 1k
  • 741 - Սա uA741 ինտեգրված միացումն է
  • VCC - Դրական մատակարարման երկաթուղի +12V
  • VEE - բացասական մատակարարման երկաթուղի -12 Վ
  • D1 - Արդյո՞ք ալիքի ուղղիչ ազդանշանի դիոդն է 1N4001
  • C3 - Այս կապակտորը պահում է DC ազդանշանը որոշակի ժամանակ

Նկար 2 -ում դուք կարող եք տեսնել, որ այն հավաքվել է Veroboard- ի և թիթեղյա պղնձե մետաղալարի միջոցով: PCB- ի անջատման համար 4 անցք է բացվել, որպեսզի դրանք կարողանան կուտակվել (քանի որ կան ութ ալիք, ընդհանրապես պետք է լինի ութ ուժեղացուցիչ սխեմաներ:

Քայլ 3: Էներգամատակարարում

Էներգամատակարարում
Էներգամատակարարում
Էներգամատակարարում
Էներգամատակարարում
Էներգամատակարարում
Էներգամատակարարում

Եթե դուք չեք ցանկանում այն զրոյից պատրաստել, ապա կարող եք գնել Չինաստանից նախապես հավաքված տախտակը, ինչպես վերևում պատկերվածը, բայց ձեզ դեռ անհրաժեշտ կլինի 3VA տրանսֆորմատորը (240V- ից մինչև 12V իջեցում): Նկարում պատկերվածն ինձ արժեցավ մոտ 2.50 ֆունտ ստերլինգ

Նախագիծը սնուցելու համար ես որոշեցի պատրաստել իմ սեփական երկակի երկաթուղային 12VDC էլեկտրամատակարարումը: Սա հարմար էր, քանի որ op -amps- ը պահանջում է +12V, 0V, -12V, իսկ Arduino Uno- ն կարող է ընդունել մինչև 14 VDC մատակարարում: Ստորև բերված են հատվածը, որը կազմում է միացումը.

  • V1 - Սա ներկայացնում է 240V 50Hz հոսանքի ցանցից մատակարարումը
  • T1 - Սա փոքր 3VA տրանսֆորմատոր է, որի մասին ես ստում էի: Կարևոր է, որ տրանսֆորմատորն ունենա երկրորդական հատվածի կենտրոնական ծորակ, որը միացված կլինի 0V- ին, այսինքն `գետնին
  • D1- ից D4 - Սա լիարժեք ալիքային կամրջի ուղղիչ է `օգտագործելով 1N4007 դիոդներ
  • C1 & C2 - 35V էլեկտրոլիտային կոնդենսատորներ 2200uF (պետք է լինի 35 Վ, քանի որ դրական և բացասական միջև ներուժը կհասնի 30 Վ)
  • U2 - LM7812, 12 Վ դրական լարման կարգավորիչ է
  • U3 - LM7912, 12 Վ բացասական լարման կարգավորիչ է (զգույշ եղեք նկատել 78xx և 79xx IC- ի միջև եղունգների տարբերությունները):
  • C3 & C4 - 100nF Հարթեցնող կոնդենսատորներ 25V էլեկտրոլիտիկ
  • C5 & C6 - 10uF կերամիկական սկավառակի կոնդենսատորներ

Ես բաղադրիչները կպցրեցի գիպսաստվարաթղթի վրա և միացա ուղղահայաց ուղիներին մերկ միաձույլ պղնձե մետաղալարով: Վերոնշյալ 3 -րդ նկարը ցույց է տալիս իմ DIY էլեկտրամատակարարումը, կներեք, որ լուսանկարում շատ թռչկոտողներ կան:

Քայլ 4. Թվային փոխարկիչների անալոգային

Թվային փոխարկիչների անալոգ
Թվային փոխարկիչների անալոգ
Թվային փոխարկիչների անալոգ
Թվային փոխարկիչների անալոգ

Arduino Uno- ն արդեն ունի ներկառուցված 10-բիթանոց ADC, սակայն կան միայն 6 անալոգային մուտքագրումներ: Հետևաբար, ես նախընտրեցի օգտագործել երկու ADC ճեղքվածք ADS1115 16-բիթանոցով: Սա թույլ է տալիս 2^15 = 32767 բիթ ներկայացնել լարման մակարդակները 0-4.096V- ից (4.096V- ը ճեղքման աշխատանքային լարումն է), սա նշանակում է, որ յուրաքանչյուր բիթ ներկայացնում է 0.000125V! Բացի այդ, քանի որ այն օգտագործում է I2C ավտոբուսը, դա նշանակում է, որ կարող է հասցեագրվել մինչև 4 ADC- ի ՝ ցանկության դեպքում թույլ տալով վերահսկել մինչև 16 ալիք:

Ես փորձել եմ պատկերել կապերը Fritzing- ի միջոցով, սակայն սահմանափակումների պատճառով ազդանշանային գեներատորը պատկերելու համար հատուկ մասեր չկան: Մանուշակագույն մետաղալարը միացված է ուժեղացուցիչի սխեմայի ելքին, իսկ կողքի սև մետաղալարը ցույց է տալիս, որ ուժեղացուցիչի բոլոր սխեմաները պետք է ունենան ընդհանուր հիմք: Այսպիսով, ես օգտագործել եմ տախտակ `պատկերելու համար, թե ինչպես եմ ես կատարել փողկապի միավորները: Այնուամենայնիվ, իմ իրական նախագծում կան վերնագրեր, որոնք նստած են իգական վերնագրերով, զոդված են Veroboard- ին, և բոլոր փողկապները ամրացված են veroboard- ի վրա:

Քայլ 5: Միկրոհսկիչ

Միկրոկոնտրոլեր
Միկրոկոնտրոլեր

Ինչպես նշվեց վերևում, իմ ընտրած կարգավորիչը Arduino Uno- ն էր, սա լավ ընտրություն էր, քանի որ այն ունի շատ ինքնաթիռ և ներկառուցված ֆունկցիոնալություն, որը հակառակ դեպքում անհրաժեշտ կլիներ առանձին կառուցել: Բացի այդ, այն համատեղելի է հատուկ կառուցված «վահանների» հետ: Այս առիթով ես պահանջեցի իրական ժամանակի ժամացույց `բոլոր արդյունքները ժամանակագրելու համար, և SD քարտի գրող` արդյունքները գրանցելու համար.csv կամ.txt ֆայլում: Բարեբախտաբար, Arduino- ի տվյալների գրանցման վահանը երկուսն էլ վահանի մեջ է, որը տեղավորվում է Arduino- ի օրիգինալ տախտակի վրա ՝ առանց լրացուցիչ զոդման: Վահանը համատեղելի է RTClib և SD քարտերի գրադարանների հետ, ուստի կարիք չկա որևէ մասնագիտացված ծածկագրի:

Քայլ 6: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Ես օգտագործել եմ 5 մմ չափսի միջին/ցածր խտության PVC (երբեմն հայտնի է որպես փրփուր) `բաղադրամասերիս մեծ մասը փչացնելու և ձեռքի դանակով այն հարմար չափի կտրելու համար: Բոլոր բաղադրիչները կառուցվել են մոդուլային ձևով նախատիպի համար, քանի որ այն թույլ է տալիս առանձին մասերի հեռացում, եթե ամեն ինչ սխալ է, սակայն դա այնքան էլ արդյունավետ կամ կոկիկ չէ, որքան փորագրված PCB- ն (հետագա աշխատանք), սա նաև նշանակում է շատ թռիչքային լարերի միջև բաղադրիչները:

Քայլ 7: Վերբեռնման ծածկագիր

Վերբեռնեք կոդը Arduino- ում կամ ստացեք կոդը իմ Github ռեպոյից

github.com/smooth-jamie/datalogger.git

Քայլ 8: Կալիբրացում

Կալիբրացիա
Կալիբրացիա
Կալիբրացիա
Կալիբրացիա
Կալիբրացիա
Կալիբրացիա

Տեսականորեն չափված հոսանքը կլինի մի քանի բաների արդյունք.

Չափված ուժեղացուցիչ = (((a *0.45)/150)/(1.1/5000))/1000, որտեղ 'a' - ը ուժեղացուցիչից ազդանշանի լարումն է

0.45-ը ուժեղացուցիչի շղթայի Vout- ի rms արժեքն է, 150-ը op-amp- ի շահույթն է (Rf / Rin = 150k / 1k), 1.1-ը CT- ի ամբողջական մասշտաբի լարման ելքն է, երբ չափված ամպեր է 5A, 5000-ը պարզապես 5A է mA, իսկ 1000 -ը տրանսֆորմատորի շրջադարձերի քանակն է: Սա կարող է պարզեցվել ՝

Չափված ուժեղացուցիչ = (b * 9.216) / 5406555 որտեղ b- ը ADC հաշվետու արժեքն է

Այս բանաձևը փորձարկվել է Arduino 10-բիթանոց ADC- ի միջոցով և բազմաչափ արժեքների և գեներացված Arduino արժեքների միջև տարբերությունը նկատվել է 11% -ով, ինչը անընդունելի շեղում է: Կալիբրացիայի իմ նախընտրած մեթոդը աղյուսակի մեջ բազմաչափի վրա ADC- ի և հոսանքի արժեքի գրանցումն է և երրորդ կարգի բազմանդամի գծագրումը: Այստեղից խորանարդ բանաձևը կարող է օգտագործվել չափված հոսանքը հաշվարկելիս ավելի լավ արդյունքներ տալու համար.

(կաց^3) + (bx^2) + (cx^1) + դ

A, b, c, d գործակիցները հաշվարկվում են Excel- ում ՝ պարզ տվյալների աղյուսակից, x- ը ձեր ADC արժեքն է:

Տվյալները ստանալու համար ես օգտագործեցի կերամիկական 1k փոփոխական ռեզիստոր (ռեոստատ) և 12 վ տրանսֆորմատոր `240 Վ -ից հոսանքի հոսանքը իջեցնելու համար, ինչը թույլ կտա ինձ ստեղծել փոփոխական ընթացիկ աղբյուր 13 մԱ -ից մինչև 100 մԱ: Որքան շատ տվյալների միավորներ հավաքվեն, այնքան ավելի լավ, այնուամենայնիվ, ես կառաջարկեի հավաքել 10 տվյալների միավոր ճշգրիտ միտում ձեռք բերելու համար: Կցված Excel ձևանմուշը ձեզ համար կհաշվարկի գործակիցները, այնուհետև դրանք պարզապես պետք է մուտքագրվեն arduino կոդի մեջ

Կոդի 69 -րդ տողում կտեսնեք, թե որտեղ պետք է մուտքագրել գործակիցները

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

որը նույնն է, ինչ Excel- ի թերթ 1 -ի բանաձևը.

y = 7E-13x3-4E-08x2 + 0.004x + 0.663

Որտեղ x = adc0 ցանկացած ալիքի, որը դուք չափաբերում եք

Քայլ 9: Ավարտեք

Ավարտել
Ավարտել
Ավարտել
Ավարտել
Ավարտել
Ավարտել
Ավարտել
Ավարտել

Տեղադրեք այն նախագծի պատյանում: Ես ավարտեցի էներգիայի մատակարարումը միացման անջատիչով, որն ամբողջը միացնելու/անջատելու է մատակարարման ժամանակ, և IEC «գործիչ 8» միակցիչ `ցանցի մուտքի համար: Պտտեք այս ամենը միասին և պատրաստ եք փորձարկել այն:

Հետագա աշխատանք

Ամբողջ նախագիծը ծաղրվեց բավականին արագ, այնպես որ բարելավման շատ տեղ կա, փորագրված միացում, ավելի լավ բաղադրիչներ: Իդեալում, ամբողջը կարող էր փորագրվել կամ զոդվել FR4- ի վրա, այլ ոչ թե թռիչքների բեռների: Ինչպես ավելի վաղ ասացի, շատ բաներ կան, որոնք ես չեմ նշել, բայց եթե կա որևէ կոնկրետ բան, որը կցանկանայիք իմանալ, ինձ տեղյակ պահեք մեկնաբանություններում, և ես կթարմացնեմ instrucable- ը:

Թարմացվել է 2016-12-18

Ես հիմա ավելացրել եմ 16x2 LCD ՝ օգտագործելով I2C «մեջքի պայուսակը» ՝ առաջին չորս ալիքները վերահսկելու համար, ևս մեկին կավելացնեմ վերջին չորսին վերահսկելու համար, երբ այն հասնի փոստի միջոցով:

Վարկեր

Այս նախագիծը հնարավոր դարձավ գրադարանների բոլոր հեղինակների կողմից, որոնք օգտագործվում էին իմ Arduino էսքիզում, ներառյալ DS3231 գրադարանը, Adafruit ADS1015 գրադարանը և Arduino SD գրադարանը

Խորհուրդ ենք տալիս: