संकेत के साथ माइक्रोकंट्रोलर पर लो-वोल्टेज पीडब्लूएम नियंत्रक। ATtiny2313 माइक्रोकंट्रोलर पर पावर रेगुलेटर - पावर रेगुलेटर - बिजली की आपूर्ति

मुस्का के सभी पाठकों को स्वास्थ्य!
इस अद्भुत साइट के लिए धन्यवाद, मुझे बहुत सारी उपयोगी चीजें और ज्ञान मिला और जवाब में मैंने नव विकसित डिवाइस पर पहली रिपोर्ट लिखने का फैसला किया। डिवाइस के विकास के दौरान, मुझे कई समस्याओं का सामना करना पड़ा और उन्हें सफलतापूर्वक हल किया गया। शायद, कुछ नवागंतुक सहकर्मियों के लिए, कुछ समाधानों का वर्णन रचनात्मकता में मदद करेगा।
मुद्रित सर्किट बोर्डों के निर्माण के लिए, उन्होंने एक माइक्रो-ड्रिल और इसके लिए एक स्टैंड खरीदा, जो ड्रिल को माइक्रो-ड्रिलिंग मशीन में बदल देता है। स्क्रूड्राइवर और चीनी डरमेल में उपयोग किए जाने पर टूटे हुए 0.5-1 मिमी ड्रिल के एक समूह के बाद इसकी आवश्यकता उत्पन्न हुई। लेकिन, जैसा कि यह निकला, गति नियंत्रक के बिना ऐसे उपकरण का उपयोग करना असंभव है। नियामक ने इसे अपने दम पर करने का निर्णय लिया और इस दौरान नया ज्ञान प्राप्त किया।

मुझे शौकिया रेडियो का बहुत कम अनुभव है। एक बच्चे के रूप में, बोरिसोव की किताब के आधार पर, उन्होंने मल्टीवाइब्रेटर पर कई रिसीवर और ब्लिंकर इकट्ठे किए। फिर अन्य शौक और गतिविधियाँ आईं।
और फिर, अवसर पर, मैंने Arduino, मौसम स्टेशनों, रोबोटों के प्रसिद्ध रूप से गढ़े गए मॉडल को देखा, और मैं माइक्रोकंट्रोलर की मदद से उन सभी चीजों को स्वचालित करना चाहता था जिन तक मैं पहुंच सकता था। नियंत्रकों का आकार आकार और एम्बेडिंग में आसानी के घटते क्रम में चला गया - Arduino UNO, Arduino Pro Mini, फिर मुट्ठी भर ATMega328P, और सबसे छोटे और सरल उपकरणों के लिए, मैंने ATtiny85 खरीदा।
टिंकी ने एक साल से अधिक समय पहले खरीदा था और वे लेटे हुए थे और अपनी बारी का इंतजार कर रहे थे।

आदेश स्क्रीनशॉट


(ऑर्डर में हीट सिकुड़न भी थी, क्योंकि कुल कीमत अधिक है)


एमके हमेशा की तरह एक छोटे से बबल रैप के साथ एक पैकेज में पहुंचे, खुद को एक अलग प्लास्टिक बैग में एक गुच्छा में रखा। बेशक, यह बेहतर होगा, एक हार्ड बॉक्स में या फोम में, लेकिन फिर भी कुछ भी नहीं झुका और सभी श्रमिकों।

सबसे पहले, मैंने ब्रेडबोर्ड पर योजनाबद्ध तरीके से टांका लगाया, लेकिन एलयूटी के बारे में पढ़ने के बाद, मुझे एहसास हुआ कि सामान्य मुद्रित सर्किट बोर्ड पर सब कुछ इकट्ठा करना काफी यथार्थवादी और अधिक सुविधाजनक था।
मैंने भी धीरे-धीरे एक उपयोगी उपकरण इकट्ठा करना शुरू कर दिया, जिसमें कोलेट चक के साथ एक एमडी-3 माइक्रोड्रिल और छोटे छेद करने के लिए एक मशीन थी। निःसंदेह, केवल एक कोलेट खरीदना और कहीं से इंजन चुनना संभव होगा, लेकिन मैंने इसे स्थानीय स्टोर पर तैयार रूप में खरीदने का फैसला किया।

हम इंकजेट प्रिंटिंग के लिए लोमोंड ग्लॉसी फोटो पेपर पर एक ड्राइंग लेजर प्रिंटर पर प्रिंट करते हैं। लेकिन एक बिल्कुल नए प्रिंटर में वह कागज डालना बेवकूफी थी जो इसके लिए बिल्कुल भी नहीं बनाया गया था। नेट पर चेतावनी मिली कि इंकजेट पेपर की चमकदार सतह पिघल सकती है, ओवन से चिपक सकती है और प्रिंटर को बर्बाद कर सकती है। यह सुनिश्चित करने के लिए, मैंने एक प्रयोग किया - मैंने इस कागज की सतह पर 200C तक गर्म किए गए टांका लगाने वाले लोहे को घुमाया (मुझे स्टोव का सटीक तापमान नहीं मिला, लेकिन इसके बारे में), कागज थोड़ा टेढ़ा हो गया, लेकिन कुछ भी नहीं पिघला और चिपकता नहीं - इसलिए यह प्रिंटर में संभव है।

मैंने बोर्ड पर ड्राइंग को इस्त्री किया, कागज धोया। बोर्ड पर कंडक्टरों का एक बहुत ही उच्च गुणवत्ता वाला पैटर्न और कागज की चिपकी हुई चमकदार परत बनी हुई थी। प्रौद्योगिकी के लेखक ने इसे बहुत चिपचिपे विद्युत टेप से हटाने की सिफारिश की, लेकिन मैंने कितनी भी कोशिश की, या तो चमक बिल्कुल नहीं हटाई गई, या कंडक्टर इसके साथ निकल गए। शिलालेख भी तुरंत विद्युत टेप में बदल गए। पीड़ित होने के बाद, उसने एक सूआ उठाया और, कंडक्टरों के बीच खरोंच कर, लगभग सभी चमक को फाड़ दिया। यह एक नाजुक और थकाऊ चीज़ है, आपको कुछ आविष्कार करना होगा। फिर, दूसरे और तीसरे बोर्ड बनाते समय, मैं शापित चमक से छुटकारा पाने का रास्ता तलाश रहा था, लेकिन न तो किसी पत्रिका के पृष्ठ पर और न ही स्वयं-चिपकने वाले आधार पर छपाई करने से इतनी गुणवत्ता वाली तस्वीर नहीं मिलती थी, पटरियाँ धुंधली हो जाती थीं या बंद हो गया। लेकिन दूसरी ओर, मुझे एहसास हुआ कि फोटोग्राफिक पेपर की चमक को शून्य तक साफ करना जरूरी नहीं था - तांबे तक पहुंचने के समाधान के लिए पटरियों के बीच कम से कम थोड़ा खरोंच करना पर्याप्त था, और कुछ स्थानों पर यह था खरोंच के बिना, चमक के माध्यम से उकेरा गया।

मैंने सबसे सुलभ संरचना के रूप में हाइड्रोजन पेरोक्साइड और साइट्रिक एसिड के घोल के साथ तांबे का अचार बनाने का फैसला किया। गणनाओं के साथ रसायन विज्ञान को उकेरने के संभावित विकल्प यहां देखे जा सकते हैं

मैंने प्राथमिक चिकित्सा किट से पेरोक्साइड लिया, इसे लगभग 3 साल पहले खरीदा गया था, समाप्ति तिथि लगभग 2 साल पहले सामने आई थी, मुझे लगा कि यह पहले ही समाप्त हो चुका है और बिल्कुल भी काम नहीं करेगा। हालाँकि, मुझसे गलती हुई, बोर्ड को बहुत ख़ुशी से अचार बनाया गया - लगभग तीन मिनट में। यहाँ परिणाम है:

एक ट्रैक पर सूए से खरोंच आ गई थी, उसे कटे-फटे प्रतिरोधक टर्मिनल से बहाल किया गया। साथ ही बिजली के टेप का उपयोग करने की कोशिश से छोटे-मोटे छेद भी हो गए। एक उपयुक्त मार्कर प्राप्त करना आवश्यक है, लेकिन अभी के लिए, जहां मैं कर सकता था, मैंने इसे वार्निश के साथ चिकना कर दिया।

मैंने एक ब्रैड का उपयोग करके बोर्ड को सोल्डरिंग आयरन से टिन किया। विवरण मिलाप।




माउंटिंग छेद के माध्यम से बोर्ड के दोनों किनारों पर एक-दूसरे में पेंच किए गए उच्च पीतल के रैक एक उपयोगी चीज हैं, आप किसी चीज़ को कुचलने या छोटा करने के डर के बिना स्थापना और डिबगिंग के दौरान बोर्ड को मेज पर बिना किसी केस के रख सकते हैं।

सबसे अधिक समय लेने वाली बात यह थी कि कंडक्टरों की तरफ से आउटपुट एलईडी को क्रॉल और सोल्डर किया जाता था। मैंने सोल्डरिंग साइड को फ्रंट साइड के रूप में उपयोग करने का निर्णय लिया, क्योंकि। इस पर, भागों की ऊंचाई बहुत कम है, और बोर्ड के माध्यम से परिवर्तनीय अवरोधक शाफ्ट को पारित करने से इसकी लंबाई वांछित तक कम हो जाती है।

रीसेट से जुड़े आरेख में कैपेसिटर C2 को सोल्डर नहीं किया गया, क्योंकि। हालाँकि यह डिवाइस को शुरू करने की विश्वसनीयता को बढ़ाता है, एमके को फ्लैश करते समय यह खराब हो सकता है।

बोर्ड को पीएसयू से जोड़ने और यह सुनिश्चित करने के बाद कि तुरंत कुछ भी नहीं जलेगा और स्टेबलाइजर नियमित 5V देगा, माइक्रोकंट्रोलर को आखिरी बार सोल्डर किया गया था। कुछ भी धूम्रपान नहीं हुआ और इसलिए हम प्रोग्रामर को आईसीएसपी पिन से जोड़ते हैं और परीक्षण फर्मवेयर भरते हैं।

हम कई लोगों से परिचित Arduino प्रोग्रामिंग वातावरण में डिवाइस के लिए फर्मवेयर लिखेंगे, इसमें ATtiny माइक्रोकंट्रोलर के लिए समर्थन जोड़ने, डाउनलोड करने और उन्हें Arduino / हार्डवेयर फ़ोल्डर में अनपैक करने के बाद।

परीक्षण स्केच (मुझे बात समझ में नहीं आती) बस इनपुट सिग्नलों की स्थिति को पढ़ता है और उन्हें जुड़े हुए एलईडी के साथ उपलब्ध आउटपुट पर प्रदर्शित करता है। क्योंकि हमारे पास 4 इनपुट चैनल हैं, और केवल 2 आउटपुट चैनल हैं, हमें कई चरणों में जांच करनी पड़ी।

सब कुछ उम्मीद के मुताबिक काम कर रहा था, एक चीज़ को छोड़कर - हरे एलईडी के साथ एक चैनल से जुड़ा बटन पढ़ने योग्य नहीं था, और एलईडी लाल रंग की तुलना में काफ़ी चमकीला था। परीक्षक द्वारा माप से पता चला कि PB0 स्थिति में, 20mA से अधिक एलईडी के माध्यम से आउटपुट के रूप में प्रवाहित होता है और केवल 2.1V उस पर गिरता है। और इनपुट स्थिति में पैर पर आंतरिक पुल-अप के साथ, बटन जारी होने पर केवल 1.74V और दबाए जाने पर 0.6V। यह आश्चर्य की बात नहीं है कि 0 लगातार पढ़ा जाता है। लो-वोल्टेज हरी एलईडी, माइक्रोएम्पियर करंट प्रवाहित होने पर भी चमके बिना, पैर पर वोल्टेज बर्बाद कर देती है। अब यह स्पष्ट है कि मूल लेख में 2 एलईडी श्रृंखला में क्यों जुड़े थे।

लेकिन बॉक्स के अंदर गिट्टी के रूप में चमकने के लिए दूसरी एलईडी लगाना (और फ्रंट पैनल पर 2 समान एलईडी की भी आवश्यकता नहीं है) कुछ हद तक टेढ़ा समाधान लग रहा था। मैंने सोचा कि आप एलईडी सर्किट में वोल्टेज को और कैसे बढ़ा सकते हैं और जेनर डायोड के सीवीसी को याद किया। यदि हम इसके विपरीत एलईडी के साथ श्रृंखला में 2V जेनर डायोड (सीवीसी की रिवर्स शाखा पर, ठीक से काम करने के लिए) जोड़ते हैं, तो हमें वही मिलता है जो हमें चाहिए। जब एलईडी 10mA के करंट पर चालू होती है, तो जेनर डायोड टूट जाता है और करंट के प्रवाह में हस्तक्षेप नहीं करता है, बल्कि केवल एक निश्चित स्तर पर उस पर पड़ने वाले वोल्टेज को स्थिर करता है। केवल वर्तमान-सीमित अवरोधक को बदलना आवश्यक है, इस आधार पर कि वोल्टेज Ures=5V-2.1V-2.0V=0.9V को 10mA से दबाना पहले से ही आवश्यक है, अर्थात। आर=90 ओम. और जब पैर को पुल-अप के साथ इनपुट पर स्विच किया जाता है - संक्रमण के टूटने तक सीवीसी शाखा की स्थिरता के कारण, जेनर डायोड एक उच्च-प्रतिरोध अवरोधक के बराबर होता है और यह फिर से लगभग 2V गिर जाएगा, जिससे वृद्धि होगी जब बटन को 4V पर छोड़ा जाता है तो एमके लेग पर वोल्टेज, जिसे पहले से ही TRUE के रूप में पढ़ा जाता है। जब बटन दबाया जाता है, तो पैर लगभग 40KΩ (मेरी गणना के अनुसार) के प्रतिरोध के साथ एक आंतरिक अवरोधक द्वारा 5V तक खींच लिया जाएगा, और 5KΩ अवरोधक द्वारा जमीन पर खींच लिया जाएगा (जो एलईडी सर्किट को शंट कर देगा), यानी। इसमें समान 0.6V होगा और इसे FALSE माना जाएगा।
मैंने जेनर डायोड को अवरोधक के साथ श्रृंखला में एक कैनोपी के साथ मिलाया और बटन ने उसी तरह काम किया जैसा उसे करना चाहिए था।

अब पीडब्लूएम के संचालन की जांच करने की बारी है और यहां भी समस्याएं सामने आईं। मानक Arduino कमांड AnalogWrite (लेग, पैडिंग) काम नहीं करना चाहता था। तो तिनका लाइब्रेरी में कुछ गड़बड़ है। एमके और इंटरनेट पर उपयोगी ऊन डेटाशीट।

यह दिलचस्प निकला:
- 2 पीडब्लूएम चैनल (ओसी0ए, ओसी0बी) पिन 5, 6 (पीबी0, पीबी1) पर आउटपुट हो सकते हैं, प्रत्येक टाइमर 0 से अपनी स्वयं की भरण सेटिंग (लेकिन समान आवृत्ति) के साथ काम कर रहा है;
- टाइमर 1 से संचालित होने वाला तीसरा PWM चैनल पिन 2, 3 (PB3, PB4) पर आउटपुट हो सकता है, और एक सीधा PWM सिग्नल (OC1B) लेग 3 पर आउटपुट हो सकता है, और इसका उलटा संस्करण (/OC1B) आउटपुट हो सकता है पैर 2. लेकिन आउटपुट या तो केवल तीसरे चरण तक जाता है, या दोनों एक साथ। और हमें दूसरे चरण पर पीडब्लूएम की आवश्यकता है, कम से कम उलटा (हम इसे प्रोग्रामेटिक रूप से उल्टा करते हैं), इसलिए हमें 2 और 3 पैरों के लिए आउटपुट को कॉन्फ़िगर करना होगा, और सिग्नल 3 पर नहीं जाएगा क्योंकि इसे इनपुट घोषित किया गया है।

इसलिए, जहां तक ​​मैं समझता हूं, Arduino के लिए ATtiny सपोर्ट पैकेज में, टाइमर 1 से PWM चैनल केवल लेग 3 पर आउटपुट हो सकता है। जाहिर है, इसके व्युत्क्रम संस्करण के आउटपुट को ओवरकिल माना जाता था। आपको AnalogWrite का उपयोग करने के बजाय, टाइमर और PWM को स्वयं कॉन्फ़िगर करना होगा (कोड, PWM3_init फ़ंक्शन देखें)।

मैंने यह भी देखा कि टाइमर 1 को पुन: कॉन्फ़िगर करते समय, मिलिस () फ़ंक्शन का काम खो जाता है - यह पता चलता है कि टाइमर 1 का उपयोग डिफ़ॉल्ट रूप से आंतरिक घड़ी के लिए किया जाता है। लेकिन आप फ़ाइल में मैक्रो परिभाषाओं का उपयोग करके समय को टाइमर 0 पर पुन: कॉन्फ़िगर कर सकते हैं Arduino\हार्डवेयर\tiny\cores\tiny\core_build_options. h
/* विभिन्न कारणों से, टाइमर 1 "85 प्रोसेसर पर मिलिस टाइमर के लिए एक बेहतर विकल्प है। */ #define TIMER_TO_USE_FOR_MILLIS 0
जिसका हम उपयोग करेंगे, क्योंकि इस प्रोजेक्ट में टाइमर 0 पूरी तरह से मुफ़्त है।

वेरिएबल रेसिस्टर से पढ़ी जाने वाली स्पीड सेटिंग रेंज के बारे में भी एक सवाल था। मूल सर्किट के लेखक ने 10K वैरिएबल के साथ श्रृंखला में एक 36K स्थिर अवरोधक जोड़ा, जाहिर तौर पर इस आधार पर कि ADC कोड 0-255 की सीमा में फिट होगा। यह वास्तव में 0-230 निकला, और अधिकतम तैर गया। और मैं चाहूंगा कि 8-बिट पीडब्लूएम के साथ पूर्ण पैमाने की सेटिंग से बिल्कुल 0-255 मेल खाए। ऐसा करने के लिए, मैंने स्थिरांक को अनसोल्ड किया और इसे + 5V जम्पर से बदल दिया, एडीसी ने पूरी रेंज को पढ़ना शुरू कर दिया, और हमने 4 सबसे कम महत्वपूर्ण बिट्स को प्रोग्रामेटिक रूप से हटा दिया। और अतिरिक्त विवरण की आवश्यकता क्यों थी?

इनपुट/आउटपुट चैनलों का परीक्षण करने के बाद, हम लड़ाकू फर्मवेयर को माइक्रोकंट्रोलर में लोड करते हैं, जो मूल सर्किट के लेखक के बुनियादी स्रोतों के आधार पर Arduino वातावरण में C में लिखा जाता है।

कार्यक्रम पाठ

// 1MHz पर Attiny85 // मिलिस आदि के लिए टाइमर 0 सेट करना न भूलें! // Arduino\hardware\tiny\cores\tiny\core_build_options.h -> TIMER_TO_USE_FOR_MILLIS 0 #include // कनेक्शन # MODE_LED_PIN PIN_B0 परिभाषित करें # MODE_BUT_PIN MODE_LED_PIN परिभाषित करें # PWM_LED_PIN PIN_B3 परिभाषित करें # AM_PIN PIN_B1 परिभाषित करें # SP_PIN A1 परिभाषित करें # CUR_PIN A2 परिभाषित करें // स्टेट्स # MODE_MANUAL 0 परिभाषित करें # MODE_WAITINGSET 1 परिभाषित करें # MODE_UP_XX 2 #de परिभाषित करें ठीक MODE_SETUP_MAX 3 #मोड_START 4 ​​परिभाषित करें #मोड_ड्रिलिंग परिभाषित करें 5 #मोड_स्टॉप 6 परिभाषित करें // वेरिएबल्स बाइट मोड = मोड_मैनुअल; बाइट मोडलेडवैल = कम; बाइट सेटपॉइंट = 0; int करंटफ़िल्टर = 0; बाइट करंटयू8 = 0; बाइटएएमबटन; byteAMButtonFlt = कम; स्थिर बाइट मोडबटन; स्टेटिक बाइट मोडबटनफ़ल्ट = हाई; // स्थिर बाइट मोडबटनओल्ड के लिए प्रारंभिक मान = कम; //स्टार्टअप पर अपवाद ट्रिगर करें स्टेटिक बाइट SetupStep = false; अहस्ताक्षरित लंबे BlinkFromMs; अहस्ताक्षरित लंबे स्टार्टफ्रॉमएम; अहस्ताक्षरित लंबे modeFromMs; बाइट W, W0, W1, W2, Wxx, Wmax, Uxx, Uon, Uoff; void PWM3_init() ( // टाइमर 1 TCCR1 = _BV (CS11) | _BV (CS10); // प्रीस्केलर /4 GTCCR = _BV (COM1B0) | _BV (PWM1B); // का उपयोग करके PB3 (पिन 2) पर PWM सेट करें; // OCR1B = 255 की तुलना करने पर OC1B साफ़ करें; // प्रारंभिक कर्तव्य चक्र 0% (उल्टे आउटपुट का उपयोग करें!) OCR1C = 255; // PWM आवृत्ति = 1kHz (1,000,000 /4 /256) ) शून्य AnalogWrite_PB3(uint8_t ड्यूटी_वैल्यू) ( // PIN_B3 OCR1B = 255-ड्यूटी_वैल्यू पर एनालॉग राइट; // पैडिंग 0-255 (0-100%) (उल्टे आउटपुट का उपयोग करें!) बाइट स्कैनबटन (शून्य) ( // एलईडी के साथ एक आउटपुट से जुड़ा बटन पढ़ें // आउटपुट को पुनर्स्थापित करने के साथ तेज़ संस्करण और कोई भी PWM बाइट मान को अक्षम नहीं करता है, port_bak; port_bak = PORTB; // आउटपुट सहेजें DDRB &= ~(1<अंतराल))( \ आउट्वर = वर्नाम; (PWM_LED_PIN, OUTPUT); PWM3_init(); // EEPROM से सेटिंग्स को पुनर्स्थापित करना यदि वे वहां हैं यदि (EEPROM.read(11)==0xAA) ( Wxx = EEPROM.read(0); Wmax = EEPROM.read(1) ; Uon = EEPROM.read(2); Uoff = EEPROM.read(3); ) else ( // डिफ़ॉल्ट मान Wxx = 1; Wmax = 255; Uon = 255; // Uoff = 0 को ट्यून करने से पहले प्रारंभ को शामिल नहीं करता है; ) // यदि (digitalRead(AM_PIN)==HIGH) W0 = Wxx; अन्यथा (W0 = 255- (एनालॉगरीड(SP_PIN) >> 2); // 0-255, वेरिएबल रेसिस्टर हमें मिला तो निष्क्रिय या मैन्युअल सेटिंग में सहज त्वरण व्युत्क्रम ) W1 = 0; for(W=0 ; W<=W0; W++) { analogWrite_PB3(W); W1 = W1 + 4; delay(W1); } delay(800); Mode = MODE_WAITING; } // Рабочий цикл void loop() { // Индикация текущего режима морганием switch (Mode) { case MODE_MANUAL: ModeLedVal = LOW; // выключено break; case MODE_WAITING: (ModeLedVal==HIGH) ? ModeLedVal=LOW: ModeLedVal=HIGH; // в полнакала break; case MODE_START: case MODE_DRILLING: case MODE_STOP: ModeLedVal = HIGH; // на полную break; case MODE_SETUP_XX: if ((millis()-BlinkFromMs >400)) ( // शायद ही कभी (ModeLedVal==HIGH) ? modeLedVal=LOW: modeLedVal=HIGH; BlinkFromMs = millis(); ) ब्रेक; मामला MODE_SETUP_MAX: यदि ((millis()-BlinkFromMs > 100)) ( // अक्सर (ModeLedVal==HIGH) ? modeLedVal=LOW: modeLedVal=HIGH; BlinkFromMs = millis(); ) टूटना; ) डिजिटलराइट(MODE_LED_PIN, ModLedVal); // ऑटो/मैन्युअल टॉगल स्विच, ऑटो में खुलता है और हाई एएमबटन = डिजिटल रीड (एएम_पिन) पढ़ता है; डिबाउंस (एएमबटन, एएमबटनफ्लैट, 200); // सेटिंग्स बटन, एक विशेष प्रक्रिया द्वारा पढ़ें क्योंकि एलईडी के साथ संयुक्त, जब दबाया जाता है, तो यह LOW मोडबटन = स्कैनबटन() पढ़ता है; डिबाउंस (मोडबटन, मोडबटनफ्लैट, 200); सेटअपस्टेप = (मोडबटनफ़ल्ट==लो) && (मोडबटनओल्ड==हाई); मोडबटनओल्ड = मोडबटनफ़ल्ट; // स्पिनर सेटप्वाइंट = 255- (एनालॉगरीड(एसपी_पिन) >> 2); // 0-255, हमारा वैरिएबल रेसिस्टर उलटा निकला // मोटर करंट // मुख्य फिल्टर आरसी-चेन 36K + 68nF (समय स्थिरांक 2.5ms, कटऑफ फ्रीक्वेंसी 65Hz) क्रम y(i) = y(i-1) ) + अल्फ़ा*(x(i)-y(i-1)) // (उर्फ एक्सपोनेंशियल मूविंग एवरेज, EMA) // फ़िल्टर में, फ्लोट के बजाय, हम बढ़ी हुई परिशुद्धता int का उपयोग करते हैं, जिसके लिए हम फ्री द्वारा बाईं ओर शिफ्ट करते हैं 5 बिट्स (चिह्न अभी भी उपयोगी होगा) // गुणन को आंशिक गुणांक अल्फा द्वारा दाईं ओर बदलाव के साथ बदलें // (6 = /64 = *0.016) 100 चक्र - मूल्य का 80%, 200 चक्र - 96 मान का %, 369 चक्र - 99.6% मान // (5 = /32 = *0.031) 50 चक्र - 80% मान, 100 चक्र - 96% मान, 179 चक्र - 99.6% मान // (4 = /16 = *0.063) 25 चक्र - 80% मान, 50 चक्र - 96% मान, 90 चक्र - 99.6% मान // (3 = /8 = *0.125) 12 चक्र - 80% मान, 25 चक्र - 96% मान, 45 चक्र - 99.6% मान // अवधि रन = एडीसी 110µs + प्रोग्राम = 0.2 एमएस // समय स्थिरांक = 8 * 0.2 एमएस = 1.6 एमएस, कटऑफ आवृत्ति 625 हर्ट्ज करंटफिल्टर्ड = करंटफिल्टर्ड + ((एनालॉगरीड(CUR_PIN)<< 5) - CurrentFiltered) >>3); // उपयोग में आसानी के लिए, 0-255 पर कास्ट करें // (5 बिट्स द्वारा पीछे शिफ्ट करें और 2 उच्च बिट्स को हटा दिया जाता है क्योंकि सब कुछ दिलचस्प है (निष्क्रिय)<1В) CurrentU8 = byte (CurrentFiltered >> 5); // यदि >1В को छोटे के साथ भ्रमित न करें यदि ((करंटफिल्टर >> 5) और 0x7F00) करंटयू8=255; // राज्य मशीन स्विच (मोड) (केस MODE_MANUAL: // एक ट्विस्ट एनालॉगराइट_PB3 (सेटप्वाइंट) के साथ मैनुअल नियंत्रण; यदि (सेटअपस्टेप) मोड = MODE_SETUP_XX; यदि (AMButtonFlt==HIGH) ( // मशीन एनालॉग राइट_PB3 पर स्विच करते समय धीमा करें (Wxx);StartFromMs = millis(); मोड = MODE_STOP; ) ब्रेक; केस MODE_WAITING: // करंट बढ़ने की प्रतीक्षा करें यदि (CurrentU8 > Uon) (//StartFromMs = millis(); AnalogWrite_PB3(Wmax); मोड = MODE_START; ) यदि (सेटअपस्टेप ) मोड = MODE_SETUP_XX; यदि (AMButtonFlt==LOW) मोड = MODE_MANUAL; ब्रेक; केस MODE_START: // स्पिन अप करें यदि (मिली()-StartFromMs > 300) मोड = MODE_DRILLING; यदि (AMButtonFlt= =कम) मोड = MODE_MANUAL; ब्रेक; केस MODE_DRILLING: // ड्रिलिंग, करंट कम होने का इंतजार अगर (CurrentU8)< Uoff) { // Тормозим analogWrite_PB3(Wxx); Mode = MODE_STOP; } if (AMButtonFlt==LOW) Mode = MODE_MANUAL; break; case MODE_STOP: // Тормозим и ждем пока выйдем на ток ХХ if (CurrentU8 < Uon) { // Замедлились if (millis()-StartFromMs >300) // सुरक्षित मोड = MODE_WAITING; ) अन्यथा (StartFromMs = millis(); ) यदि (AMButtonFlt==LOW) मोड = MODE_MANUAL; तोड़ना; केस MODE_SETUP_XX: // निष्क्रिय सेटिंग Wxx = SetPoint; AnalogWrite_PB3(Wxx); यदि (सेटअपस्टेप) (यूओएन = बाइट(1.1 * करंटयू8); ईईपीरोम.राइट(0,डब्ल्यूएक्सएक्स); ईईपीरोम.राइट(2,यूओएन); मोड = मोड_सेटअप_मैक्स; ) ब्रेक; केस MODE_SETUP_MAX: // अधिकतम RPM सेट करना Wmax = SetPoint; AnalogWrite_PB3(Wmax); अगर (सेटअपस्टेप) (यूऑफ़ = बाइट(1.1 * करंटयू8); ईईपीरोम.राइट(1,डब्लूमैक्स); ईईपीरोम.राइट(3,यूऑफ); millis(); मोड = MODE_STOP; ) ब्रेक; डिफ़ॉल्ट: मोड = MODE_WAITING; वापस करना; ) )


हम एक 5 वाट 2.2 ओम अवरोधक को शंट के रूप में जोड़ते हैं। पीडब्लूएम के अनुगामी किनारे पर सर्किट को वोल्टेज के आगमनात्मक उछाल से बचाने के लिए, हम मोटर के समानांतर एक SS34 शोट्की डायोड जोड़ते हैं, और स्विचिंग वाइंडिंग से हस्तक्षेप को दबाने के लिए, एक 100nF संधारित्र जोड़ते हैं। और हम ड्रिल की मोटर को नियंत्रित करने के लिए परीक्षण शुरू करते हैं।

4KHz (1MHz / 256) पर PWM की उग्र आवाज़ को तुरंत बाहर निकालता है। हम /4 डिवाइडर सेटिंग जोड़ते हैं - यह तुरंत बेहतर महसूस हुआ, हालांकि चीख़ दूर नहीं हुई है, लेकिन किसी कारण से 1KHz को लंबे समय तक ऑपरेशन के साथ भी सहन करना बहुत आसान है।

मैनुअल मोड में, मोटर की गति सामान्य रूप से 0-100% द्वारा नियंत्रित होती है, और फीडबैक सर्किट के स्वचालित एडीसी में यह हर समय MAX मान पढ़ता है और कुछ भी काम नहीं करता है। रास्ते में, मैंने देखा कि मोटर बंद होने पर भी बोर्ड जोर से बीप करता है। क्या हुआ?

हम एक परीक्षक लेते हैं, एक ऑसिलोस्कोप खोदते हैं और अध्ययन करना शुरू करते हैं कि हम क्या देते हैं और हमें क्या मिलता है। और हम अपने जबड़े गिरा देते हैं। शंट पर, पीडब्लूएम पल्स की शुरुआत में इंडक्शन के माध्यम से धीरे-धीरे प्रवाहित होने वाली वर्तमान तरंगों के बजाय, हम दसियों वोल्ट की सुइयां देखते हैं। इसका मतलब यह है कि शंट से दस एम्पीयर की स्पंदित धारा प्रवाहित होती है! और इंजन बंद होने पर भी. आश्चर्य नहीं कि बोर्ड बज उठा। लेकिन इंजन के बिना सर्किट बंद क्या होता है? छोटा 100nF संधारित्र! यह वाइंडिंग स्विच करते समय हस्तक्षेप को दबा सकता है और दबाएगा, लेकिन अभी के लिए यह प्रत्येक पीडब्लूएम अवधि पर एक अल्पकालिक शॉर्ट सर्किट की व्यवस्था करता है! निष्कर्ष - शोर दमन संधारित्र पीडब्लूएम नियंत्रण और शंट का उपयोग करके नियंत्रण के साथ संगत नहीं है, इसे हटा दिया जाना चाहिए।

और फिर यह मेरे सामने आता है कि ये हाई-वोल्टेज सर्ज लगभग सीधे टिंका के एडीसी तक जाते हैं (क्योंकि एक आयाम डिटेक्टर है, पैर पर संधारित्र सुई में अधिकतम वोल्टेज पर चार्ज किया जाता है और इसे सुरक्षित रूप से संग्रहीत करता है, क्योंकि डिस्चार्ज केवल डायोड रिसाव के माध्यम से होता है)। ऐसा लगता है कि तिनका अभी मरने वाली नहीं है, लेकिन उसके पैर का क्या? उपकरण आपूर्ति वोल्टेज से अधिक 5.2V के पैर पर एक निरंतर वोल्टेज दिखाते हैं, लेकिन बाकी कहां गए? हमें याद है कि उछाल से निपटने के लिए, इसमें "+" और "-" बिजली आपूर्ति के लिए विशेष रूप से प्रशिक्षित डायोड हैं, जो पीएसयू में अतिरिक्त प्रवाह करते हैं। लेकिन अंतर्निर्मित डायोड कमज़ोर हैं और आपको उन पर अधिक भरोसा नहीं करना चाहिए।

हम लानत संधारित्र को हटाते हैं, अपने पैर से वोल्टेज मापते हैं - यह काम करता है! विश्वसनीय एमके एटमेल बनाता है! जाहिर तौर पर इससे यह बच गया कि कैपेसिटर की कैपेसिटेंस कम थी, उन्होंने थोड़ा चार्ज पंप किया।

संधारित्र के बिना, सुइयां गायब हो गईं, बोर्ड ने संगीत बजाना बंद कर दिया, पैर वास्तव में पीडब्लूएम पल्स करंट के आयाम को मापने लगता है। हम सेटअप प्रक्रिया शुरू करते हैं और ड्रिल करने का प्रयास करते हैं। ऐसा लगता है कि सब कुछ वैसा ही है जैसा होना चाहिए - यह लोड के तहत क्रांतियाँ जोड़ता है, और जब ड्रिल बाहर निकलती है तो इसे रीसेट कर देता है। लेकिन न केवल - एक मिनट में कई बार यह अनायास तेज हो जाता है और बिना भार के धीमा हो जाता है। यह स्पष्ट क्यों नहीं है, यंत्र कुछ भी नहीं दिखाते। या तो पैर जल गया है, या तारों की कैपेसिटेंस उस कॉनडर जैसी अदृश्य सुइयों को उत्पन्न करती है, या उसी कलेक्टर के हस्तक्षेप से चढ़ती है।

तब मैंने समस्या से मौलिक रूप से निपटने का निर्णय लिया, क्योंकि मैंने देखा कि पीक डिटेक्टर का उपयोग किसी अन्य योजना में नहीं किया जाता है। इसके विपरीत, आरसी फिल्टर के माध्यम से पारित वर्तमान का अभिन्न मूल्य हर जगह नियंत्रित किया जाता है। और ऐसे माप एकल उत्सर्जन के रूप में हस्तक्षेप के प्रति असंवेदनशील हैं। हम डायोड को एक अवरोधक में बदलते हैं - और आयाम डिटेक्टर एक कम-पास फिल्टर में बदल जाता है।

एडीसी द्वारा बदला गया वोल्टेज परिमाण के क्रम से तुरंत कम हो जाता है - उनके बीच ठहराव के साथ कोमल तरंगों के रूप में सिग्नल के मामले में ऑपरेटिंग वोल्टेज आयाम से बहुत कम होता है। हमें लगभग 0.2 वी का वोल्टेज पकड़ना था। बेशक, शंट के प्रतिरोध को बढ़ाना संभव था, लेकिन क्या हमने वातावरण को गर्म करने के लिए पीडब्लूएम की बाड़ लगाई थी। और बड़ी पीडब्लूएम फिलिंग और मोटर पर लोड के साथ, आप ओवरवॉल्टेज प्राप्त कर सकते हैं। इसलिए आपको लो यू आइडल से काम करना होगा।

ऐसा लगता है कि लोड की प्रतिक्रिया भी धीमी हो गई है। त्वरण लगभग आधे सेकंड में शुरू हो जाता है, लेकिन मुझे इसमें कोई बड़ी समस्या नहीं दिखती - बस ड्रिल सेट हो जाएगी और कम गति पर तांबे से होकर गुजरेगी। और अब कोई झूठी शुरुआत नहीं होगी। आप काम कर सकते हैं।

डिवाइस की अंतिम योजना:


डिवाइस को एक केस में लगाया गया था, जो एक भली भांति बंद करके सील की गई विद्युत स्थापना थी "टुसो प्लास्टिक वायरिंग बॉक्स विदाउट ग्लैंड्स 120x80x50 मिमी, आईपी55 ग्रे 67052 रुविनिल रूस"। मैं एक बेहतर विकल्प ढूंढना चाहता था, लेकिन मुझे 110 * 60 * 30 जैसा कुछ नहीं मिला। मेज पर माला न रखने के लिए, मैंने पीएसयू के साथ नियामक को एक पूरे में घुमा दिया। ईंट तो बढ़िया निकली, लेकिन हम उसे अपनी जेब में भी नहीं रख सकते। और यद्यपि कुछ दर्जन छेदों को ड्रिल करने के बाद, कुंजी क्षेत्र, शंट और स्टेबलाइज़र का कोई ध्यान देने योग्य हीटिंग नहीं था, मैंने नीचे और पीछे की दीवार पर थोड़ा वेंटिलेशन ड्रिल किया।







तब से, रेगुलेटर वाली मशीन ने 2 और बोर्डों के निर्माण में भाग लिया है (आप देख सकते हैं कि "एवीआर फ़्यूज़बिट डॉक्टर" शब्दों के अनुसार ड्रिल करने में कितना समय लगा। मैं उनके काम से बहुत खुश हूं।

मैं यह भी नोट करना चाहता हूं कि अली के साथ कार्बाइड ड्रिल में 3.2 मिमी का शैंक होता है, और कोलेट केवल 3.0 और 3.5 थे - वे एक ड्रिल में फिट नहीं होते हैं, लेकिन वे दूसरे में क्लैंप नहीं करते हैं। मैंने ड्रिल पर तांबे का तार लपेटा और किसी तरह इसे 3.5 मिमी में डाला, लेकिन यह बदसूरत था। यदि किसी को 6 मिमी के व्यास के साथ 3.2 पर कोलेट मिला है (ड्रेमेल को छोड़कर हर जगह, 5 मिमी से नीचे की पूंछ के साथ), तो मुझे बताएं।

ड्रिल बदलते समय, समायोजन प्रक्रिया को दोहराना पड़ता है - जाहिर है, एक "पतली" पारंपरिक ड्रिल और मोटी टांग वाली कार्बाइड ड्रिल की जड़ता के अलग-अलग क्षण मोटर प्रवाह को प्रभावित करते हैं। लेकिन यह जल्दी हो जाता है और परेशानी नहीं होती। जो लोग चाहें वे फर्मवेयर में ड्रिल प्रोफाइल की बचत जोड़ सकते हैं :)

पानी की एक परत के नीचे बोर्डों को ड्रिल करने की सलाह बार-बार मिली, ताकि कांच के बुरादे में सांस न जाए। मुझे समझ नहीं आया। जब ड्रिल ऊंचाई पर हो तो उसे ठीक से रखें, पानी में अपवर्तन में बाधा आती है, आंखें टेढ़ी हो जाती हैं। और जब ड्रिल पानी में प्रवेश करती है, तो लहरें उठने लगती हैं और कुछ भी दिखाई नहीं देता है। क्या रुकी हुई ड्रिल को सेट करना और फिर उसे चालू करना आवश्यक है? नतीजतन, मैं बस इसके बगल में पानी का एक कटोरा रखता हूं और समय-समय पर बोर्ड को इसमें डुबोता हूं - चूरा को गीला करने और धोने के लिए। इस मामले में, चूरा नम होता है और उड़ता भी नहीं है, इसे छेद के ऊपर एक शंकु में एकत्र किया जाता है।

और एक और गीतात्मक विषयांतर, छोटे फास्टनरों के बारे में।

मैंने डिवाइस में "डीएस-225, पैनल पर पावर सॉकेट" प्रकार का पावर कनेक्टर लगाने का निर्णय लिया। इसके बन्धन के लिए, 2.5 मिमी के धागे के साथ नट के साथ पेंच की आवश्यकता थी। कोठरी में कुछ भी उपयुक्त नहीं मिला, और फिर मुझे याद आया कि एक अन्य वस्तु में 2 मिमी स्क्रू की आवश्यकता थी। तो यह फास्टनरों के संग्रह को फिर से भरने के लायक है ताकि अगली बार आप एक अखरोट की खातिर क्षेत्र के दूसरे छोर पर न उड़ें। कंस्ट्रक्शन स्टोर्स में, एम3 से कम कुछ नहीं मिला, इसलिए आपको विशेष की तलाश करने की जरूरत है।

पहला अपेक्षाकृत सुविधाजनक स्टोर एक श्रृंखला थी
अंदर, आँखें सभी प्रकार की उपयोगी चीज़ों से दूर चली गईं, लेकिन यह दुर्भाग्य था - सबसे छोटे पेंच केवल समान लंबाई के M2.5 थे, लेकिन उनके लिए कोई नट और वॉशर नहीं थे और ऐसा कभी नहीं होता! मैं 2r/पीस के हिसाब से नट्स की बिक्री और खरीदी गई हर चीज को एक बैग-शर्ट में डालने से प्रभावित हुआ (विभिन्न आकारों के लिए कोई छोटे बैग नहीं थे)। फिर, विभिन्न आकारों को रिजर्व में लेना लाभहीन है।

एक अन्य फास्टनर स्टोर द्वारा बचाया गया -
यहां स्टॉक में वास्तव में सब कुछ है, एम1.6 से लेकर, अलग-अलग स्लॉट और हेड के साथ, टुकड़े और वजन के हिसाब से बेचा जाता है, और पिछले प्रतिस्पर्धी की तुलना में कम कीमत पर बेचा जाता है। लेकिन आपको बस तुरंत प्लेखानोव स्ट्रीट पर गोदाम की दुकान पर जाने की जरूरत है, अन्यथा मैं सबसे पहले पेरोवो मेट्रो स्टेशन के पास की दुकान पर गया और घोषित कीमत पर बहुत आश्चर्यचकित हुआ। और यह पता चला कि उनके पास केवल स्टेनलेस स्टील है, और सामान्य फास्टनरों के लिए आपको क्रॉसबार पर औद्योगिक क्षेत्र में जाना होगा।

मैं +67 खरीदने की योजना बना रहा हूं पसंदीदा में जोड़े समीक्षा पसंद आयी +76 +152

बड़ी संख्या में क्लासिक थाइरिस्टर और ट्राईक नियंत्रक सर्किट हैं, लेकिन यह नियंत्रक आधुनिक तत्व आधार पर बनाया गया है और, इसके अलावा, एक चरण एक था, यानी। यह मुख्य वोल्टेज की संपूर्ण अर्ध-तरंग को पारित नहीं करता है, बल्कि इसका केवल कुछ भाग ही पारित करता है, जिससे शक्ति सीमित हो जाती है, क्योंकि त्रिक का उद्घाटन केवल वांछित चरण कोण पर होता है।

जब सर्किट को पहली बार चालू किया जाता है, तो खंड संकेतक पर अंक 0 रोशनी करता है। दो माइक्रोस्विच बटन को एक साथ दबाकर और दबाकर चालू और बंद किया जाता है। समायोजन कमोबेश - प्रत्येक प्रेस व्यक्तिगत रूप से। यदि आप किसी भी टॉगल स्विच को नहीं दबाते हैं, तो आखिरी बार दबाने के बाद, दो घंटे के बाद, रेगुलेटर अपने आप बंद हो जाएगा, संकेतक बिजली की खपत के अंतिम कार्य स्तर के चरण तक झपकाता रहेगा।

जिस समय डिवाइस नेटवर्क से डिस्कनेक्ट हो जाता है, आउटपुट पावर का अंतिम स्तर संग्रहीत हो जाता है, जो अगली बार चालू होने पर स्वचालित रूप से सेट हो जाएगा। समायोजन 0 से 9 तक और आगे ए से एफ तक की सीमा में किया जाता है। यानी कुल मिलाकर 16 समायोजन चरण हैं।

ऊपर की तस्वीर में रेडिएटर काफी बड़ा है, डिज़ाइन आपको एक छोटा विकल्प रखने की अनुमति देता है, लेकिन मेरे पास दूसरा नहीं था। जब मैंने पहली बार डिवाइस चालू किया, तो मेरे डिस्प्ले पर 0 ब्लिंक हुआ, सर्किट ने बटन दबाने पर कोई प्रतिक्रिया नहीं दी। 1000 माइक्रोफ़ारड के नाममात्र मूल्य के साथ बिजली आपूर्ति संधारित्र को बदलने से समस्या गायब हो गई।

प्रारूप में मुद्रित सर्किट बोर्ड और माइक्रोकंट्रोलर के फर्मवेयर को उपरोक्त लिंक पर एक संग्रह में रखा गया है।

सर्किट का उपयोग लोड में सुचारू पावर नियंत्रण के लिए किया जाता है। नियंत्रण विधि त्रिक चरण नियंत्रण विधि पर आधारित है। इसका सार प्रत्यावर्ती मुख्य वोल्टेज के आधे-चक्र के भाग को छोड़ने में निहित है। लोड को आपूर्ति की गई धारा प्राप्त सिग्नल के अभिन्न अंग के समानुपाती होती है। डिज़ाइन का आधार PIC16F1823 माइक्रोकंट्रोलर है।

डिवाइस सक्रिय (गरमागरम लैंप, हीटर) और आगमनात्मक भार का समर्थन करता है। माइक्रोकंट्रोलर को एक आंतरिक ऑसिलेटर से क्लॉक किया जाता है। नेटवर्क के साथ सिंक्रोनाइज़ेशन सिग्नल रेक्टिफायर ब्रिज से R10, C5, R9, R8, C3 पर एक फिल्टर के माध्यम से माइक्रोकंट्रोलर के आंतरिक तुलनित्र के इनपुट तक आता है। तुलनित्र का संदर्भ वोल्टेज माइक्रोकंट्रोलर के आंतरिक डीएसी से आता है और लगभग 0.6 वी है, जो एमके कॉन्फ़िगरेशन के दौरान सेट किया गया है। डायोड D6 का उपयोग सिंक्रोनाइज़ेशन पर कैपेसिटेंस C6 के प्रभाव को खत्म करने के लिए किया जाता है। संकेत E30561 पर एक सामान्य कैथोड के साथ बनाया गया है।

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

ट्राइक हीटसिंक (HS-135-38) के साथ, जैसा कि चित्र में दिखाया गया है, अधिकतम लोड पावर लगभग 500W है। तदनुसार, इस रेडिएटर के लिए मुद्रित सर्किट बोर्ड पर एक सीट बनाई जाती है।

एमके के लिए फर्मवेयर हाई-टेक PICC 9.83 कंपाइलर के लिए C भाषा में MPLAB वातावरण में बनाया गया है। आप उपरोक्त लिंक से मुद्रित सर्किट बोर्ड, फर्मवेयर और एमपीएलएबी प्रोजेक्ट डाउनलोड कर सकते हैं।

डिज़ाइन को ट्राइक प्रकार BT138 का उपयोग करके विनियमित किया जाता है। जिसका प्रबंधन एमके के माध्यम से किया जाता है। डिजिटल एलईडी डिस्प्ले दिखाता है कि वर्तमान समय में ट्राइक कितने प्रतिशत खुला है। सर्किट का तार्किक भाग एक बिजली आपूर्ति द्वारा संचालित होता है, जिसका आधार वोल्टेज नियामक DA1 7805 है।

यह सर्किट दो अलग-अलग भारों के लिए आउटपुट पावर को अलग-अलग समायोजित करने के लिए बिल्कुल सही है, उदाहरण के लिए, हीटर, लैंप, इलेक्ट्रिक मोटर। अधिकतम लोड शक्ति इसे स्विच करने वाली चाबियों के प्रकार पर निर्भर करती है। नीचे दिए गए चित्र में, KT819 ट्रांजिस्टर इस प्रकार कार्य करते हैं, लेकिन दोनों भारों की आवश्यक शक्ति के आधार पर अन्य विकल्प भी हो सकते हैं। डिवाइस पल्स सिग्नल उत्पन्न करता है जो किसी भी पावर स्विच पर जाता है।

डिवाइस पल्स सिग्नल उत्पन्न करता है, उनकी पल्स की चौड़ाई 256 समान डिग्री में समायोजित की जा सकती है। सर्किट को नियंत्रित करने के लिए, परिवर्तनीय प्रतिरोधों का उपयोग किया जाता है, जो एमके के आरवी3 और आरवी4 पोर्ट से जुड़े होते हैं, जो एडीसी के साथ काम करते हैं। ATtiny13 परिवर्तनीय अवरोधक के मूल्य को मापता है और स्विच के बाद आउटपुट पल्स सिग्नल की पल्स चौड़ाई निर्धारित करता है जो एक विशेष लोड पर बिजली की आपूर्ति को नियंत्रित करता है। यानी वेरिएबल रेजिस्टेंस नॉब को घुमाकर पावर को एडजस्ट किया जाता है। "कम" और "अधिक" बटन वाली सेटिंग की तुलना में ऐसा समायोजन, इसकी गति के कारण उपयोग करने में अधिक सुविधाजनक है। डिवाइस की प्रोग्रामिंग के लिए एक ISP6 कनेक्टर है। प्रोग्रामिंग करते समय, हम 9.6 मेगाहर्ट्ज की आवृत्ति पर आंतरिक घड़ी आरसी जनरेटर के साथ काम करते हुए, फ़्यूज़ को डिफ़ॉल्ट रूप से सेट करते हैं। फर्मवेयर के स्रोत कोड के साथ संग्रह, हम इसे उपरोक्त लिंक से लेते हैं।

आधुनिक इलेक्ट्रॉनिक तकनीक में इलेक्ट्रिक मोटर की गति को समायोजित करना आपूर्ति वोल्टेज को बदलकर नहीं किया जाता है, जैसा कि पहले किया गया था, बल्कि इलेक्ट्रिक मोटर में विभिन्न अवधि के वर्तमान दालों को लागू करके प्राप्त किया जाता है। इन उद्देश्यों के लिए, वे सेवा करते हैं, जो हाल ही में बहुत लोकप्रिय हो गए हैं - पीडब्लूएम ( पल्स-चौड़ाई संग्राहक) नियामक। सर्किट सार्वभौमिक है - यह एक मोटर गति नियंत्रक भी है, और लैंप की चमक, और चार्जर में वर्तमान ताकत भी है।

पीडब्लूएम नियंत्रक सर्किट

निर्दिष्ट योजना ठीक काम करती है, संलग्न।

सर्किट में बदलाव किए बिना वोल्टेज को 16 वोल्ट तक बढ़ाया जा सकता है। लोड शक्ति के आधार पर ट्रांजिस्टर सेट करें।

असेंबल किया जा सकता है पीडब्लूएम नियामकऔर ऐसे विद्युत परिपथ के अनुसार, एक पारंपरिक द्विध्रुवी ट्रांजिस्टर के साथ:

और यदि आवश्यक हो, तो समग्र ट्रांजिस्टर KT827 के बजाय, एक अवरोधक R1 - 47k के साथ फ़ील्ड IRFZ44N डालें। रेडिएटर के बिना पोलेविक, 7 एम्पीयर तक के भार के साथ, गर्म नहीं होता है।

पीडब्लूएम नियंत्रक संचालन

NE555 चिप पर टाइमर कैपेसिटर C1 पर वोल्टेज की निगरानी करता है, जिसे THR पिन से हटा दिया जाता है। जैसे ही यह अधिकतम तक पहुंचता है, आंतरिक ट्रांजिस्टर खुल जाता है। जो DIS पिन को जमीन पर छोटा कर देता है। इस स्थिति में, आउटपुट OUT पर एक तार्किक शून्य दिखाई देता है। संधारित्र डीआईएस के माध्यम से डिस्चार्ज होना शुरू हो जाता है और जब इसके पार वोल्टेज शून्य हो जाता है, तो सिस्टम विपरीत स्थिति में स्विच हो जाएगा - आउटपुट 1 पर, ट्रांजिस्टर बंद हो जाता है। संधारित्र फिर से चार्ज होना शुरू हो जाता है और सब कुछ फिर से दोहराता है।

कैपेसिटर C1 का चार्ज पथ का अनुसरण करता है: "R2->ऊपरी भुजा R1 ->D2", और पथ के साथ डिस्चार्ज: D1 ->निचली भुजा R1 -> DIS। जब हम परिवर्तनीय अवरोधक R1 को घुमाते हैं, तो हम ऊपरी और निचली भुजाओं के प्रतिरोधों का अनुपात बदल देते हैं। जो, तदनुसार, नाड़ी की लंबाई और ठहराव के अनुपात को बदल देता है। आवृत्ति मुख्य रूप से संधारित्र C1 द्वारा निर्धारित की जाती है और प्रतिरोध R1 के मान पर भी थोड़ा निर्भर करती है। चार्ज/डिस्चार्ज प्रतिरोध अनुपात को बदलकर, हम कर्तव्य चक्र को बदलते हैं। रेसिस्टर R3 उच्च स्तर पर पुल-अप आउटपुट प्रदान करता है - इसलिए एक खुला कलेक्टर आउटपुट होता है। जो अपने आप में कोई उच्च स्तर स्थापित करने में सक्षम नहीं है।

आप आरेख के समान मूल्य के कोई भी डायोड, कैपेसिटर लगा सकते हैं। परिमाण के एक क्रम के भीतर विचलन डिवाइस के संचालन को महत्वपूर्ण रूप से प्रभावित नहीं करता है। उदाहरण के लिए, C1 में सेट 4.7 नैनोफ़ारड पर, आवृत्ति घटकर 18 kHz हो जाती है, लेकिन यह लगभग अश्रव्य है।

यदि, सर्किट को असेंबल करने के बाद, कुंजी नियंत्रण ट्रांजिस्टर गर्म हो जाता है, तो सबसे अधिक संभावना है कि यह पूरी तरह से नहीं खुलता है। अर्थात्, ट्रांजिस्टर में एक बड़ा वोल्टेज ड्रॉप होता है (यह आंशिक रूप से खुला होता है) और इसके माध्यम से करंट प्रवाहित होता है। परिणामस्वरूप, हीटिंग के लिए अधिक बिजली खर्च होती है। बड़े कैपेसिटर के साथ आउटपुट में सर्किट को समानांतर करना वांछनीय है, अन्यथा यह खराब रूप से गाएगा और नियंत्रित करेगा। सीटी न बजाने के लिए - C1 उठाएँ, सीटी अक्सर उसी से आती है। सामान्य तौर पर, दायरा बहुत व्यापक है, विशेष रूप से उच्च-शक्ति एलईडी लैंप, एलईडी स्ट्रिप्स और स्पॉटलाइट के लिए डिमर के रूप में इसका उपयोग आशाजनक होगा, लेकिन अगली बार इस पर और अधिक। लेख कान, यूआर5आरएनपी, स्टाकर68 के सहयोग से लिखा गया था।

अक्सर लैंप या हीटिंग तत्वों के माध्यम से प्रवाहित होने वाली धारा को नियंत्रित करने में सक्षम होना आवश्यक होता है। चूंकि उनके पास प्रतिरोधक भार है, इसलिए सबसे आसान समाधान एक छोटा पीडब्लूएम (अंग्रेजी पीडब्लूएम से - पल्स-चौड़ाई मॉड्यूलेशन) नियामक को इकट्ठा करना है। चूँकि NE555 टाइमर पर आधारित सरल सर्किट रुचि के नहीं थे, इसलिए कुछ हद तक समान, अपना स्वयं का विकास और संयोजन करने का निर्णय लिया गया।

सर्किट, PIC18LF2550 माइक्रोकंट्रोलर की उपस्थिति के बावजूद, दोहराना बहुत आसान है और इसे सशर्त रूप से 3 भागों में विभाजित किया जा सकता है:

पीडब्लूएम जनरेटर

माइक्रोकंट्रोलर वांछित आकार और कर्तव्य चक्र की स्पष्ट दालें उत्पन्न करता है, जो सर्किट को बहुत सरल बनाता है। पावर बढ़ाने और घटाने के लिए दो बटन हैं। वे PIC18LF2550 चिप के पिन 3 और 5 पर जाते हैं। पल्स चौड़ाई के आधार पर - एलईडी अधिक धीरे या तेजी से झपकती है, ताकि आप कर्तव्य चक्र का दृश्य रूप से आकलन कर सकें। यदि एलईडी पूरी तरह से चमकती है - शक्ति 100% है, और यदि यह बंद हो जाती है, तो कर्तव्य चक्र 0% है।

माइक्रोकंट्रोलर बिजली की आपूर्ति

एमके स्टेबलाइज़र 3.3 वोल्ट है, इसलिए, आउटपुट ट्रांजिस्टर के आधार पर, आप 3.7 से 25 वोल्ट तक पावर स्रोत का उपयोग कर सकते हैं। स्विचिंग आवृत्ति 32 kHz है, और पल्स चौड़ाई को पूर्ण चालू और बंद सहित 256 चरणों में विभाजित किया गया है।

लोड स्विच

MOSFET ट्रांजिस्टर का ड्राइवर सामान्य 2N3904 है। पावर ट्रांजिस्टर स्वयं कोई भी उपयुक्त एन-चैनल MOSFET हो सकता है, जरूरी नहीं कि यह 80NF55L सर्किट में हो।

4-चैनल 8-बिट PWM नियंत्रक का यह संस्करण ATmega16 माइक्रोकंट्रोलर का उपयोग करके डिज़ाइन किया गया है। डिवाइस में कंप्यूटर नियंत्रण के लिए एक RS232 इंटरफ़ेस, 12-बटन कीबोर्ड के लिए एक इंटरफ़ेस और पोटेंशियोमीटर को जोड़ने के लिए 4 एनालॉग 10-बिट चैनल शामिल हैं। वर्तमान ऑपरेटिंग मोड और पैरामीटर प्रदर्शित करने के लिए, 4-लाइन एलसीडी डिस्प्ले है। इसके अतिरिक्त, पीडब्लूएम नियंत्रक में: नियंत्रण मोड को इंगित करने के लिए 4 एलईडी आउटपुट (सामान्य प्रयोजन आउटपुट के रूप में इस्तेमाल किया जा सकता है), 3 सामान्य प्रयोजन आउटपुट हैं।

डिवाइस में बहुत लचीली सेटिंग्स हैं। उदाहरण के लिए, पीडब्लूएम चैनलों के मापदंडों को कंप्यूटर से कमांड द्वारा, एनालॉग नियंत्रकों (पोटेंशियोमीटर) के माध्यम से या कीबोर्ड का उपयोग करके (एलसीडी संकेतक पर प्रदर्शित उपयोगकर्ता इंटरफ़ेस के साथ) नियंत्रित किया जा सकता है। एलसीडी संकेतक को आरएस232 के माध्यम से भी नियंत्रित किया जा सकता है, वर्तमान सेटिंग्स और मोड का प्रदर्शन संख्यात्मक या ग्राफिकल प्रारूप में संभव है।

डिवाइस की मुख्य विशेषताएं:

  • 4-चैनल पीडब्लूएम, रिज़ॉल्यूशन 8 बिट्स, पीडब्लूएम आवृत्ति - 31 किलोहर्ट्ज़;
  • पीसी नियंत्रण और निगरानी के लिए आरएस232 इंटरफ़ेस;
  • बाहरी तत्वों की न्यूनतम संख्या के साथ सरल सर्किट डिजाइन;
  • 12-बटन कीपैड;
  • एनालॉग समायोजन की संभावना;
  • 7 सामान्य प्रयोजन आउटपुट लाइनें तक;
  • 4-लाइन एलसीडी डिस्प्ले;
  • सीरियल इंटरफ़ेस के माध्यम से एलसीडी डिस्प्ले नियंत्रण;
  • उपयोगकर्ता विकल्प सूची;
  • लचीली सेटिंग्स;
  • काम में तेजी लाने के लिए फीफो बफ़र्स का सॉफ़्टवेयर कार्यान्वयन।

सामान्य-प्रयोजन आउटपुट (एलईडी संकेतक सहित) को कंप्यूटर (आरएस232) से नियंत्रित किया जाता है, उपयोगकर्ता के पास कीबोर्ड पर कीस्ट्रोक्स के इतिहास (अंतिम 32 कीस्ट्रोक्स, या किसी भी कुंजी को दबाने के तुरंत बाद) को पढ़ने की क्षमता भी होती है।

ऐसी लचीली सेटिंग्स के लिए धन्यवाद, उचित सेटिंग चुनकर, पीडब्लूएम नियंत्रक का उपयोग विभिन्न अनुप्रयोगों में और एक स्टैंडअलोन डिवाइस के रूप में किया जा सकता है। डिज़ाइन ATmega16 माइक्रोकंट्रोलर का उपयोग करता है, बाहरी तत्वों की न्यूनतम संख्या, क्योंकि सभी नियंत्रण और प्रबंधन माइक्रोकंट्रोलर द्वारा ही किया जाता है। उपयोगकर्ता के लिए केवल आवश्यक घटकों का उपयोग करना संभव है, उदाहरण के लिए, एलसीडी संकेतक, यदि इसकी आवश्यकता नहीं है, तो छोड़ा जा सकता है।

डिवाइस का तर्क आरेख.

डिवाइस का योजनाबद्ध आरेख

सर्किट डिज़ाइन बहुत सरल है. माइक्रोकंट्रोलर को क्लॉक करने के लिए एक 8 मेगाहर्ट्ज क्वार्ट्ज रेज़ोनेटर का चयन किया गया था, एक +5.0 V बिजली की आपूर्ति को एक एकीकृत स्टेबलाइजर LM7805 पर इकट्ठा किया गया था, 10 μH का एक इंडक्शन और 100 nF का एक कैपेसिटर एक फिल्टर बनाता है जो एनालॉग में स्विच करते समय हस्तक्षेप के प्रवेश को रोकता है। सर्किट. MAX232 लॉजिक लेवल कनवर्टर का उपयोग सीरियल इंटरफ़ेस को लागू करने के लिए किया जाता है। 20x4 या 40x2 के रिज़ॉल्यूशन के साथ हिताची चिपसेट (HD44780) पर आधारित एलसीडी-संकेतक। संकेतक बैकलाइट नियंत्रण इकाई MJE3055T ट्रांजिस्टर पर लागू की गई है (एक सस्ता एनालॉग का उपयोग करना संभव है)। कीबोर्ड मैट्रिक्स, मानक, 4×3।

बिजली चालू होने के बाद, माइक्रोकंट्रोलर EEPROM में अंतिम सहेजे गए पैरामीटर सेट करता है: PWM चैनल नियंत्रण मोड (एनालॉग नियंत्रण, सीरियल इंटरफ़ेस नियंत्रण, कीबोर्ड नियंत्रण), संकेतक पर पैरामीटर डिस्प्ले प्रारूप (सीरियल इंटरफ़ेस नियंत्रण, PWM वैल्यू डिस्प्ले, एनालॉग वैल्यू डिस्प्ले), साथ ही सामान्य प्रयोजन आउटपुट लाइनों की स्थिति, डिस्प्ले बैकलाइट की स्थिति।

पावर-अप के बाद पीडब्लूएम पीढ़ी हमेशा सभी चार चैनलों पर मौजूद रहती है। उपयोगकर्ता नियंत्रण आदेश भेजकर सीरियल इंटरफ़ेस का उपयोग करके पीडब्लूएम नियंत्रक के सभी पैरामीटर सेट कर सकता है, और फिर माइक्रोकंट्रोलर के ईईपीरोम में की गई सभी सेटिंग्स को सहेज सकता है। आदेशों और मानों की पूरी सूची नीचे परिशिष्ट में दी गई है। सीरियल इंटरफ़ेस का उपयोग एनालॉग नियंत्रण चैनलों के वर्तमान मान (अनुरोध पर) भेजने के लिए भी किया जा सकता है।

संकेतक पर, जब आपूर्ति वोल्टेज लागू होता है, तो एक ग्रीटिंग प्रदर्शित होता है (उपयोगकर्ता ग्रीटिंग को बदल सकता है), और फिर, वर्तमान सेटिंग्स के अनुसार, पीडब्लूएम आउटपुट के वर्तमान पैरामीटर और मान प्रदर्शित करता है, मान ​​एनालॉग चैनलों का.

डिवाइस के व्यावहारिक कार्यान्वयन और विभिन्न बाहरी उपकरणों के पीडब्लूएम नियंत्रण के उदाहरण के लिए, निम्नलिखित चित्र दिया गया है। यह उदाहरण एक पंखे की मोटर के 4 पीडब्लूएम चैनलों, परिवार की एक शक्तिशाली एलईडी, एक एलएम358 ऑपरेशनल एम्पलीफायर पर एक पीडब्लूएम-टू-वोल्टेज कनवर्टर से कनेक्ट करने के लिए सर्किट समाधान दिखाता है। और सामान्य प्रयोजन आउटपुट लाइनों के परीक्षण की संभावना के लिए, एलईडी जुड़े हुए हैं।

PWM नियंत्रक के आउटपुट चरणों के कार्यान्वयन का एक उदाहरण

लोड हो रहा है...लोड हो रहा है...