جدول المحتويات:

قم بقيادة محرك متدرج باستخدام معالج دقيق AVR: 8 خطوات
قم بقيادة محرك متدرج باستخدام معالج دقيق AVR: 8 خطوات

فيديو: قم بقيادة محرك متدرج باستخدام معالج دقيق AVR: 8 خطوات

فيديو: قم بقيادة محرك متدرج باستخدام معالج دقيق AVR: 8 خطوات
فيديو: عرفتوا ليه المترو بيتقلب وبيعمل حوادث شاهد الفيديو للنهايه 2024, يوليو
Anonim
قم بقيادة محرك متدرج باستخدام معالج دقيق AVR
قم بقيادة محرك متدرج باستخدام معالج دقيق AVR

هل حصلت على بعض محركات السائر التي تم مسحها من الطابعات / محركات الأقراص / وما إلى ذلك؟

بعض الفحص باستخدام مقياس الأومتر ، متبوعًا ببعض رمز التشغيل البسيط على المعالج الدقيق الخاص بك وستتقدم بأناقة.

الخطوة 1: تعرف على Steppers

تعرف على Steppers
تعرف على Steppers
تعرف على Steppers
تعرف على Steppers

في الأساس ، ستحتاج إلى معرفة أين تذهب كل الأسلاك الصغيرة.

الخطوة الأولى هي معرفة ما إذا كان محركًا أحادي القطب أو ثنائي القطب. ألقِ نظرة على Jones على Steppers للحصول على خلفية أعمق ، ثم في موقع Ian Harries للحصول على طريقة بسيطة لاكتشاف محرك غير معروف. اقرأ قليلاً ، ثم انضم إلي في جولة حول هذا المحرك الذي حصلت عليه بسعر رخيص. (إنها معروضة للبيع بسعر 0.99 دولارًا أمريكيًا في الوقت الحالي. إنها صغيرة وخفيفة نسبيًا ، ولكن ليس لديها الكثير من عزم الدوران. لا أعرف ما الذي ستكون جيدة له حتى الآن.)

الخطوة الثانية: إيجاد أرضية مشتركة

إيجاد أرضية مشتركة
إيجاد أرضية مشتركة
إيجاد أرضية مشتركة
إيجاد أرضية مشتركة

إذن لديك خمسة (أو أربعة أو ستة) أسلاك. سيحتوي محرك سيارتك على نصفين ، وربما يمكنك معرفة ذلك بمجرد النظر إلى الجانب الذي ينتمي إليه كل سلك.

إذا كنت تنظر فقط إلى أربعة أسلاك ، فأنت محظوظ - إنه محرك ثنائي القطب. كل ما عليك فعله هو معرفة أي زوجين من الأسلاك يلتقيان معًا. إذا كان لديك محرك أحادي القطب ، أو أكثر من 4 أسلاك ، فسيتعين عليك فصل الأومتر. ما تبحث عنه هو السلك (الأرضي) المشترك لكل نصف. يمكنك معرفة أيهما هو الأرض في محرك ثنائي القطب لأنه يحتوي على نصف مقاومة أي من القطبين مقارنة بالقطبين عبر أنفسهم. في الصورة ملاحظاتي من ربط الأسلاك إلى الأسلاك والإشارة إلى المقاومة (أو إذا كانت متصلة على الإطلاق). يمكنك أن ترى أن الأبيض هو الأساس لثلاثي القاع ب / ج ، فهو يحتوي على نصف مقاومة الأحمر أو الأزرق التي يمتلكها كل منهما للآخر. (هذا المحرك غريب ولا يحتوي على نقرة مركزية على ملف المغناطيس العلوي. يبدو الأمر كما لو أنه نصف ثنائي القطب ونصف أحادي القطب. ربما يمكنك استخدام هذا لاستشعار الدوران في الملف الأحمر والأبيض والأزرق عند الأسود والأصفر يتم دفع الملف.)

الخطوة 3: اكتشف الترتيب المتدرج

اكتشف ترتيب الخطوة
اكتشف ترتيب الخطوة

كنت سأقود هذا المحرك باعتباره محركًا ثنائي القطب ، لذا فأنا أتجاهل السلك الأرضي الأبيض. لدي أربعة أسلاك فقط لأقلق بشأنها.

قد ترغب في تشغيل محرك أحادي القطب على شكل ثنائي القطب على أي حال ، لأنه يستخدم الملف بأكمله في كلا المرحلتين بدلاً من التبديل بين نصفي كل ملف. المزيد من الملف = المزيد من عزم الدوران. قم بتشغيل التيار من خلال زوج (مع الإشارة إلى القطبية التي اخترتها) ثم قم بتشغيل التيار من خلال الزوج الآخر في نفس الوقت. عندما تربط الزوج الثاني ، راقب في أي اتجاه يدور المحرك. اكتب هذا. الآن قم بعكس قطبية الزوج الأول الذي اخترته. ثم اربط الزوج الثاني مرة أخرى مع عكس قطبيتهما أيضًا. لاحظ الاتجاه. من هذا يجب أن تكون قادرًا على معرفة تسلسل تدوير المحرك في أي من الاتجاهين. في المثال الخاص بي ، انتهى كلاهما بالتحول عكس اتجاه عقارب الساعة ، لذا فإن التنقل عبر التسلسل بالطريقة نفسها التي اخترتها سيؤدي إلى تحريك المحرك CCW.

الخطوة 4: أخذ المحرك لاختبار القيادة

أخذ المحرك لاختبار القيادة
أخذ المحرك لاختبار القيادة

إذا لم تكن مُجهزًا بالفعل لبرمجة المعالجات الدقيقة ، فيمكنك أن تفعل ما هو أسوأ من Ghetto Development Kit أو أي من مبرمجي PIC المختلفين. قم بتوصيل الأسلاك مباشرة إلى جهاز microproc الخاص بك وقم بحرقه باستخدام الكود التالي:

/ * اللعب مع دفع محركات السائر الصغيرة. * /

/ * تضمين وظيفة التأخير * / #define F_CPU 1000000UL #include / * Pin defs for ATTiny2313 * / / * ترتيب في اتجاه عقارب الساعة * / #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define YELLOW _BV (PB3) #define DELAY 200 / * مللي ثانية بين الخطوات * / int main (void) {DDRB = 0xff؛ / * تمكين الإخراج على جميع دبابيس B * / PORTB = 0x00 ؛ / * اضبطهم جميعًا على 0v * / while (1) {/ * الحلقة الرئيسية هنا * / PORTB = BLUE ؛ _delay_ms (تأخير) ؛ PORTB = أسود ؛ _delay_ms (تأخير) ؛ PORTB = أحمر ؛ _delay_ms (تأخير) ؛ PORTB = أصفر ؛ _delay_ms (تأخير) ؛ }} ما مدى بساطة هذا الرمز؟ حقا بسيط. كل ما يفعله هو عمل بعض التعريفات اللطيفة حتى أتمكن من الإشارة إلى الأسلاك حسب اللون بدلاً من أسماء الدبوس الخاصة بها ، ثم تبديلها بالتسلسل مع تأخير قابل للتعديل بينهما. بالنسبة للمبتدئين ، اخترت تأخيرًا مدته نصف ثانية بين الخطوات. شاهد الفيديو القصير للنتائج. إذا كنت حقًا في لعبتك ، فاحسب عدد الخطوات في كل دورة لمعرفة الدقة الزاوية أحادية الخطوة للمحرك. (أوه نعم. PS. محركات الأقراص بدون تحميل بسرعة 3.6 فولت بسهولة. شاهد البطارية في الفيديو.)

الخطوة 5: تأرجحها للخلف والرابع

لذلك عليك تشغيلها في اتجاه عقارب الساعة. أي شيء أكثر إثارة للاهتمام؟ القليل من تنظيف الكود ، ويمكننا تشغيله ذهابًا وإيابًا. أضع التسلسل في اتجاه عقارب الساعة في مصفوفة بحيث يمكنك التنقل خلال المراحل باستخدام حلقة for بسيطة. يمكنك الآن تشغيل الحلقة لأعلى أو لأسفل للذهاب في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة.

int main (void) {const uint8_t delay = 50 ؛ const uint8_t باتجاه عقارب الساعة = {أزرق ، أسود ، أحمر ، أصفر} ؛ uint8_t أنا ؛ DDRB = 0xff ؛ / * تمكين الإخراج على جميع دبابيس B * / PORTB = 0x00 ؛ / * اضبطهم جميعًا على 0v * / while (1) {/ * حلقة رئيسية هنا * / لـ (i = 0؛ i <= 3؛ i ++) {/ * خطوة خلال الألوان باتجاه عقارب الساعة * / PORTB = اتجاه عقارب الساعة ؛ _delay_ms (تأخير) ؛ } لـ (i = 3؛ i> = 0؛ i -) {/ * خطوة خلال الألوان ccw * / PORTB = اتجاه عقارب الساعة ؛ _delay_ms (تأخير) ؛ }}} شاهد الفيديو المفعم بالحيوية لمعرفة ما إذا كان هناك شيء رائع.

الخطوة 6: لا أبطل نصف خطوة ، لأنني لست نصف خطوة …

استغني عن كلمات الأغاني جانباً ، فإن نصف خطوة محرك سيارتك هي المكان الذي يوجد فيه. تحصل على تيار ذروة أكبر ، وعزم دوران أكثر لحظية ، وضعف الدقة الزاوية. نصف خطوة باختصار: بدلاً من الأزرق ، الأسود ، الأحمر ، الأصفر ، أنت تقود المحرك باللون الأزرق ، الأزرق + الأسود ، الأسود ، الأسود + الأحمر ، الأحمر ، الأحمر + الأصفر ، الأصفر ، الأصفر + الأزرق. المحصلة هي أنه لنصف الوقت الذي تشرك فيه كلا المغناطيسين في وقت واحد. وخلال الأوقات التي يتم فيها تعشيق كلتا المجموعتين ، يشير المحرك في منتصف المسافة بين الاثنين ، مما يؤدي إلى تقليص الزاوية بين "الخطوات" وجعل المحرك يدور بشكل أكثر سلاسة. هل يمكنك ان تعرف من الفيديو؟ لست متأكدًا … الآن الجزء من الكود الذي يقوم بعمل نصف الخطوة يبدو كما يلي:

halfStepping باطل (uint16_t delay، uint8_t direction ) {uint8_t i؛ لـ (i = 0 ؛ i <= 3 ؛ i ++) {PORTB = direction ؛ / * جزء ملف واحد * / _delay_ms (تأخير) ؛ PORTB | = الاتجاه [i + 1] ؛ / * أضف نصف خطوة * / _delay_ms (تأخير) ؛ }} يعين أمر PORTB الأول قطبًا واحدًا موجبًا وكل البقية إلى سالب. ثم ينتظر. ثم يقوم أمر PORTB الثاني بتعيين قطب ثان (على الملف الآخر) إلى موجب ، مع إشراك كلا الملفين بمقدار 1.4x من عزم الدوران (و 2x التيار). قائمة البرامج الكاملة مرفقة أدناه. يتم الآن تحديد صفيفين (في اتجاه عقارب الساعة ، عكس اتجاه عقارب الساعة) ويحتوي كل منهما على 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) أمر سهل للغاية ، حتى في وضع نصف خطوة "خيالي".

لست متأكدًا مما سأفعله بمحركات السائر الصغيرة حتى الآن ، على الرغم من ذلك. أي اقتراحات؟

موصى به: