Բովանդակություն:
- Քայլ 1: rationուցադրություն
- Քայլ 2: Օգտագործված ռեսուրսներ
- Քայլ 3: Արգելափակել դիագրամը
- Քայլ 4: Սխեման
- Քայլ 5. LM386 - ամրացում
- Քայլ 6: AmpOp - դիֆերենցիալ (հանիչ)
- Քայլ 7: AmpOp - Inverter Adder
- Քայլ 8: Maple Mini - Pinage
- Քայլ 9. Maple Mini - ամրացում - a / D Օգտագործվում է նկարահանման ժամանակ
- Քայլ 10: Հավաքում
- Քայլ 11: Գրաֆիկը `ստացված տվյալների հետ
- Քայլ 12: RMS- ի արժեքի հաշվարկ
- Քայլ 13: Աղբյուրի ծածկագիր
- Քայլ 14: Ֆայլեր
Video: True-RMS AC լարման չափում `14 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այսօր մենք կօգտագործենք STM32 Maple Mini ՝ AC ընթերցում կատարելու համար: Մեր օրինակում մենք կստանանք էլեկտրական ցանցի RMS արժեքը: Սա շատ օգտակար է նրանց համար, ովքեր ցանկանում են վերահսկել իրերի ինտերնետի էլեկտրական ցանցը: Այնուհետև մենք կստեղծենք ծրագիր ՝ օգտագործելով Maple Mini- ի հաշվարկային հզորությունը, կկիրառենք էլեկտրոնային միացում, որը կարող է թույլ տալ ձեռք բերել 127Vac ազդանշան, ինչպես նաև կիրառել արմատների միջին քառակուսի (RMS) հաշվարկ նմուշների վրա:
Քայլ 1: rationուցադրություն
Այսօրվա մեր հավաքում մենք ունենք STM32, ի լրումն մեր անալոգային սխեմայի, որը մուտքագրում է 110 -ը: shնցումներից խուսափելու համար մեկուսացրեք դիմադրությունը, որը մտնում է 110 -ով:
Շղթան բավականին զգայուն է: Ես մտնում եմ 110 -ի հետ, բայց այն նվազեցնում եմ 168 անգամ ՝ օգտագործելով լարման բաժանարարը և դնում այն գործառնական ուժեղացուցիչի մեջ, որն ունի մի քանի գործառույթ:
Մենք ունենք նաև որոշ կոնդենսատորներ աղբյուրի զտման համար: Եթե ձեր աղբյուրը լավ որակի է, ապա դրանք օգտագործելու կարիք չկա:
AD- ի մուտքը հաշվարկվում է oscilloscope- ի միջոցով, որի մեջ տեսնում եք sinusoid, որը 110 չէ (բայց լավ է ձևավորված): Մեկ այլ բան այն է, որ մեր էլեկտրական ցանցի լարումը 110 չէ (դա իրականում 127 վոլտ է): Բայց քանի որ մենք անցնում ենք կայունացուցիչի, այն կհարմարվի 115 Վ -ի վրա:
Սերիական մոնիտորի վրա ցուցադրվող արժեքը այն է, ինչ հաշվարկվում է RMS- ով, այսինքն `Fluke Meter- ով որոշվածը:
Քայլ 2: Օգտագործված ռեսուրսներ
• Թռչկոտողներ
• A Maple Mini
• Protoboard
• LM386 ուժեղացուցիչ
• Սիմետրիկ աղբյուր (+ 5V և -5V)
• 10k բազմակողմանի տրիպոտ (կամ պոտենցիոմետր)
• 100nF պոլիեսթեր չորս կոնդենսատոր
• Երեք 10k դիմադրիչ
• 470k չորս դիմադրիչ
• Մեկ 5k6 դիմադրություն
• Մեկ 1n4728A զեներային դիոդ
Քայլ 3: Արգելափակել դիագրամը
Քայլ 4: Սխեման
Սա միացում է, որը ես մշակել եմ այն բնութագրերի հիման վրա, որոնք, իմ կարծիքով, ամենալավն են այս չափման համար, բայց կան մի քանի այլ օրինակներ, որոնք կարելի է գտնել ինտերնետում:
Քայլ 5. LM386 - ամրացում
LM386- ն ունի երկու ուժեղացուցիչ `օդորակման կամ ազդանշանի ուժեղացման համար:
Քայլ 6: AmpOp - դիֆերենցիալ (հանիչ)
Քայլ 7: AmpOp - Inverter Adder
Քայլ 8: Maple Mini - Pinage
Կապերը նշված են ՝
Կարմիր >> 3V3 հանդուրժող
Կանաչ >> 5V հանդուրժող
Քայլ 9. Maple Mini - ամրացում - a / D Օգտագործվում է նկարահանման ժամանակ
Այստեղ ես շեշտում եմ, որ իմ օգտագործած քորոցը D11- ն է, որը (STMicroelectronics- ի անվանացանկում) PA0 է:
Քայլ 10: Հավաքում
Մեր շրջանի համար ձեզ հարկավոր կլինի սիմետրիկ աղբյուր, ինչպիսին մենք ստեղծել ենք այս նախագծի համար: Հակառակ դեպքում, ձեզ հարկավոր կլինի երկու աղբյուր:
Քայլ 11: Գրաֆիկը `ստացված տվյալների հետ
Քայլ 12: RMS- ի արժեքի հաշվարկ
Քայլ 13: Աղբյուրի ծածկագիր
Աղբյուրի կոդը - Սահմանումներ և հաստատուններ
Սկզբում մենք սահմանեցինք քորոցների ընթերցումը որպես D11, ինչպես նաև հաշվարկներում օգտագործվող տարբեր հաստատուններ:
#define leituraTensao D11 // AD CH0 no pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461; // valor teórico do ganho de amplificação = 1.0 const float fatorAmplificador = 1.0; // Valor usado na multiplicação da leitura const float fatorMultiplicacao = fatorDivisor * fatorAmplificador; // Valor teórico da Tensão de alimentação Vcc = 3.3V const float Vcc = 3.3; // valor teórico do offset do amplificador = Vcc /2.0; const float offSet = 1.66; // fator teórico da conversão do AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // resulta em 1, 027 segundos para cada atualização // const int amostras = 35715; // resulta em 0, 514 segundos para cada atualização
Աղբյուրի կոդ - Գլոբալ փոփոխականներ
Այժմ մենք սահմանում ենք որոշ գլոբալ փոփոխականներ:
բոց Vrms = 0.0; // armazena o valor rms da tensãofloat Vmax = 0.0; // armazena o valor máximo deteado float Vmin = 10000.0; // armazena o valor mínimo deteado float Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín
Աղբյուրի կոդ - Կարգավորում ()
Սկսեք սերիական նավահանգիստը 1 Մբիթ / վ արագությամբ: Մենք ճշգրտեցինք AD պորտը որպես մուտք և սպասեցինք 5 վայրկյան ՝ նախքան տվյալների հավաքումը սկսելը: Սպասման ժամանակը պարտադիր չէ:
void setup () {Serial.begin (1000000); // inicia a porta serial em 1Mbps pinMode (leituraTensao, INPUT); // ajusta a porta do AD como entrada հետաձգում (5000); // aguarda 5s antes de iniciar a coleta. (ըստ ցանկության)}
Աղբյուրի կոդ - Loop () - Սկսում է տվյալների հավաքման փոփոխականները
Loop- ում մենք ունենք փոփոխման կրկնություն: Այստեղ մենք նաև պահում ենք AD- ի ընթերցումները 0.0 -ում և վերագործարկում ենք փոփոխական VRMS- ը նույնպես 0.0 -ում:
void loop () {int i = 0; // variável para iteração float leitura = 0.0; // armazena as leituras do AD Vrms = 0.0; // reinicia a variável Vrms
Աղբյուրի ծածկագիր - Գրառում և կատարում է յուրաքանչյուր նմուշի անհատական հաշվարկները
Այս փուլում, եթե i- ն ավելի փոքր է, քան նմուշը, մենք սկսում ենք նմուշառման ցիկլը, մինչև որ հասնեմ նմուշների թվին: Մենք գործարկում ենք analogRead ՝ կարդալու անալոգային նավահանգիստը և հաշվարկելու ընթերցված լարման քառակուսիների գումարը: Ի վերջո, մենք ավելացնում ենք կրկնողը:
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // lê a porta analógica //Serial.println(leitura); // Descomente se quiser ver o sinal bruto do AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // calcula a soma dos quadrados das tensões lidas i ++; // ավելացում o իտերադոր}
Աղբյուրի կոդ - Նմուշների ընդհանուր հաշվարկներ և առավելագույնի, նվազագույնի և միջինի նույնականացում
Մենք կիրառում ենք բազմապատկման փաստը `որոշելու լարման իրական արժեքը: Մենք որոշում ենք, թե արդյոք արժեքը առավելագույնն է, թե նվազագույնը, և մենք հաշվարկում ենք ընթացիկ առավելագույն և նվազագույն արժեքների միջինը:
// Aplicando fator de multiplicação para determinar o valor real das tensões Vrms = (sqrt (Vrms /amostras)) * fatorMultiplicacao; // detea se é um um valor é máximo if (Vrms> Vmax) {Vmax = Vrms; } // detea se é um um valor mínimo if (Vrms <Vmin) {Vmin = Vrms; } // calcula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0;
Աղբյուրի կոդ - ելքային ընտրանքներ
Մենք ունենք ելքի արժեքը «գծագրելու» երեք տարբերակ: Մենք ունենք ելք ՝ ձևաչափված Arduino IDE սերիական գծագրիչի համար, ինչպես CSV- ն կամ Jason- ը:
// saída formatada para plotter serial IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); /* // saída formatada como json Serial.print ("{" instante (ms) ":"); Serial.print (millis ()); Serial.print (","); Serial.print ("\" Vrms (V) ":"); Serial.print (Vrms, 3); Serial.print (","); Serial.print ("\" Vmax (V) ":"); Serial.print (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Serial.print (Vmin, 3); Serial.print (","); Serial.print ("\" Vmed (V) ":"); Serial.print (Vmed, 3); Serial.println ("}"); * / /* // ձևաչափի ձևավորում CSV Serial.print (millis ()); Serial.print (","); Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); */}
Քայլ 14: Ֆայլեր
Ներբեռնեք ֆայլերը.
ԻՆՈ
Խորհուրդ ենք տալիս:
Լարման մոնիտոր բարձր լարման մարտկոցների համար `3 քայլ (նկարներով)
Լարման մոնիտոր բարձր լարման մարտկոցների համար. Այս ուղեցույցում ես ձեզ կբացատրեմ, թե ինչպես եմ կառուցել մարտկոցի լարման մոնիտորը իմ էլեկտրական երկարատախտակի համար: Տեղադրեք այն ինչպես ցանկանում եք և միացրեք ընդամենը երկու լար ձեր մարտկոցին (Gnd և Vcc): Այս ուղեցույցը ենթադրում էր, որ ձեր մարտկոցի լարումը գերազանցում է 30 վոլտ, w
DC - DC լարման հետընթաց անջատիչ ռեժիմ Buck լարման փոխարկիչ (LM2576/LM2596). 4 քայլ
DC-DC Voltage Step Down Switch Mode Buck Voltage Converter (LM2576/LM2596). Բարձր արդյունավետ փոխարկիչ պատրաստելը դժվար աշխատանք է, և նույնիսկ փորձառու ինժեներները պահանջում են բազմաթիվ նմուշներ ՝ ճիշտը գալու համար: Արժեքի փոխարկիչ (հետընթաց փոխարկիչ) DC-DC հոսանքի փոխարկիչ է, որը նվազեցնում է լարումը (միաժամանակ բարձրացնելով
DC լարման չափում Arduino- ի միջոցով. 5 քայլ
DC լարման չափում Arduino- ի միջոցով. Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես չափել DC լարումը մինչև 50 վ ՝ օգտագործելով arduino- ն և OLED ցուցադրման մոդուլի մասի ցուցադրման համար անհրաժեշտ է arduino ԱՌԱՆԱԴՐՎԱ display էկրան 10k ohm resistor1k ohm resistor jumper մալուխ
Կարգավորելի լարման DC սնուցման աղբյուր `օգտագործելով LM317 լարման կարգավորիչը` 10 քայլ
Կարգավորելի լարման DC սնուցման աղբյուր LM317 լարման կարգավորիչի միջոցով. Այս նախագծում ես նախագծել եմ պարզ կարգավորելի լարման DC սնուցման աղբյուր `օգտագործելով LM317 IC- ն` LM317 էլեկտրամատակարարման սխեմաներով: Քանի որ այս սխեման ունի ներկառուցված կամրջի ուղղիչ, այնպես որ մենք կարող ենք ուղղակիորեն միացնել մուտքի 220V/110V AC հոսանքին:
Լարման չափում Arduino- ի միջոցով. 5 քայլ
Լարման չափում Arduino- ի միջոցով. Լարման չափումը բավականին հեշտ է ցանկացած միկրոկառավարիչի միջոցով `հոսանքի չափման համեմատ: Լարման չափումը դառնում է անհրաժեշտ, եթե դուք աշխատում եք մարտկոցներով կամ ցանկանում եք ձեր սեփական կարգավորելի էներգիայի մատակարարումը կատարել: Չնայած այս մեթոդը կիրառելի է