
مرحبا بالجميع.
أعتقد أنك إذا كنت تعمل مع arduino + nema 17 ، فأنت تعلم أنه قد يكون من الصعب جدًا تشغيل العديد من المحركات في نفس الوقت.
هناك طرق مختلفة لحل هذه المشكلة ، وربما أسهلها هي استخدام مكتبة NemaStepper. تبسط المكتبة هذه المهمة عدة مرات ، والميزة الرئيسية هي أنها لا توقف البرنامج. يتم تثبيته وكذلك جميع المكتبات الأخرى. وزعت تحت رخصة معهد ماساتشوستس للتكنولوجيا.
حسنًا ، لنبدأ. وسوف نبدأ بالاتصال.
سوف نستخدم Simple Nema 17 مع aliexpress مقابل 500 روبل ، وسائق L298N واردوينو uno. ها هم:



- في المثال ، سأعرض أربعة برامج تشغيل متصلة بـ arduino ، على الرغم من أنني سأستخدم واحدًا فقط.
- هناك العديد من البرامج التعليمية حول كيفية توصيل Nema 17 على الإنترنت ، لذلك لن أصفها بالتفصيل هنا.
لذلك ، نقوم بتوصيل المحرك إلى السائق:


المكتبة موجهة للكائنات. دعنا ننظر إلى مثال على تشغيل محرك واحد:
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); void Setup(){ Stepper1.SetStepCount(100);
يمكن العثور على جميع أساليب المكتبة في ملفات شفرة مصدر المكتبة (يوجد وصف في رأس المكتبة).
* المزيد عن الكود في المثال.
والآن على سبيل المثال.
تحتوي المكتبة على مثال مضمن (في الوقت الحالي هناك بمفرده) ، والذي يسمح لك بالتحكم في ثلاثة محركات باستخدام Serial في آن واحد.
يقبل هذا المثال الأوامر التالية إلى المنفذ.
لنفصلها.
لنبدأ برأس المكتبات التي تربط:
بعد ذلك ، تم الإعلان عن ثلاثة محركات ، مع المعلمات التالية:
1. دبوس الأول
2. دبوس الثاني
3. دبوس الثالث
4. دبوس الرابع
5. عدد الخطوات لكل ثورة - معظم محركات نيما 17 لديها 200.
6. سرعة البدء
7. قيمة تشير إلى ما إذا كان سيتم الاحتفاظ بالعمود بعد التوقف (إذا كان ذلك صحيحًا ، يتحول السائقون إلى حفلة شواء)
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); NemaStepper Stepper2(6, 7, 8, 9, 200, 10, false); NemaStepper Stepper3(10, 11, 12, 13, 200, 10, false);
تهيئة المنفذ التالي:
void setup() { Serial.begin(9600); }
ثم ، مهم! في الحلقة الرئيسية ، تحتاج إلى تحديث موضع المحركات باستخدام الأمر Step ()
void loop() { if (IsStepperEnabled == true){ Stepper1.Step(); Stepper2.Step(); Stepper3.Step(); } GetCommandFromSerial(); }
ما يلي هو روتين فرعي يستقبل البيانات من المنفذ ، ويقوم بتشغيل / إيقاف المحركات ، ويضبط السرعة ، والفرامل ، والدوران.
void GetCommandFromSerial() { if (Serial.available() > 0) {
وهكذا ، دعونا نحاول تنزيله على السبورة.
التحميل؟
ثم نذهب إلى شاشة المنفذ وأدخل الأوامر من الكود.
ينتهي كل أمر بـ /.
الأحرف الثلاثة الأولى هي اسم الفريق.
هذا بين الاسم و / - المعلمات.
لنقم بتشغيل المحركات باستخدام الأمر "EMS /" (تمكين المحركات).
ثم سنشير إلى المحرك 1 السرعة 60 مع الأمر "SS160 /" (ضبط السرعة) ، حيث 60 هو السرعة.
وأخيرًا ، قم بتشغيل المحرك الأول باستخدام الأمر "MV1100 /" ، (MoVe) حيث 100 هو عدد الثورات.
كل شيء يعمل. اور.
الشيء نفسه مع بقية المحركات.
حسنا ، من أين تحصل على المكتبة.
يمكن تنزيل المكتبة عن طريق توجيه الشكر للمنشئ ، باتباع الرابط ، مع الإشارة إلى السعر الحقيقي لها:
الحصول على NemaStepperشكرا للقراءة ، وآمل أن مقالك ساعدك.
عندما كنت أبحث عن حل لمشكلتي ، اتضح أنها المكتبة الوحيدة المناسبة.