विषयसूची:

Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM नियंत्रण: 4 कदम
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM नियंत्रण: 4 कदम

वीडियो: Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM नियंत्रण: 4 कदम

वीडियो: Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM नियंत्रण: 4 कदम
वीडियो: 37. Arduino for Production! How to Use or Create a PWM (Pulse Width Modulation) Signal 2024, नवंबर
Anonim
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल
Atmega128A आनुपातिक मोटर ड्राइविंग - ATMEL ICE AVR टाइमर UART PWM कंट्रोल

इस निर्देशयोग्य में, मैं आपको समझाता हूँ कि कैसे

  • पीडब्लूएम के साथ डीसी मोटर को नियंत्रित करें
  • UART. के माध्यम से संवाद करें
  • हैंडल टाइमर इंटरप्ट्स

सबसे पहले, हम एक AVR कोर सिस्टम डेवलपमेंट बोर्ड का उपयोग करेंगे जिसे आप Aliexpress पर लगभग 4 USD के आसपास पा सकते हैं। डेवलपमेंट बोर्ड लिंक यहाँ है। हम अपने सॉफ़्टवेयर को प्रोग्राम और डीबग करने के लिए Atmel ICE डीबगर और Atmel स्टूडियो का भी उपयोग करेंगे।

चरण 1: डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड

डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड
डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड
डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड
डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड
डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड
डेटाशीट और सोर्स कोड में डीप डाइविंग - क्लॉक स्पीड

1. बुलेट में हम अपनी क्रिस्टल आवृत्ति को परिभाषित करते हैं जहां हम विकास बोर्ड पर देख सकते हैं

चरण 2: यूएआरटी रजिस्टर सेट करना

यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना
यूएआरटी रजिस्टरों की स्थापना

UART के साथ संवाद करने के लिए आपको USART बॉड दर रजिस्टर - UBRRnL और UBRRnH को सही ढंग से सेट करना होगा, आप इसकी गणना स्वयं कर सकते हैं या आप आसानी से सही मान प्राप्त करने के लिए ऑनलाइन कैलकुलेटर का उपयोग कर सकते हैं।

ऑनलाइन कैलकुलेटर

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

तो MYUBBR मान की गणना की जाती है, रजिस्टर UCSR0B में हम RXEN0 (recv सक्षम) TXEN0 (ट्रांसमिट सक्षम) और RXCIE0 (इंटरप्ट के लिए RX) को सक्षम करते हैं। UCSR0C रजिस्टर में हम 8 बिट चार आकार का चयन करते हैं।

RX इंटरप्ट बिट सेट करने के बाद, हमें USART0_RX_vect. के लिए ISR फ़ंक्शन जोड़ना चाहिए

ISR (USART0_RX_vect) {चार rcvChar = UDR0; अगर (आरसीवीचार! = '\ n') {बफर [बफर इंडेक्स] = आरसीवीचर; बफरइंडेक्स++; } }

आपको अपने इंटरप्ट सर्विस रूटीन में कोई व्यावसायिक तर्क नहीं करना चाहिए। आपको फ़ंक्शन को जल्द से जल्द वापस करना होगा।

चरण 3: पीडब्लूएम सेटिंग्स

पीडब्लूएम सेटिंग्स
पीडब्लूएम सेटिंग्स

फ़ंक्शन initPWM में हम अपने CPU क्लॉक स्केलर, टाइमर/काउंटर मोड को फास्ट PWM के रूप में सेट करते हैं और COM बिट्स के साथ इसका व्यवहार सेट करते हैं

हमें DC मोटर को OC2 पिन से भी जोड़ना चाहिए जो कि तालिका 66 में निर्दिष्ट है। हमारे डेटाशीट में आउटपुट मोड, फास्ट PWM मोड की तुलना करें, आप यह भी देखेंगे कि OC2 पिन (OC2 / OC1C) PB7 है

चरण 4: परिणाम

नतीजा
नतीजा
नतीजा
नतीजा

जब आप अटैचमेंट में सोर्स कोड अपलोड करते हैं।

डीसी मोटर की गति निर्धारित करने के लिए आप UART (आप arduino सीरियल पोर्ट टर्मिनल का उपयोग कर सकते हैं) से एक नया PWM मान (0-255) दर्ज कर सकते हैं।

सिफारिश की: