فهرست مطالب:

با یک ریزپردازنده AVR یک موتور پله ای رانندگی کنید: 8 مرحله
با یک ریزپردازنده AVR یک موتور پله ای رانندگی کنید: 8 مرحله

تصویری: با یک ریزپردازنده AVR یک موتور پله ای رانندگی کنید: 8 مرحله

تصویری: با یک ریزپردازنده AVR یک موتور پله ای رانندگی کنید: 8 مرحله
تصویری: حرکات زشت سحر قریشی در باشگاه مردانه در دبی#سحرقریشی #امیرتتلو #تتلو #سحر_قریشی 2024, نوامبر
Anonim
با یک ریزپردازنده AVR یک موتور پله ای رانندگی کنید
با یک ریزپردازنده AVR یک موتور پله ای رانندگی کنید

آیا برخی از موتورهای پله ای پخته شده از چاپگرها/درایوهای دیسک/و غیره در اطراف شما وجود دارد؟

برخی با یک اهم سنج ، به دنبال کد راننده ساده روی ریزپردازنده خود ، به دنبال آن خواهید بود.

مرحله 1: استپرها را بشناسید

استپرها را بشناسید
استپرها را بشناسید
استپرها را بشناسید
استپرها را بشناسید

در اصل ، شما باید بفهمید که همه سیم های کوچک به کجا می روند.

اولین قدم این است که بفهمید موتور تک قطبی است یا دوقطبی. برای آشنایی بیشتر با جونز در استپرز و سپس در سایت ایان هریس به دنبال یک روش ساده برای کشف یک موتور ناشناخته باشید. کمی بخوانید ، سپس با من همراه شوید تا قدم به قدم در مورد این موتوری که ارزان خریدم ، شرکت کنید. (آنها در حال حاضر با قیمت 0.99 دلار به فروش می رسند. آنها کوچک ، نسبتاً سبک هستند ، اما گشتاور زیادی ندارند. هنوز نمی دانم برای چه چیزی خوب خواهد بود.)

مرحله 2: زمینه مشترک را پیدا کنید

زمینه مشترک پیدا کنید
زمینه مشترک پیدا کنید
زمینه مشترک پیدا کنید
زمینه مشترک پیدا کنید

بنابراین شما پنج (یا چهار یا شش) سیم دارید. موتور شما دو نیمه خواهد داشت و احتمالاً می توانید با دیدن هر سیم به کدام طرف تعبیر کنید.

اگر فقط به چهار سیم نگاه می کنید ، خوش شانس هستید - این یک موتور دوقطبی است. تنها کاری که باید انجام دهید این است که دریابید کدام دو جفت سیم با هم کار می کنند. اگر موتور تک قطبی یا بیش از 4 سیم دارید ، باید اهم متر خود را خراب کنید. آنچه شما به دنبال آن هستید سیم معمولی (زمینی) برای هر نیمه است. شما می توانید تشخیص دهید که کدام یک در موتور دوقطبی زمین خورده است زیرا دارای نصف مقاومت در برابر هر یک از قطب ها نسبت به قطب های خودشان است. در تصویر یادداشت های من از اتصال سیم به سیم و توجه به مقاومت (یا اگر آنها اصلاً وصل شده اند) نشان داده شده است. می بینید که رنگ سفید پایه سه تایی b/c است و نصف مقاومت آن در برابر قرمز یا آبی نسبت به یکدیگر است. (این موتور عجیب است و روی سیم پیچ آهنربایی بالا ضربه مرکزی ندارد. مثل این است که دوقطبی ، نیمه تک قطبی است. شاید بتوانید از آن برای احساس چرخش در سیم پیچ قرمز-سفید-آبی هنگام مشکی-زرد استفاده کنید سیم پیچ در حال حرکت است.)

مرحله 3: دستور پله را مشخص کنید

دستور پله را مشخص کنید
دستور پله را مشخص کنید

من قصد داشتم این موتور را به صورت دوقطبی سوار کنم ، بنابراین سیم سفید زمین را نادیده می گیرم. من فقط چهار سیم برای نگرانی دارم.

به هر حال ممکن است بخواهید موتور تک قطبی خود را به صورت دوقطبی اجرا کنید ، زیرا از کل سیم پیچ در هر دو مرحله به جای متناوب بین دو نیمه هر سیم پیچ استفاده می کند. سیم پیچ بیشتر = گشتاور بیشتر. جریان را از طریق یک جفت (با توجه به قطبی که انتخاب کرده اید) اجرا کنید و سپس جریان را در جفت دیگر به طور همزمان اجرا کنید. وقتی جفت دوم را وصل می کنید ، ببینید موتور به کدام طرف می چرخد. این را بنویسید. حالا قطبیت را در اولین جفتی که انتخاب کرده اید معکوس کنید. سپس جفت دوم را دوباره وصل کنید و قطبیت آنها نیز معکوس شود. به جهت توجه کنید. از این رو باید بتوانید ترتیب چرخش موتور را در هر دو جهت مشخص کنید. در مثال من ، هر دو در خلاف جهت عقربه های ساعت چرخیدند ، بنابراین قدم گذاشتن در دنباله به همان روشی که من انتخاب کردم ، باعث حرکت CCW موتور می شود.

مرحله 4: استفاده از موتور برای یک درایو آزمایشی

گرفتن موتور برای تست رانندگی
گرفتن موتور برای تست رانندگی

اگر هنوز برای برنامه نویسی ریزپردازنده زیاد آماده نیستید ، می توانید بدتر از Ghetto Development Kit یا هر یک از برنامه نویسان مختلف PIC عمل کنید. سیمها را مستقیماً به میکروپروک خود وصل کرده و با کد زیر بسوزانید:

/* بازی با رانندگی موتورهای پله ای کوچک. */

/ * شامل تابع تأخیر */ #تعریف F_CPU 1000000UL #include/ * پین ها برای ATTiny2313 *// * جهت عقربه های ساعت */ #definine BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define YELLOW _BV (PB3) #تعریف DELAY 200 / * میلی ثانیه بین مراحل * / int main (void) {DDRB = 0xff؛ / * خروجی را در همه پین های B فعال کنید */ PORTB = 0x00؛ / * همه آنها را روی 0v */ تنظیم کنید در حالی که (1) {/ * حلقه اصلی در اینجا */ PORTB = BLUE؛ _delay_ms (DELAY) ؛ PORTB = BLACK؛ _delay_ms (DELAY) ؛ PORTB = قرمز ؛ _delay_ms (DELAY) ؛ PORTB = زرد ؛ _delay_ms (DELAY) ؛ }} آن کد چقدر ساده است؟ واقعا ساده. تنها کاری که انجام می دهد این است که برخی از تعاریف زیبا را ارائه دهد تا بتوانم سیم ها را به جای نام پین آنها از نظر رنگ ارجاع دهم ، و سپس آنها را به ترتیب و با تأخیر قابل تنظیم در بین آنها تغییر می دهد. برای شروع ، من یک تاخیر نیم ثانیه ای بین مراحل را انتخاب کردم. برای مشاهده نتایج ، فیلم کوتاه را مشاهده کنید. اگر واقعاً در حال بازی هستید ، تعداد مراحل در هر چرخه را بشمارید تا وضوح زاویه ای یک مرحله ای موتور را دریابید. (اوه بله. PS. بدون بار در 3.6 ولت به راحتی رانندگی می کند. باتری را در فیلم ببینید.)

مرحله 5: آن را به عقب و جلو بچرخانید

بنابراین شما باید آن را در جهت عقربه های ساعت اجرا کنید. چیز جالب تری هست؟ کمی پاکسازی کد ، و ما می توانیم آن را به جلو و عقب اجرا کنیم. توالی عقربه های ساعت را در یک آرایه قرار دادم تا بتوانید مراحل را با یک حلقه ساده برای قدم بگذارید. حالا می توانید حلقه را بالا یا پایین بچرخانید تا در جهت عقربه های ساعت یا خلاف جهت عقربه های ساعت حرکت کنید.

int main (void) {const uint8_t تاخیر = 50؛ const uint8_t در جهت عقربه های ساعت = {آبی ، مشکی ، قرمز ، زرد} ؛ uint8_t i؛ DDRB = 0xff ؛ / * خروجی را در همه پین های B فعال کنید */ PORTB = 0x00؛ / * همه آنها را روی 0v */ تنظیم کنید (در حالی که (1) {/ * حلقه اصلی در اینجا */ برای (i = 0 ؛ i <= 3؛ i ++) {/ * رنگها را در جهت عقربه های ساعت */ PORTB = در جهت عقربه های ساعت ؛ _delay_ms (تأخیر) ؛ } برای (i = 3 ؛ i> = 0 ؛ i-) { / * از طریق رنگ ccw * / PORTB = در جهت عقربه های ساعت ؛ _delay_ms (تأخیر) ؛ }}} ویدئوی عجیب و غریب را برای پشت و رو کردن ببینید.

گام ششم: من هرگز نيم قدم نمي كنم ، زيرا من نيم قدمي نيستم…

اشعار را کنار بگذارید ، موتور را تا نیمه قدم در جایی که در آن قرار دارد ، قرار دهید. اوج جریان بیشتر ، گشتاور آنی و دو برابر وضوح زاویه ای را بدست می آورید. به طور خلاصه نیم قدم: به جای آبی ، مشکی ، قرمز ، زرد ، موتور را با آبی ، آبی+مشکی ، سیاه ، سیاه+قرمز ، قرمز ، قرمز+زرد ، زرد ، زرد+آبی هدایت می کنید. نتیجه این است که برای نیمی از زمان شما همزمان با هر دو آهن ربا درگیر می شوید. و در زمان هایی که هر دو مجموعه درگیر هستند ، موتور در نیمه راه بین این دو قرار می گیرد ، زاویه بین "مراحل" را کوچک می کند و باعث می شود موتور هموارتر بچرخد. آیا می توانید از ویدیو متوجه شوید؟ مطمئن نیستم … حالا قسمتی از کد که مرحله نیمه را انجام می دهد به این شکل است:

void halfSpepping (تأخیر uint16_t ، جهت uint8_t ) {uint8_t i؛ برای (i = 0 ؛ i <= 3 ؛ i ++) {PORTB = جهت ؛ / * قسمت تک سیم پیچ */ _delay_ms (تأخیر) ؛ PORTB | = جهت [i+1] ؛ / * اضافه کردن در نیمه مرحله */ _delay_ms (تأخیر) ؛ }} اولین فرمان PORTB یک قطب واحد را روی مثبت و بقیه را منفی می گذارد. سپس منتظر می ماند. سپس فرمان دوم PORTB قطب دوم (در سیم پیچ دیگر) را مثبت می کند و هر دو سیم پیچ را برای 1.4 برابر گشتاور (و 2 برابر جریان) درگیر می کند. فهرست کامل برنامه در زیر پیوست شده است. دو آرایه در حال حاضر (در جهت عقربه های ساعت ، خلاف جهت عقربه های ساعت) تعریف شده اند و هر دو دارای 5 عنصر هستند که اجازه ورود i+1 در تابع halfStepping را می دهد.

مرحله 7: درایور موتور را اضافه کنید

درایور موتور اضافه کنید
درایور موتور اضافه کنید
درایور موتور اضافه کنید
درایور موتور اضافه کنید
درایور موتور اضافه کنید
درایور موتور اضافه کنید

تا کنون خیلی خوب.

تنها مشکلی که وجود دارد این است که به نظر نمی رسد موتور آنقدر گشتاور داشته باشد ، که می تواند به این دلیل باشد که ریزپردازنده تنها 50 میلی آمپر پوند در هر پین تولید می کند. قدم بعدی آشکار این است که آن را به راننده موتور وصل کنید تا آب بیشتری به آن برسد. اما کمی فکر می کنم: من فقط آن را با 5 ولت رانندگی می کنم و مقاومت سیم پیچ سیم پیچ 125 اهم است. این بدان معناست که موتور فقط 40 میلی آمپر در هر پین می گیرد و باید توسط تراشه AVR (تند!) رانندگی کند. بنابراین برای افزایش ولتاژ بیشتر موتور ، آن را به یک تراشه SN754410 H-Bridge متصل کردم. مدار بسیار ساده است. هر پین از AVR به یک ورودی می رود و پین های خروجی مربوطه به موتور می روند. تراشه برای بخش منطقی به 5 ولت احتیاج دارد و می تواند ولتاژ بسیار بیشتری را در قسمت موتور بگیرد. اجرای آن با 11.25 ولت (سه باتری 3.6 ولت) کمی کمک کرد. به طور قابل ملاحظه ای گشتاور بیشتری به انگشت من وارد می شود ، اما هنوز یک نیروگاه قدرتمند نیست. هرچند برای موتور کوچکتر از نیکل بد نیست. و در حال حاضر مدار تبدیل به یک راننده دوقطبی موتور دو منظوره عمومی شده است. اضافه شده در 29 نوامبر: موتور را دیشب در 12 ولت برای مدتی روشن کرد و داغ شد. من مطمئن نیستم که این یک مشکل فرکانس طنین انداز بوده است یا به سادگی جریان زیادی برای سیم پیچ ها داشته است. در هر صورت ، اگر این موتور کوچک را با ولتاژهای بزرگتر رانندگی می کنید ، کمی مراقب باشید.

مرحله 8: پایان

خب من چی یاد گرفتم؟ رانندگی با موتور پله ای با AVR (و تراشه H-Bridge) بسیار آسان است ، حتی در حالت نیمه قدم "فانتزی".

هرچند هنوز مطمئن نیستم که با موتورهای پله ای کوچک چه خواهم کرد. هر گونه پیشنهاد؟

توصیه شده: