विषयसूची:

ट्रू-आरएमएस एसी वोल्टेज मापना: 14 कदम
ट्रू-आरएमएस एसी वोल्टेज मापना: 14 कदम

वीडियो: ट्रू-आरएमएस एसी वोल्टेज मापना: 14 कदम

वीडियो: ट्रू-आरएमएस एसी वोल्टेज मापना: 14 कदम
वीडियो: Multimeter se AC OR DC Voltage Kase Check Kare| How to check AC and DC voltage by Digital Multimeter 2024, नवंबर
Anonim
Image
Image
प्रदर्शन
प्रदर्शन

आज हम एसी रीडिंग करने के लिए STM32 मेपल मिनी का उपयोग करेंगे। हमारे उदाहरण में, हम पावर ग्रिड का RMS मान प्राप्त करेंगे। यह उन लोगों के लिए बहुत उपयोगी है जो इंटरनेट ऑफ थिंग्स के लिए विद्युत नेटवर्क की निगरानी करना चाहते हैं। फिर हम मेपल मिनी की कम्प्यूटेशनल शक्ति का उपयोग करके एक एप्लिकेशन बनाएंगे, 127Vac सिग्नल के अधिग्रहण की अनुमति देने में सक्षम इलेक्ट्रॉनिक सर्किट लागू करेंगे, साथ ही नमूनों पर रूट माध्य वर्ग (RMS) गणना लागू करेंगे।

चरण 1: प्रदर्शन

आज हमारे असेंबली में, हमारे पास 110 के इनपुट बनाने के लिए हमारे एनालॉग सर्किट के अलावा एसटीएम 32 है। झटके से बचने के लिए, 110 से प्रवेश करने वाले प्रतिरोधी को अलग करें।

सर्किट काफी संवेदनशील है। मैं 110 के साथ आ रहा हूं, लेकिन मैं इसे वोल्टेज विभक्त का उपयोग करके 168 गुना कम करता हूं और इसे परिचालन एम्पलीफायर में डालता हूं, जिसमें कई कार्य होते हैं।

स्रोत फ़िल्टरिंग के लिए हमारे पास कुछ वैकल्पिक कैपेसिटर भी हैं। यदि आपका स्रोत अच्छी गुणवत्ता का है, तो आपको उनका उपयोग करने की आवश्यकता नहीं है।

AD इनपुट की गणना आस्टसीलस्कप के माध्यम से की जाती है, जिसमें आप एक साइनसॉइड देखते हैं, जो 110 नहीं है (लेकिन यह अच्छी तरह से बना हुआ है)। एक और बात यह है कि हमारे विद्युत नेटवर्क में वोल्टेज 110 नहीं है (यह वास्तव में 127 वोल्ट है)। लेकिन जैसा कि हम एक स्टेबलाइजर के दौर से गुजर रहे हैं, यह 115V में समायोजित हो जाएगा।

सीरियल मॉनीटर पर प्रदर्शित मान वह है जिसकी गणना आरएमएस में की जाती है, जो कि फ्लूक मीटर द्वारा पहचाना जाता है।

चरण 2: प्रयुक्त संसाधन

प्रयुक्त संसाधन
प्रयुक्त संसाधन

• जम्पर

• एक मेपल मिनी

• प्रोटोबार्ड

• एक LM386 एम्पलीफायर

• एक सममित स्रोत (+ 5V और -5V)

• 10k मल्टी-टर्न ट्रिम्पोट (या पोटेंशियोमीटर)

• 100nF पॉलिएस्टर के चार कैपेसिटर

• तीन 10k प्रतिरोधक

• चार 470k प्रतिरोधक

• एक 5k6 रोकनेवाला

• एक 1n4728A जेनर डायोड

चरण 3: ब्लॉक आरेख

खंड आरेख
खंड आरेख

चरण 4: योजना

योजना
योजना

यह एक सर्किट है जिसे मैंने इस माप के लिए सबसे अच्छे चश्मे के आधार पर विकसित किया है, लेकिन कई अन्य उदाहरण हैं जो इंटरनेट पर पाए जा सकते हैं।

चरण 5: LM386 - पिनिंग

LM386 - पिनिंग
LM386 - पिनिंग

LM386 में कंडीशनिंग या सिग्नल प्रवर्धन के लिए दो एम्पलीफायर हैं।

चरण 6: AmpOp - डिफरेंशियल (सबट्रैक्टर)

AmpOp - डिफरेंशियल (सबट्रैक्टर)
AmpOp - डिफरेंशियल (सबट्रैक्टर)

चरण 7: एएमपीओपी - इन्वर्टर योजक

AmpOp - इन्वर्टर योजक
AmpOp - इन्वर्टर योजक

चरण 8: मेपल मिनी - पिनेज

मेपल मिनी - पिनेज
मेपल मिनी - पिनेज

पिन पर चिह्नित:

लाल >> 3V3 सहिष्णु

हरा >> 5V सहिष्णु

चरण 9: मेपल मिनी - पिनिंग - ए / डी कैप्चरिंग में प्रयुक्त

मेपल मिनी - पिनिंग - ए / डी कैप्चरिंग में प्रयुक्त
मेपल मिनी - पिनिंग - ए / डी कैप्चरिंग में प्रयुक्त

मैं यहां इस बात पर जोर देता हूं कि मैंने जिस पिन का उपयोग किया है वह D11 है (STMicroelectronics के नामकरण में) PA0 है।

चरण 10: विधानसभा

सभा
सभा

हमारे सर्किट के लिए, आपको एक सममित स्रोत की आवश्यकता होगी, जैसा कि हमने इस परियोजना के लिए बनाया है। अन्यथा, आपको दो स्रोतों की आवश्यकता होगी।

चरण 11: प्राप्त आंकड़ों के साथ ग्राफ

प्राप्त आंकड़ों के साथ ग्राफ
प्राप्त आंकड़ों के साथ ग्राफ

चरण 12: RMS मान की गणना

RMS मान की गणना
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 da Tensão de alimentação Vcc = 3.3V const float Vcc = 3.3; // वीरता तेओरिको डू ऑफसेट डू एम्प्लिफाडोर = वीसीसी / 2.0; स्थिरांक फ्लोट ऑफ़सेट = १.६६; //fator teórico da conversão do AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; कॉन्स्ट इंट एमोस्ट्रस = ७१४२९; // परिणाम एम 1, 027 सेगुंडोस पैरा कैडा एट्यूलिज़ाकाओ // कॉन्स्ट इंट एमोस्ट्रस = 35715; //resulta em 0, ५१४ सेगुंडोस पैरा काडा और साथ में

स्रोत कोड - वैश्विक चर

अब, हम कुछ वैश्विक चर परिभाषित करते हैं।

फ्लोट वीआरएमएस = ०.०; //आर्मजेना ओ वेलोर आरएमएस डा टेन्सोफ्लोट वीमैक्स = 0.0; //आर्मज़ेना या वेलोर मैक्सिमो डिटैडो फ्लोट Vmin = 10000.0; // आर्मजेना या वेलोर मिनिमो डिटेक्टाडो फ्लोट Vmed = 0.0; //आर्मज़ेना या वेलोर मेडियो एंट्रे Vmáx e Vmín

स्रोत कोड - सेटअप ()

सीरियल पोर्ट को 1Mbps पर शुरू करें। हमने AD पोर्ट को इनपुट के रूप में समायोजित किया और डेटा एकत्र करना शुरू करने से पहले 5 सेकंड प्रतीक्षा की। स्टैंडबाय टाइम वैकल्पिक है।

शून्य सेटअप () {Serial.begin(1000000); // एक पोर्टा सीरियल उन्हें 1Mbps पिनमोड (leituraTensao, INPUT); // ajusta a porta do AD como entrada देरी (5000); // अगुआर्डा ५एस एंटेस डे इनिसियर ए कोलेटा। (वैकल्पिक)}

स्रोत कोड - लूप () - डेटा संग्रह चर शुरू करता है

लूप में, हमारे पास पुनरावृत्ति के लिए चर है। यहां, हम AD की रीडिंग को 0.0 में भी स्टोर करते हैं और वेरिएबल VRMS को भी 0.0 में रीस्टार्ट करते हैं।

शून्य लूप () { int i = 0; // वरिएवल पैरा iteração फ्लोट लेटुरा = ०.०; // आर्मजेना लीटुरस के रूप में AD Vrms = 0.0; // reinicia a variável Vrms

स्रोत कोड - प्रत्येक नमूने के लिए अलग-अलग गणनाओं को कैप्चर और निष्पादित करता है

इस स्तर पर, यदि i नमूने से छोटा है, तो हम नमूने की संख्या तक पहुंचने तक एक नमूना चक्र शुरू करते हैं। हम एनालॉग पोर्ट को पढ़ने के लिए एनालॉग रीड चलाते हैं और रीड वोल्टेज के वर्गों के योग की गणना करते हैं। अंत में, हम इटरेटर को बढ़ाते हैं।

जबकि (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); // कैलकुला ए सोमा डॉस क्वाड्राडोस दास टेंस लिडास आई++; // वृद्धि या पुनरावर्तक }

स्रोत कोड - नमूनों की सामान्य गणना और अधिकतम, न्यूनतम और औसत की पहचान

हम वोल्टेज के वास्तविक मूल्य को निर्धारित करने के लिए गुणन तथ्य को लागू करते हैं। हम पता लगाते हैं कि मान अधिकतम है या न्यूनतम, और हम वर्तमान अधिकतम और न्यूनतम मानों के औसत की गणना करते हैं।

// एप्लिकैंडो फेटोर डे मल्टीप्लिकाकाओ पैरा डिटरमिनर ओ वेलोर रियल दस टेन्सोस व्रम्स = (वर्ग (वर्म्स / एमोस्ट्रास)) * फेटोर मल्टीप्लिकाकाओ; // अगर (Vrms > Vmax) {Vmax = Vrms; } // अगर (Vrms <Vmin) {Vmin = Vrms; } // कैलकुला ए मीडिया डॉस वेलोरेस मैक्सिमो ए मिनिमो एटुआस वीमेड = (वीमैक्स + वीमिन) / 2.0;

स्रोत कोड - आउटपुट विकल्प

आउटपुट वैल्यू को "प्लॉटिंग" करने के लिए हमारे पास तीन विकल्प हैं। हमारे पास CSV या जेसन जैसे Arduino IDE सीरियल प्लॉटर के लिए आउटपुट स्वरूपित है।

प्लॉटर सीरियल IDE Arduino Serial.print(Vrms, 3); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (वीमैक्स, 3); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (वीमिन, 3); सीरियल.प्रिंट ("", "); Serial.println(Vmed, 3); /* // सैदा फॉर्मेटाडा कॉमो जोंस सीरियल.प्रिंट ("{" इंस्टेंट (एमएस) ":"); सीरियल.प्रिंट (मिली ()); सीरियल.प्रिंट ("", "); Serial.print("\"Vrms(V)\":"); सीरियल.प्रिंट (वीआरएमएस, 3); सीरियल.प्रिंट ("", "); Serial.print("\"Vmax(V)\":"); सीरियल.प्रिंट (वीमैक्स, 3); सीरियल.प्रिंट ("", "); Serial.print("\"Vmin(V)\":"); सीरियल.प्रिंट (वीमिन, 3); सीरियल.प्रिंट ("", "); Serial.print("\"Vmed(V)\":"); सीरियल.प्रिंट (वीमेड, 3); सीरियल.प्रिंट्लन ("}"); */ /* // सैदा फॉर्मेटाडा कॉमो सीएसवी सीरियल.प्रिंट (मिलिस ()); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (वीआरएमएस, 3); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (वीमैक्स, 3); सीरियल.प्रिंट ("", "); सीरियल.प्रिंट (वीमिन, 3); सीरियल.प्रिंट ("", "); Serial.println(Vmed, 3); */}

चरण 14: फ़ाइलें

फ़ाइलें डाउनलोड करें:

पीडीएफ

मैं नहीं

सिफारिश की: