विषयसूची:
- चरण 1: विवरण
- चरण 2: एवीआर टाइमर - पीडब्लूएम मोड
- चरण 3: प्रकाश तीव्रता मापन - एडीसी और एलडीआर।
- चरण 4: नियंत्रक डीसी मोटर और दोहरी एच-ब्रिज मोटर चालक मॉड्यूल-एल२९८एन
- चरण 5: सी में एक प्रोग्राम के लिए कोड लिखना। माइक्रोकंट्रोलर फ्लैश मेमोरी में एचईएक्स फ़ाइल अपलोड करना
- चरण 6: विद्युत सर्किट
वीडियो: एवीआर माइक्रोकंट्रोलर। पल्स चौड़ाई उतार - चढ़ाव। डीसी मोटर और एलईडी लाइट की तीव्रता का नियंत्रक: ६ कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
सभी को नमस्कार!
पल्स चौड़ाई मॉडुलन (पीडब्लूएम) दूरसंचार और बिजली नियंत्रण में एक बहुत ही सामान्य तकनीक है। यह आमतौर पर एक विद्युत उपकरण को खिलाई गई शक्ति को नियंत्रित करने के लिए उपयोग किया जाता है, चाहे वह मोटर, एलईडी, स्पीकर आदि हो। यह मूल रूप से एक मॉड्यूलेशन तकनीक है, जिसमें वाहक पल्स की चौड़ाई एनालॉग संदेश सिग्नल के अनुसार भिन्न होती है।.
हम प्रकाश की तीव्रता पर निर्भर डीसी मोटर की घूर्णी गति को नियंत्रित करने के लिए सरल विद्युत परिपथ बनाते हैं। हम प्रकाश की तीव्रता को मापने के लिए लाइट डिपेंडेंट रेसिस्टर और AVR माइक्रोकंट्रोलर सुविधाओं जैसे एनालॉग से डिजिटल रूपांतरण का उपयोग करने जा रहे हैं। साथ ही हम डुअल एच-ब्रिज मोटर ड्राइवर मॉड्यूल-एल२९८एन का उपयोग करने जा रहे हैं। यह आमतौर पर मोटर्स की गति और दिशा को नियंत्रित करने के लिए उपयोग किया जाता है, लेकिन इसका उपयोग अन्य परियोजनाओं के लिए किया जा सकता है जैसे कि कुछ प्रकाश परियोजनाओं की चमक को चलाना। इसके अलावा, इंजन के रोटेशन की दिशा को चालू करने के लिए हमारे सर्किट में एक बटन जोड़ा।
चरण 1: विवरण
इस संसार के प्रत्येक शरीर में कुछ न कुछ जड़ता है। जब भी इसे चालू किया जाता है तो मोटर घूमता है। जैसे ही इसे बंद किया जाता है, यह बंद हो जाएगा। लेकिन यह तुरंत नहीं रुकता, इसमें कुछ समय लगता है। लेकिन इससे पहले कि यह पूरी तरह से बंद हो जाए, इसे फिर से चालू किया जाता है! इस प्रकार यह हिलना शुरू कर देता है। लेकिन अभी भी इसे अपनी पूरी गति तक पहुंचने में कुछ समय लगता है। लेकिन ऐसा होने से पहले, इसे बंद कर दिया जाता है, इत्यादि। इस प्रकार, इस क्रिया का समग्र प्रभाव यह है कि मोटर लगातार घूमती है, लेकिन कम गति से।
पल्स चौड़ाई मॉडुलन (पीडब्लूएम) पूरी तरह से चालू और पूरी तरह से बंद स्तरों के बीच विद्युत शक्ति की मध्यवर्ती मात्रा प्रदान करने के लिए तुलनात्मक रूप से हालिया पावर स्विचिंग तकनीक है। आमतौर पर, डिजिटल पल्स की ऑन और ऑफ टाइम अवधि समान होती है, लेकिन कुछ स्थितियों में हमें समय/ऑफटाइम पर अधिक/कम करने के लिए डिजिटल पल्स की आवश्यकता होती है। पीडब्लूएम तकनीक में, हम आवश्यक मध्यवर्ती वोल्टेज मान प्राप्त करने के लिए असमान मात्रा में चालू और बंद राज्य के साथ डिजिटल दालों का निर्माण करते हैं।
कर्तव्य चक्र एक पूर्ण डिजिटल पल्स में उच्च वोल्टेज अवधि के प्रतिशत द्वारा परिभाषित किया गया है। इसकी गणना निम्न द्वारा की जा सकती है:
ड्यूटी चक्र का% = टी ऑन / टी (अवधि समय) x 100
आइए एक समस्या कथन लेते हैं। हमें ४५% कर्तव्य चक्र वाले ५० हर्ट्ज पीडब्लूएम सिग्नल उत्पन्न करने की आवश्यकता है।
आवृत्ति = ५० हर्ट्ज
समय अवधि, टी = टी (चालू) + टी (बंद) = 1/50 = 0.02 एस = 20 एमएस
कर्तव्य चक्र = ४५%
इस प्रकार, ऊपर दिए गए समीकरण के अनुसार हल करने पर, हम प्राप्त करते हैं
टी (ऑन) = 9 एमएस
टी (बंद) = 11 एमएस
चरण 2: एवीआर टाइमर - पीडब्लूएम मोड
PWM बनाने के लिए, AVR में अलग हार्डवेयर होता है! इसका उपयोग करके, CPU हार्डवेयर को एक विशेष कर्तव्य चक्र के PWM का उत्पादन करने का निर्देश देता है। ATmega328 में 6 PWM आउटपुट हैं, 2 टाइमर/काउंटर0 (8बिट) पर स्थित हैं, 2 टाइमर/काउंटर1 (16बिट) पर स्थित हैं, और 2 टाइमर/काउंटर2 (8बिट) पर स्थित हैं। Timer/Counter0 ATmega328 पर सबसे सरल PWM डिवाइस है। टाइमर/काउंटर0 3 मोड पर चलने में सक्षम है:
- फास्ट पीडब्लूएम
- चरण और आवृत्ति सही PWM
- चरण सही पीडब्लूएम
इनमें से प्रत्येक मोड उलटा या गैर-उलटा हो सकता है।
PWM मोड में Timer0 को इनिशियलाइज़ करें:
TCCR0A |=(1 << WGM00)|(1 << WGM01) - WGM सेट करें: तेज़ PWM
TCCR0A |= (1 << COM0A1)|(1 << COM0B1) - सेट अप आउटपुट मोड ए, बी की तुलना करें
TCCR0B |= (1 << CS02) - प्रीस्केलर के साथ टाइमर सेट करें = 256
चरण 3: प्रकाश तीव्रता मापन - एडीसी और एलडीआर।
लाइट डिपेंडेंट रेसिस्टर (LDR) एक ट्रांसड्यूसर है जो प्रकाश की सतह पर पड़ने वाले परिवर्तन पर अपना प्रतिरोध बदल देता है।
LDRs अर्धचालक पदार्थों से बनाए जाते हैं ताकि वे अपने प्रकाश संवेदनशील गुणों को प्राप्त कर सकें। ये एलडीआर या फोटो रेसिस्टर्स "फोटो कंडक्टिविटी" के सिद्धांत पर काम करते हैं। अब यह सिद्धांत कहता है कि जब भी एलडीआर की सतह पर प्रकाश गिरता है (इस मामले में) तत्व का प्रवाहकत्त्व बढ़ जाता है या दूसरे शब्दों में एलडीआर की सतह पर प्रकाश गिरने पर एलडीआर का प्रतिरोध कम हो जाता है। एलडीआर के प्रतिरोध में कमी की यह संपत्ति हासिल की जाती है क्योंकि यह सतह पर उपयोग की जाने वाली अर्धचालक सामग्री की संपत्ति है। प्रकाश की उपस्थिति का पता लगाने या प्रकाश की तीव्रता को मापने के लिए एलडीआर का अधिकतर उपयोग किया जाता है।
बाहरी निरंतर सूचना (एनालॉग सूचना) को डिजिटल/कंप्यूटिंग सिस्टम में स्थानांतरित करने के लिए, हमें उन्हें पूर्णांक (डिजिटल) मानों में परिवर्तित करना होगा। इस प्रकार का रूपांतरण एनालॉग टू डिजिटल कन्वर्टर (ADC) द्वारा किया जाता है। एनालॉग वैल्यू को डिजिटल वैल्यू में बदलने की प्रक्रिया को एनालॉग से डिजिटल रूपांतरण के रूप में जाना जाता है। संक्षेप में, एनालॉग सिग्नल ध्वनि और प्रकाश की तरह हमारे आस-पास के वास्तविक विश्व सिग्नल हैं।
डिजिटल सिग्नल डिजिटल या संख्यात्मक प्रारूप में एनालॉग समकक्ष होते हैं जिन्हें माइक्रोकंट्रोलर जैसे डिजिटल सिस्टम द्वारा अच्छी तरह से समझा जाता है। एडीसी एक ऐसा हार्डवेयर है जो एनालॉग सिग्नल को मापता है और उसी सिग्नल के डिजिटल समकक्ष का उत्पादन करता है। AVR माइक्रोकंट्रोलर में एनालॉग वोल्टेज को पूर्णांक में बदलने के लिए ADC सुविधा अंतर्निहित है। AVR इसे 0 से 1023 की रेंज के 10-बिट नंबर में बदल देता है।
हम प्रकाश की तीव्रता को मापने के लिए एलडीआर के साथ विभक्त सर्किट से वोल्टेज स्तर के एनालॉग से डिजिटल कन्वर्ट का उपयोग करते हैं।
एडीसी प्रारंभ करें:
TADCSRA |= (1<<ADEN) - ADC सक्षम करें
ADCSRA |= (1<<ADPS2)| (१<<एडीपीएस१)| (1ADPS0) - ADC प्रीस्केलर सेट करें = 128
ADMUX = (1 << REFS0) - वोल्टेज संदर्भ सेट करें = AVCC; - इनपुट चैनल सेट करें = ADC0
एडीसी एवीआर माइक्रोकंट्रोलर के विस्तृत विवरण के साथ वीडियो देखें: एवीआर माइक्रोकंट्रोलर। प्रकाश तीव्रता मापन। एडीसी और एलडीआर
चरण 4: नियंत्रक डीसी मोटर और दोहरी एच-ब्रिज मोटर चालक मॉड्यूल-एल२९८एन
हम डीसी मोटर ड्राइवरों का उपयोग करते हैं क्योंकि माइक्रोकंट्रोलर सामान्य रूप से 100 मिलीमीटर से अधिक नहीं करंट देने में सक्षम नहीं हैं। माइक्रोकंट्रोलर स्मार्ट हैं लेकिन मजबूत नहीं हैं; यह मॉड्यूल उच्च शक्ति डीसी मोटर्स को चलाने के लिए माइक्रोकंट्रोलर में कुछ मांसपेशियों को जोड़ देगा। यह 2 डीसी मोटर्स को एक साथ 2 एम्पीयर या एक स्टेपर मोटर तक नियंत्रित कर सकता है। हम PWM का उपयोग करके गति को नियंत्रित कर सकते हैं और मोटर्स की इसकी घूर्णी दिशा भी। इसके अलावा, यह एलईडी टेप की चमक को चलाने के लिए उपयोग किया जाता है।
पिन विवरण:
OUT1 और OUT2 पोर्ट, जो DC मोटर को जोड़ने के लिए है। एलईडी टेप को जोड़ने के लिए OUT3 और OUT4।
ENA और ENB सक्षम पिन हैं: ENA को उच्च (+5V) से जोड़कर यह पोर्ट OUT1 और OUT2 को सक्षम बनाता है।
यदि आप ENA पिन को लो (GND) से जोड़ते हैं, तो यह OUT1 और OUT2 को निष्क्रिय कर देता है। इसी तरह, ENB और OUT3 और OUT4 के लिए।
IN1 से IN4 इनपुट पिन हैं जो AVR से जुड़े होंगे।
यदि IN1-high(+5V), IN2-low(GND), OUT1 ऊंचा हो जाता है और OUT2 कम हो जाता है, इस प्रकार हम मोटर चला सकते हैं।
यदि IN3-high(+5V), IN4-low(GND), OUT4 ऊंचा हो जाता है और OUT3 कम हो जाता है, इस प्रकार एलईडी टेप लाइट चालू है।
यदि आप मोटर की घूर्णी दिशा को उलटना चाहते हैं तो IN1 और IN2 ध्रुवीयता को उल्टा करें, इसी तरह IN3 और IN4 के लिए।
ENA और ENB पर PWM सिग्नल लगाकर आप दो अलग-अलग आउटपुट पोर्ट पर मोटर्स की गति को नियंत्रित कर सकते हैं।
बोर्ड नाममात्र के लिए 7V से 12V तक स्वीकार कर सकता है।
जंपर्स: तीन जम्पर पिन होते हैं; जम्पर १: यदि आपको मोटर की १२वी से अधिक आपूर्ति की आवश्यकता है तो आपको जम्पर १ को डिस्कनेक्ट करना होगा और १२वी टर्मिनल पर वांछित वोल्टेज (अधिकतम ३५वी) लगाना होगा। 5V टर्मिनल पर एक और 5V आपूर्ति और इनपुट लाओ। हाँ, यदि आपको 12V से अधिक (जम्पर 1 हटा दिया जाता है) लगाने की आवश्यकता है, तो आपको 5V इनपुट करना होगा।
5V इनपुट IC के समुचित कार्य के लिए है, क्योंकि जम्पर को हटाने से इन-बिल्ट 5V रेगुलेटर निष्क्रिय हो जाएगा और 12V टर्मिनल से उच्च इनपुट वोल्टेज से रक्षा होगी।
5V टर्मिनल आउटपुट के रूप में कार्य करता है यदि आपकी आपूर्ति 7V से 12V के बीच है और यदि आप 12V से अधिक लागू करते हैं तो इनपुट के रूप में कार्य करता है और जम्पर हटा दिया जाता है।
जम्पर २ और जम्पर ३: यदि आप इन दो जंपर्स को हटाते हैं तो आपको माइक्रोकंट्रोलर से सक्षम और अक्षम सिग्नल को इनपुट करना होगा, अधिकांश उपयोगकर्ता दो जंपर्स को हटाना और माइक्रोकंट्रोलर से सिग्नल को लागू करना पसंद करते हैं।
यदि आप दो जंपर्स रखते हैं तो OUT1 से OUT4 तक हमेशा सक्षम रहेगा। OUT1 और OUT2 के लिए ENA जम्पर याद रखें। OUT3 और OUT4 के लिए ENB जम्पर।
चरण 5: सी में एक प्रोग्राम के लिए कोड लिखना। माइक्रोकंट्रोलर फ्लैश मेमोरी में एचईएक्स फ़ाइल अपलोड करना
एकीकृत विकास मंच - एटमेल स्टूडियो का उपयोग करके सी कोड में एवीआर माइक्रोकंट्रोलर एप्लिकेशन लिखना और बनाना।
#ifndef F_CPU#परिभाषित F_CPU 16000000UL // कंट्रोलर क्रिस्टल फ़्रीक्वेंसी (16 मेगाहर्ट्ज AVR ATMega328P) #endif
#include // हैडर पिन पर डेटा प्रवाह नियंत्रण को सक्षम करने के लिए। पिन, पोर्ट आदि को परिभाषित करता है। #include //header प्रोग्राम में डिले फंक्शन को इनेबल करने के लिए
#define BUTTON1 2 // बटन स्विच पोर्ट B पिन 2 से जुड़ा है
// Timer0, PWM इनिशियलाइज़ेशन शून्य टाइमर0_init () {// टाइमर OC0A, OC0B पिन को टॉगल मोड और CTC मोड में सेट करें TCCR0A |= (1 << COM0A1)|(1 << COM0B1)|(1 << WGM00)| (1 << WGM01); // प्रीस्केलर के साथ टाइमर सेट करें = 256 TCCR0B | = (1 << CS02); // इनिशियलाइज़ काउंटर TCNT0 = 0; // आरंभिक तुलना मूल्य OCR0A = 0; }
// ADC आरंभीकरण शून्य ADC_init () {// ADC सक्षम करें, नमूनाकरण freq=osc_freq/128 प्रीस्केलर को अधिकतम मान पर सेट करें, 128 ADCSRA |= (1<<ADEN) | (१<<एडीपीएस२)| (1<< ADPS1)| (१<<एडीपीएस०);
ADMUX = (1<<REFS0); // वोल्टेज संदर्भ (AVCC) का चयन करें
// बटन स्विच स्थिति अहस्ताक्षरित चार बटन_स्टेट () {
/* बटन दबाया जाता है जब BUTTON1 बिट स्पष्ट होता है */
अगर (!(पिनब और (1<.)
{
_delay_ms (DEBOUNCE_TIME);
अगर (!(पिनब और (1<.)
}
वापसी 0;
}
// पोर्ट्स इनिशियलाइज़ेशन शून्य port_init () {DDRB =0b00011011; // PB0-IN1, PB1-IN2, PB3-IN3, PB4-IN4, PB2 - बटन स्विच डायरेक्ट PORTB = 0b00010110;
डीडीआरडी = 0b01100000; // PD5-ENB (OC0B), PD6-ENA (OC0A) PORTD = 0b00000000;
डीडीआरसी = 0b00000000; // PC0-ADC PORTC = 0b00000000; // PORTC के सभी पिन कम सेट करें जो इसे बंद कर देता है। }
// यह फ़ंक्शन एनालॉग से डिजिटल कन्वर्ट के मान को पढ़ता है। uint16_t get_LightLevel() { _delay_ms(10); // चैनल के चयनित होने के लिए कुछ समय प्रतीक्षा करें ADCSRA |= (1<<ADSC); // ADSC बिट सेट करके ADC रूपांतरण शुरू करें। एडीएससी को 1 लिखें
जबकि (एडीसीएसआरए और (1<<एडीएससी)); // रूपांतरण पूरा होने की प्रतीक्षा करें
// ADSC तब तक फिर से 0 हो जाता है, लगातार लूप चलाएं _delay_ms(10); वापसी (एडीसी); // 10-बिट परिणाम लौटाएं
}
// यह फ़ंक्शन किसी संख्या को एक श्रेणी (0-1023) से दूसरी (0-100) में फिर से मैप करता है। uint32_t नक्शा (uint32_t x, uint32_t in_min, uint32_t in_max, uint32_t out_min, uint32_t out_max) {वापसी (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
मुख्य अंतर (शून्य)
{ uint16_t i1=0;
पोर्ट_इनिट ();
टाइमर0_इनिट (); एडीसी_इनिट (); // आरंभीकरण एडीसी
जबकि (1)
{i1 = नक्शा (get_LightLevel (), 0, 1023, 0, 100);
OCR0A = i1; // आउटपुट सेट करें रजिस्टर चैनल A OCR0B = 100-i1 की तुलना करें; // आउटपुट सेट करें रजिस्टर चैनल बी की तुलना करें (उलटा)
if (button_state ()) // यदि बटन दबाया जाता है, तो LED की स्थिति को टॉगल करें और 300ms (#define LOCK_INPUT_TIME) { PORTB ^= (1<<0); // पिन IN1 की वर्तमान स्थिति को टॉगल करना। PORTB ^= (1<<1); // पिन IN2 की वर्तमान स्थिति को टॉगल करना। मोटर की घूर्णी दिशा को उलट दें
PORTB ^= (1<<3); // पिन IN3 की वर्तमान स्थिति को टॉगल करना। PORTB ^= (1<<4); // पिन IN4 की वर्तमान स्थिति को टॉगल करना। एलईडी टेप बंद/चालू है। _delay_ms (LOCK_INPUT_TIME); } }; वापसी (0); }
प्रोग्रामिंग पूरी हो गई है। अगला, प्रोजेक्ट कोड को हेक्स फ़ाइल में बनाना और संकलित करना।
माइक्रोकंट्रोलर फ्लैश मेमोरी में एचईएक्स फ़ाइल अपलोड करना: डॉस प्रॉम्प्ट विंडो में टाइप करें कमांड:
avrdude –c [प्रोग्रामर का नाम] –p m328p –u –U फ़्लैश: w: [आपकी हेक्स फ़ाइल का नाम]
मेरे मामले में यह है:
avrdude –c ISPProgv1 –p m328p –u –U फ़्लैश:w:PWM.hex
यह कमांड माइक्रोकंट्रोलर की मेमोरी में हेक्स फाइल लिखता है। माइक्रोकंट्रोलर फ्लैश मेमोरी बर्निंग के विस्तृत विवरण के साथ वीडियो देखें: माइक्रोकंट्रोलर फ्लैश मेमोरी बर्निंग…
ठीक! अब, माइक्रोकंट्रोलर हमारे कार्यक्रम के निर्देशों के अनुसार काम करता है। चलो पता करते हैं!
चरण 6: विद्युत सर्किट
योजनाबद्ध आरेख के अनुसार घटकों को कनेक्ट करें।
सिफारिश की:
Visuino एलईडी की चमक बदलने के लिए पल्स चौड़ाई मॉड्यूलेशन (PWM) का उपयोग कैसे करें: 7 कदम
एक एलईडी की चमक को बदलने के लिए पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) का उपयोग कैसे करें: इस ट्यूटोरियल में हम पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) का उपयोग करके इसकी चमक को बदलने के लिए Arduino UNO और Visuino से जुड़ी एक एलईडी का उपयोग करेंगे। एक प्रदर्शन वीडियो देखें।
एलईडी का उपयोग करके पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) के लिए विसुइनो रैमपीएस: 8 कदम
पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) एलईडी का उपयोग करने के लिए विसुइनो रैमपीएस: इस ट्यूटोरियल में हम पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) और रैंप घटक का उपयोग करके एलईडी को मंद करने के लिए Arduino UNO और Visuino से जुड़ी एक एलईडी का उपयोग करेंगे। एक प्रदर्शन वीडियो देखें।
डीसी से डीसी बक कन्वर्टर DIY -- डीसी वोल्टेज को आसानी से कैसे कम करें: 3 कदम
डीसी से डीसी बक कन्वर्टर DIY || डीसी वोल्टेज को आसानी से कैसे कम करें: एक हिरन कनवर्टर (स्टेप-डाउन कनवर्टर) एक डीसी-टू-डीसी पावर कन्वर्टर है जो अपने इनपुट (आपूर्ति) से अपने आउटपुट (लोड) तक वोल्टेज (वर्तमान को आगे बढ़ाते हुए) को नीचे ले जाता है। यह स्विच्ड-मोड बिजली आपूर्ति (एसएमपीएस) का एक वर्ग है जिसमें आमतौर पर कम से कम
पीडब्लूएम डीसी मोटर स्पीड एंड लाइट कंट्रोल - डीसी डिमर: 7 कदम
पीडब्लूएम डीसी मोटर स्पीड एंड लाइट कंट्रोल | डीसी डिमर: आज इस वीडियो में मैं आपको दिखाने जा रहा हूं कि कैसे रोशनी कम करें, डीसी या डायरेक्ट करंट में मोटर की गति को नियंत्रित करें तो चलिए शुरू करते हैं
पल्स चौड़ाई संशोधित एलईडी मशाल: 8 कदम
पल्स चौड़ाई मॉड्यूलेटेड एलईडी टॉर्च: पल्स चौड़ाई मॉड्यूलेशन (पीडब्लूएम) का उपयोग कई उपकरणों की शक्ति, गति या चमक को बदलने के लिए किया जा सकता है। एल ई डी के साथ, पीडब्लूएम का उपयोग उन्हें मंद करने, या उन्हें उज्जवल बनाने के लिए किया जा सकता है। मैं उनका उपयोग हाथ से एक छोटी मशाल बनाने के लिए करूंगा। एक एलईडी को जल्दी से चालू करके और मंद किया जा सकता है