সুচিপত্র:

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 টি ধাপ
ভিডিও: Микроконтроллеры ATMEL - ATmega128A-AU ... 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 কন্ট্রোল

এই নির্দেশে, আমি আপনাকে ব্যাখ্যা করব কিভাবে

  • PWM দিয়ে একটি ডিসি মোটর নিয়ন্ত্রণ করুন
  • UART এর মাধ্যমে যোগাযোগ করুন
  • হ্যান্ডেল টাইমার বাধা

প্রথমত, আমরা একটি AVR কোর সিস্টেম ডেভেলপমেন্ট বোর্ড ব্যবহার করব যা আপনি Aliexpress এর কাছাকাছি প্রায় 4 USD এ পাবেন। উন্নয়ন বোর্ডের লিঙ্ক এখানে। আমরা আমাদের সফটওয়্যার প্রোগ্রাম এবং ডিবাগ করতে Atmel ICE Debugger এবং Atmel Studio ব্যবহার করব।

ধাপ 1: ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি

ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি
ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি
ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি
ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি
ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি
ডেটশীট এবং সোর্স কোডে গভীর ডাইভিং - ঘড়ির গতি

1. বুলেটে আমরা আমাদের স্ফটিক ফ্রিকোয়েন্সি সংজ্ঞায়িত করি যেখানে আমরা উন্নয়ন বোর্ডে দেখতে পাই

ধাপ 2: UART নিবন্ধন সেট করা

UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা
UART নিবন্ধন সেট করা

UART এর সাথে যোগাযোগ করার জন্য আপনাকে USART Baud Rate Registers - UBRRnL এবং UBRRnH সঠিকভাবে সেট করতে হবে আপনি নিজেই এটি গণনা করতে পারেন অথবা আপনি সহজেই সঠিক মান পেতে অনলাইন ক্যালকুলেটর ব্যবহার করতে পারেন

অনলাইন ক্যালকুলেটর

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

সুতরাং MYUBBR মান গণনা করা হয়, UCSR0B রেজিস্টারে আমরা RXEN0 (recv enable) TXEN0 (transmit Enable) এবং RXCIE0 (RX বিরতিতে) সক্ষম করি। UCSR0C রেজিস্টারে আমরা 8 বিট চার সাইজ নির্বাচন করি

আমরা RX ইন্টারাপ্ট বিট সেট করার পর আমাদের USART0_RX_vect এর জন্য ISR ফাংশন যোগ করা উচিত

ISR (USART0_RX_vect) {char rcvChar = UDR0; যদি (rcvChar! = '\ n') {বাফার [bufferIndex] = rcvChar; বাফার ইন্ডেক্স ++; }}

আপনার বিঘ্নিত পরিষেবা রুটিনে আপনার কোনও ব্যবসায়িক যুক্তি করা উচিত নয়। আপনাকে ফাংশনটি যত তাড়াতাড়ি ফিরিয়ে দিতে হবে।

ধাপ 3: PWM সেটিংস

PWM সেটিংস
PWM সেটিংস

ফাংশন initPWM তে আমরা আমাদের CPU ক্লক স্কেলার, টাইমার/কাউন্টার মোডকে ফাস্ট PWM হিসাবে সেট করি এবং COM বিট দিয়ে এর আচরণ সেট করি

আমাদের ডিসি মোটরকে OC2 পিনের সাথে সংযুক্ত করা উচিত যা টেবিল 66 এ নির্দিষ্ট করা আছে। আমাদের ডেটশীটে আউটপুট মোড, দ্রুত PWM মোডের তুলনা করুন, আপনি দেখতে পাবেন যে OC2 পিন হল (OC2/OC1C) PB7

ধাপ 4: ফলাফল

ফলাফল
ফলাফল
ফলাফল
ফলাফল

যখন আপনি সংযুক্তিতে সোর্স কোড আপলোড করেন।

ডিসি মোটর গতি নির্ধারণ করতে আপনি UART থেকে একটি নতুন PWM মান (0-255) প্রবেশ করতে পারেন (আপনি arduino সিরিয়াল পোর্ট টার্মিনাল ব্যবহার করতে পারেন)।

প্রস্তাবিত: