فهرست مطالب:
- مرحله 1: سخت افزار و نرم افزار مورد نیاز
- مرحله 2: پیکربندی STM32CubeMX
- مرحله 3: کدگذاری Keil UVision
- مرحله 4: نتیجه:)
![سرو موتور کنترل با STM32F4 ARM MCU: 4 مرحله سرو موتور کنترل با STM32F4 ARM MCU: 4 مرحله](https://i.howwhatproduce.com/images/002/image-5731-22-j.webp)
تصویری: سرو موتور کنترل با STM32F4 ARM MCU: 4 مرحله
![تصویری: سرو موتور کنترل با STM32F4 ARM MCU: 4 مرحله تصویری: سرو موتور کنترل با STM32F4 ARM MCU: 4 مرحله](https://i.ytimg.com/vi/ntRW77mNFFk/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
![سرو موتور کنترل با STM32F4 ARM MCU سرو موتور کنترل با STM32F4 ARM MCU](https://i.howwhatproduce.com/images/002/image-5731-23-j.webp)
![سرو موتور کنترل با STM32F4 ARM MCU سرو موتور کنترل با STM32F4 ARM MCU](https://i.howwhatproduce.com/images/002/image-5731-24-j.webp)
سلام دوباره دوستان:) بنابراین ، در این پروژه ما یک موتور سروو با STM32F4 ARM MCU را کنترل می کنیم. در مورد من ، من از صفحه کشف استفاده خواهم کرد ، اما اگر اصل مشکل را درک کنید ، می توانید آن را برای هر MCU اعمال کنید. بنابراین. بیایید شروع کنیم:)
مرحله 1: سخت افزار و نرم افزار مورد نیاز
از نظر سخت افزاری به موارد زیر نیاز داریم:
- MCU که در مورد من برد کشف STM32f4 است
- یک سروو موتور معمولی ، مانند SG90 یا هر موتور دیگر
از نظر نرم افزاری به موارد زیر نیاز داریم:
- STM32CubeMX
- Keil uVision
اگر همه این موارد را دارید ، به مرحله بعدی بروید:)
مرحله 2: پیکربندی STM32CubeMX
همانطور که می دانید ، برای کنترل موتور سروو ما نیاز به سیگنال PWM داریم. شرایط مورد نیاز از نظر سیگنال PWM به شرح زیر است:
- دوره PWM باید 20 میلی ثانیه باشد
- در زمان باید بین 0.5 میلی ثانیه تا 2.5 میلی ثانیه باشد. هنگامی که به موقع 0.5 میلی ثانیه باشد ، سروو 0 درجه ، 1.5 میلی ثانیه برای 90 درجه و 2.5 میلی ثانیه برای 180 درجه می چرخد.
بنابراین ، ما باید PWM را پیکربندی کنیم و برای این منظور از Timer1 استفاده می کنیم.
- ابتدا TIM1 را از قسمت Timers انتخاب کنید. این مرحله
-
سپس ، از بخش حالت
- ساعت داخلی را انتخاب کنید این مرحله
- PWM Generation CH1 این مرحله
-
سپس ، از بخش پیکربندی
- در این مرحله Prescaler را روی 160 تنظیم کنید
- در این مرحله Counter Period را روی 2000 تنظیم کنید
- در این مرحله Pulse را روی 50 تنظیم کنید
- علاوه بر این ، از تنظیمات ساعت ، ساعت های APB1 Timer را روی 16 مگاهرتز تنظیم کنید. این مرحله
حالا بیایید کمی در مورد این مرحله صحبت کنیم:
فرکانس ساعت APB1 Timer ما 16 مگاهرتز است. بنابراین ، به این معنی است که برای بدست آوردن 1 ثانیه به 16،000 ، 000 کنه نیاز است. با این حال ، ما پیش فروش خود را روی 160 تنظیم کردیم. بدین معنی که ما فرکانس خود را بر این عدد تقسیم می کنیم و تعداد کنه ها را به 100000 کاهش می دهیم. بنابراین ، برای 1 ثانیه به 100،000 کنه نیاز داریم. با این حال ، ما همانطور که قبلاً بیان کردیم به 20 میلی ثانیه دوره PWM نیاز داریم. بنابراین ، بر اساس ریاضیات ساده ، ما به 2000 تیک برای 20mS نیاز داریم. بنابراین ، با تنظیم Counter Period روی 2000 ، دوره سیگنال PWM را که 20mS است تعیین می کنیم. در حال حاضر ما باید شماره تیک را برای زمانهای دریافت از 0.5mS تا 2.5mS تعیین کنیم. ما می توانیم این معادله را از ریاضیات ساده بدست آوریم و این است:
On_Time = (Tick_Number / 100). به خاطر داشته باشید که این زمان روشن است که زاویه سروو موتور را تغییر می دهد. بنابراین ، در زیر تصویر ، این مرحله را خلاصه می کنم. اگر سوالی داشتید در نظرات بنویسید و من در اسرع وقت پاسخ خواهم داد.
تصویر محاسبات
بعد از انجام همه اینها کد تولید کنید:)
مرحله 3: کدگذاری Keil UVision
بنابراین ، بیایید ابتدا تعیین کنیم که می خواهیم چه کار کنیم؟ ما می خواهیم یک تابع بنویسیم که درجه را بپذیرد و آن را به سروو بنویسیم. بنابراین ، چگونه این کار را خواهیم کرد؟ همانطور که قبلاً گفتیم ، برای تغییر زاویه ، باید زمان را تغییر دهیم. زوایای ما بین [0 ، 180] و تعداد کنه های ما که به موقع تعیین می شود بین [50 ، 250] تغییر می کند. بنابراین ، ما به یک تابع نقشه برداری نیاز داریم که زاویه داده شده را به محدوده تعداد تیک ها ترسیم کند. به عنوان مثال ، برای کنه 0 درجه 50 ، برای کنه 180 درجه 250 و غیره … بنابراین بیایید تابع نقشه برداری خود را بنویسیم:
int int (int st1، int fn1، int st2، int fn2، int value) {return (1.0*(value-st1))/((fn1-st1)*1.0)*(fn2-st2)+st2؛ }
این تابع نقشه برداری ما است. آیا می دانید چگونه مشتق شده است؟ سپس آن را بخوانید. بنابراین ، محدوده ها و مقداری را که می خواهیم ترسیم کنیم ، در نظر می گیریم.
حال ، بیایید یک تابع بنویسیم که زاویه را بپذیرد و آن را در محدوده تیک ها ترسیم کند:
void servo_write (int angle) {htim1. Instance-> CCR1 = map (0، 180، 50، 250، angle)؛ }
همانطور که مشاهده می کنید ، این کد زاویه را می پذیرد و آن را در محدوده تعداد تیک ها ترسیم می کند. سپس ، تعداد کنه ها به ثبت CCR1 داده می شود که زاویه به موقع و غیره را کنترل می کند.
با این حال ، برای اینکه همه اینها کار کنند ، ابتدا pwm را شروع می کنیم که فقط با یک خط کد قابل انجام است:
HAL_TIM_PWM_Start (& htim1 ، TIM_CHANNEL_1) ؛
بنابراین ، ما یک تابع داریم که زاویه را می پذیرد و آن را به سروو می نویسد. بیایید آن را آزمایش کرده و تابع رفت و برگشت خود را بنویسیم که بسیار آسان است:
void servo_sweep (void) {for (int i = 0؛ i <= 180؛ i ++) {servo_write (i)؛ HAL_ تاخیر (10) ؛ } برای (int i = 180؛ i> = 0؛ i--) {servo_write (i)؛ HAL_ تاخیر (10) ؛ }}
بنابراین ، فقط تا 180 و سپس تا 0 شمارش کنید و این مقادیر را در سرو بنویسید:) بنابراین ، بیایید نتیجه را ببینیم!
مرحله 4: نتیجه:)
بنابراین ، این پایان است. اگر سوالی دارید لطفا بپرسید. خوشحال می شوم به آنها پاسخ دهم. خیلی ممنون که خواندید و امیدوارم در پروژه بعدی شما را ببینم:)
توصیه شده:
استپر موتور کنترل شده استپر موتور - استپر موتور به عنوان رمزگذار روتاری: 11 مرحله (همراه با تصاویر)
![استپر موتور کنترل شده استپر موتور - استپر موتور به عنوان رمزگذار روتاری: 11 مرحله (همراه با تصاویر) استپر موتور کنترل شده استپر موتور - استپر موتور به عنوان رمزگذار روتاری: 11 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/007/image-20303-j.webp)
استپر موتور کنترل شده استپر موتور | استپر موتور به عنوان رمزگذار روتاری: آیا چند موتور پله ای در اطراف شما خوابیده است و می خواهید کاری انجام دهید؟ در این دستورالعمل ، بیایید از یک موتور پله ای به عنوان یک رمزگذار چرخشی برای کنترل موقعیت یک موتور پله ای دیگر با استفاده از میکروکنترلر آردوینو استفاده کنیم. بنابراین بدون هیچ گونه توضیح بیشتر ، اجازه دهید
نحوه کنترل موتور دنده DC با استفاده از کنترل کننده سرعت الکترونیکی براش 160A و تستر سرو: 3 مرحله
![نحوه کنترل موتور دنده DC با استفاده از کنترل کننده سرعت الکترونیکی براش 160A و تستر سرو: 3 مرحله نحوه کنترل موتور دنده DC با استفاده از کنترل کننده سرعت الکترونیکی براش 160A و تستر سرو: 3 مرحله](https://i.howwhatproduce.com/images/010/image-29433-j.webp)
نحوه کنترل موتور دنده DC با استفاده از کنترلر سرعت الکترونیکی براش 160A و تستر سرو: مشخصات: ولتاژ: 2-3S Lipo یا 6-9 NiMH جریان مداوم: 35A جریان انفجار: 160A BEC: 5V / 1A ، حالتهای خطی: 1. جلو & amp؛ معکوس؛ 2. جلو & amp؛ ترمز؛ 3. جلو & amp؛ ترمز & amp؛ وزن معکوس: 34 گرم اندازه: 42*28*17 میلی متر
نحوه اجرای موتور DC بدون برس بدون کوادکوپتر بدون سرنشین با استفاده از کنترل کننده سرعت موتور HW30A بدون براش و تستر سرو: 3 مرحله
![نحوه اجرای موتور DC بدون برس بدون کوادکوپتر بدون سرنشین با استفاده از کنترل کننده سرعت موتور HW30A بدون براش و تستر سرو: 3 مرحله نحوه اجرای موتور DC بدون برس بدون کوادکوپتر بدون سرنشین با استفاده از کنترل کننده سرعت موتور HW30A بدون براش و تستر سرو: 3 مرحله](https://i.howwhatproduce.com/images/002/image-4143-17-j.webp)
نحوه عملکرد موتور DC بدون جاروبک بدون سرنشین با استفاده از HW30A Brushless Motor Speed Controller و سرو تستر: توضیحات: این دستگاه Servo Motor Tester نام دارد که می توان با استفاده از یک سروو موتور ساده و منبع تغذیه به آن سرو موتور را فعال کرد. این دستگاه همچنین می تواند به عنوان مولد سیگنال برای کنترل کننده سرعت الکتریکی (ESC) استفاده شود ، سپس می توانید
محاسبه سرو موتور موتور Step با کنترل سریال از طریق آردوینو با استفاده از چاپگر سه بعدی - Pt4: 8 مراحل
![محاسبه سرو موتور موتور Step با کنترل سریال از طریق آردوینو با استفاده از چاپگر سه بعدی - Pt4: 8 مراحل محاسبه سرو موتور موتور Step با کنترل سریال از طریق آردوینو با استفاده از چاپگر سه بعدی - Pt4: 8 مراحل](https://i.howwhatproduce.com/images/002/image-3317-43-j.webp)
کپسول سرو سرو موتور با کنترل سریال از طریق آردوینو با استفاده از پرینتر سه بعدی - Pt4: در این فیلم چهارم از سری Motor Step ، ما از آنچه قبلاً آموخته ایم برای ساخت یک سروو موتور استپر با کنترل از طریق ارتباط سریال و واقعی استفاده خواهیم کرد. بازخورد موقعیت با استفاده از یک رمزگذار مقاومتی که توسط آردوینو نظارت می شود. که در
کنترل کننده سرو سرو (تمشک پای): 4 مرحله (همراه با تصاویر)
![کنترل کننده سرو سرو (تمشک پای): 4 مرحله (همراه با تصاویر) کنترل کننده سرو سرو (تمشک پای): 4 مرحله (همراه با تصاویر)](https://i.howwhatproduce.com/images/002/image-4190-84-j.webp)
Maestro Servo Controller (Raspberry Pi): آموزش اولیه نحوه راه اندازی Maestro Servo Controller با Raspberry Pi