فهرست مطالب:

رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Step
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Step

تصویری: رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Step

تصویری: رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Step
تصویری: تشخیص ابعاد ماشین در رانندگی 2024, نوامبر
Anonim
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control
رانندگی متناسب Atmega128A - ATMEL ICE AVR Timer UART PWM Control

در این دستورالعمل ، من نحوه انجام آن را برای شما توضیح خواهم داد

  • کنترل موتور DC با PWM
  • ارتباط از طریق UART
  • وقفه های تایمر را کنترل کنید

اول از همه ، ما از یک هیئت مدیره توسعه سیستم AVR Core استفاده می کنیم که می توانید آن را در Aliexpress حدود 4 دلار پیدا کنید. پیوند هیئت مدیره توسعه در اینجا است. ما همچنین از برنامه 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 (فعال مجدد) TXEN0 (انتقال فعال) و RXCIE0 (RX برای وقفه) را فعال می کنیم. در ثبت نام UCSR0C اندازه 8 بیت شار را انتخاب می کنیم.

پس از تنظیم بیت وقفه RX ، باید تابع ISR را برای USART0_RX_vect اضافه کنیم

ISR (USART0_RX_vect) {char rcvChar = UDR0؛ if (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar؛ bufferIndex ++؛ }}

نباید در روال سرویس وقفه خود منطق تجاری انجام دهید. شما باید تابع را در اسرع وقت برگردانید.

مرحله 3: تنظیمات PWM

تنظیمات PWM
تنظیمات PWM

در تابع initPWM ما مقیاس پردازنده ساعت CPU ، حالت تایمر/شمارنده را به عنوان PWM سریع تنظیم می کنیم و رفتار آن را با بیت های COM تنظیم می کنیم

ما همچنین باید موتور DC را به پین OC2 که در جدول 66 مشخص شده است متصل کنیم. حالت خروجی ، حالت سریع PWM را در برگه اطلاعات ما مقایسه کنید ، همچنین خواهید دید که پین OC2 (OC2/OC1C) PB7 است.

مرحله 4: نتیجه گیری

نتیجه
نتیجه
نتیجه
نتیجه

وقتی کد منبع را در پیوست بارگذاری می کنید.

می توانید یک مقدار PWM جدید (0-255) را از UART (می توانید از ترمینال پورت سریال arduino استفاده کنید) برای تنظیم سرعت موتور DC وارد کنید.

توصیه شده: