विषयसूची:

इनवर्टर के लिए Arduino Sinewave: 4 कदम
इनवर्टर के लिए Arduino Sinewave: 4 कदम

वीडियो: इनवर्टर के लिए Arduino Sinewave: 4 कदम

वीडियो: इनवर्टर के लिए Arduino Sinewave: 4 कदम
वीडियो: Sine Wave Inverter | Using Arduino | With Feedback 2024, जुलाई
Anonim
इनवर्टर के लिए Arduino Sinewave
इनवर्टर के लिए Arduino Sinewave

इस परियोजना में मैंने दो arduino pwm डिजिटल आउटपुट से एक SPWM (साइन वेव पल्स वाइड मॉड्यूलेटेड) सिग्नल उत्पन्न किया है।

क्योंकि इस तरह के एक कार्यक्रम को बनाने के लिए मुझे आर्डिनो के कई अन्य कार्यों और गुणों के बारे में बात करनी है, जिसमें आस्टसीलस्कप छवियों सहित पूरी परियोजना है और विभिन्न आवृत्तियों के लिए कृपया मेरी वेबसाइट पर जाएँ:

एप्रोजेक्ट्सज़ोन

चरण 1: 50Hz के लिए Pwm सिग्नल उत्पन्न करना

उच्च आवृत्ति पर 50 हर्ट्ज सिग्नल उत्पन्न करने के लिए कुछ गणना करना आवश्यक है। Arduino से फ़्रीक्वेंसी 8MHz पर हो सकती है, लेकिन हम परिवर्तनशील कर्तव्य चक्र के साथ एक संकेत चाहते हैं।

Arduino के चर कर्तव्य चक्रों के प्रकारों को समझने के लिए आप एक ही पोस्ट 1, 2 और 3 के इस 3 भागों को पढ़ सकते हैं।

आइए मान लें कि हमारी आवृत्ति 50 हर्ट्ज है जिसका मतलब है कि समय अवधि 20ms है। तो 10ms आधा चक्र अवधि है। उन 10ms में हमें छोटे कर्तव्य चक्रों से शुरू होने वाले विभिन्न कर्तव्य चक्रों के साथ कई दालों की आवश्यकता होती है, सिग्नल के बीच में हमारे पास अधिकतम कर्तव्य चक्र होते हैं और छोटे कर्तव्य चक्रों के साथ भी समाप्त होते हैं। साइन लहर उत्पन्न करने के लिए हम दो पिनों का उपयोग करेंगे। सकारात्मक आधा चक्र और एक नकारात्मक आधे चक्र के लिए। इसके लिए हम अपनी पोस्ट में पिन 5 और 6 का इस्तेमाल करते हैं यानि Timer 0.

एक सुचारू संकेत के लिए हम ३१३७२ हर्ट्ज की आवृत्ति पर चरण सही pwm चुनते हैं-पिछली पोस्ट देखें। सबसे बड़ी समस्या यह है कि हम प्रत्येक पल्स के लिए आवश्यक कर्तव्य चक्र की गणना कैसे करते हैं। इसलिए, क्योंकि हमारी आवृत्ति f=31372Hz है, प्रत्येक पल्स की अवधि T=1/31372=31.8 us है, इसलिए आधे चक्र के लिए दालों की संख्या N=10ms/31.8us=314 दालें हैं। अब प्रत्येक नाड़ी के लिए कर्तव्य चक्र की गणना करने के लिए हमारे पास y=sinx है, लेकिन इस समीकरण में हमें डिग्री की आवश्यकता होती है इसलिए 314 दालों के लिए आधे चक्र में 180 डिग्री है। प्रत्येक नाड़ी के लिए हमारे पास 180/314 = 0.57 डिग्री/नाड़ी है। यानी प्रत्येक पल्स के लिए हम 0.57 डिग्री के साथ आगे बढ़ते हैं।

y कर्तव्य चक्र है और x अर्ध कर्तव्य चक्र में स्थिति का मान है। पहले x में 0 है, उसके बाद x=0.57, x=1.14 और इसी तरह x= 180 तक।

यदि हम सभी ३१४ मानों की गणना करते हैं तो हमें एक सरणी ३१४ तत्व प्राप्त होते हैं (आर्डिनो द्वारा आसान गणना के लिए "int" टाइप करें)।

ऐसी सरणी है:

int sinPWM={1, 2, 5, 7, 10, 12, 15, 17, 19, 22, 24, 27, 30, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 61, 64, 66, 69, 71, 73, 76, 78, 80, 83, 85, 88, 90, 92, 94, 97, 99, 101, 103, 106, 108, 110, 113, 115, 117, 119, 121, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 169, 171, 173, 175, 177, 178, 180, 182, 184, 185, 187, 188, 190, 192, 193, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 209, 211, 212, 213, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, २३४, २३५, २३६, २३७, २३७, २३८, २३९, २४०, २४०, २४१, २४२, २४२, २४३, २४३, २४४, २४४, २४५, २४५, २४६, २४६, २४७, २४७, २४७, २४८, २४८, 248, 248, 249, 249, 249, 249, 249, 250, 250, 250, 250, 249, 249, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 246, 246, 245, 245, 244, 244, 243, 243, 242, 242, 241, 240, 240, 239, 238, 237, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, २२६, २२५, २२४, २२३, २२२, २२१, २२०, २१९, २१७, २१ 6, 215, 213, 212, 211, 209, 208, 207, 205, 204, 202, 201, 199, 198, 196, 195, 193, 192, 190, 188, 187, 185, 184, 182, 180, 178, 177, 175, 173, 171, 169, 168, 166, 164, 162, 160, 158, 156, 154, 152, 150, 148, 146, 144, 142, 140, 138, 136, 134, 132, 130, 128, 126, 124, 121, 119, 117, 115, 113, 110, 108, 106, 103, 101, 99, 97, 94, 92, 90, 88, 85, 83, 80, 78, 76, 73, 71, 69, 66, 64, 61, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37, 34, 32, 30, 27, 24, 22, 19, 17, 15, 12, 10, 7, 5, 2, 1};

आप देख सकते हैं कि साइन वेव की तरह कर्तव्य चक्र पहले और आखिरी तत्व में सबसे कम और बीच में सबसे ऊंचा होता है।

चरण 2: वेरिएबल ड्यूटी साइकिल के लिए Arduino प्रोग्राम

वेरिएबल ड्यूटी साइकिल के लिए Arduino प्रोग्राम
वेरिएबल ड्यूटी साइकिल के लिए Arduino प्रोग्राम

ऊपर की छवि में हमारे पास सरणी से मूल्यों के साथ चर कर्तव्य चक्र संकेत हैं।

लेकिन ऐसा संकेत कैसे दें ??

नीचे दिए गए कार्यक्रम का हिस्सा कर्तव्य चक्रों के मूल्यों को बदलने के लिए इंटरप्ट का उपयोग करता है

सेई (); // इंटरप्ट सक्षम करें

}

ISR(TIMER1_COMPA_vect){// व्यवधान जब टाइमर 1 OCR1A मान के साथ मेल खाता है

if(i>313 && OK==0){// पिन 6 के लिए वेक्टर से अंतिम मान

i=0;//वेक्टर (सरणी) के पहले मान पर जाएं

OK=1;//पिन सक्षम करें 5

}

x=sinPWM;// x स्थिति के अनुरूप वेक्टर से मान लें (i शून्य अनुक्रमित है) - कर्तव्य चक्र का मान

i=i+1;// अगली स्थिति पर जाएं

}

चरण 3: 50Hz Arduino Pins पर बारी-बारी से

50Hz Arduino Pins. पर बारी-बारी से
50Hz Arduino Pins. पर बारी-बारी से

चूंकि प्रत्येक पिन पूर्ण साइन लहर बनाने के लिए केवल आधा कर्तव्य चक्र उत्पन्न करता है, हम दो पिन का उपयोग करते हैं जो सटीक 10 एमसेकंड (50 हर्ट्ज के लिए) के बाद एक के बाद एक वैकल्पिक होते हैं। पिन का यह परिवर्तन सरणी के अंत में किया जाता है- मान लें कि पिन 5 ने 314 दालों को उत्पन्न किया है, यह पिन बंद है और पिन 6 सक्षम है जो समान काम करता है लेकिन नकारात्मक कर्तव्य चक्र के लिए।

क्योंकि arduino केवल सकारात्मक संकेत उत्पन्न कर सकता है h ब्रिज में नकारात्मक कर्तव्य चक्र बना है- आप इसके बारे में यहां पढ़ सकते हैं

पिन बदलने का कार्यक्रम:

सेई (); // इंटरप्ट सक्षम करें

}

ISR(TIMER1_COMPA_vect){// व्यवधान जब टाइमर 1 OCR1A मान के साथ मेल खाता है

if(i>313 && OK==0){// पिन 6 के लिए वेक्टर से अंतिम मान

i=0;// वेक्टर के पहले मान पर जाएं

OK=1;//पिन सक्षम करें 5

}

if(i>313 && OK==1){// पिन 5 के लिए वेक्टर से अंतिम मान

i=0;//वेक्टर के पहले मान पर जाएं

OK=0;//पिन सक्षम करें 6

}

x=sinPWM;// x स्थिति i के अनुरूप वेक्टर से मान लें (i शून्य अनुक्रमित है)

i=i+1;// अगली स्थिति पर जाएं

अगर (ठीक == 0) {

OCR0B=0;//पिन 5 0. बनाएं

OCR0A=x;//पिन 6 को संबंधित कर्तव्य चक्र में सक्षम करें

अगर (ठीक == 1) {

OCR0A=0;//पिन 6 0. बनाएं

OCR0B=x;//पिन 5 को संबंधित कर्तव्य चक्र में सक्षम करें

}

}

चरण 4: H ब्रिज चलाना और Pwm सिग्नल को फ़िल्टर करना

Arduino से प्राप्त सिग्नल इन्वर्टर एप्लिकेशंस के लिए नियंत्रण भाग हैं क्योंकि दोनों सकारात्मक हैं। एक पूर्ण साइन वेव और एक व्यावहारिक इन्वर्टर बनाने के लिए हमें एच ब्रिज का उपयोग करना होगा और पीडब्लूएम को कम पास फ़िल्टर साफ़ करना होगा।

एच-ब्रिज यहां प्रस्तुत किया गया है।

लो-पास फिल्टर का परीक्षण छोटे एसी मोटर्स के साथ किया गया-यहाँ।

सिफारिश की: