51 برنامج تحكم مؤازر أحادي الشريحة لإكمال دوران المؤازرة في ثلاث خطوات_Custom Drive_Industry Insights_Kpower
بيت > رؤى الصناعة >محرك مخصص
الدعم الفني

51 برنامج تحكم مؤازر أحادي الشريحة للتحكم في دوران المؤازرة في ثلاث خطوات

تم النشر 2026-05-06

هل سبق لك أن واجهت هذا الوضع؟

بعد توصيل المؤازرة بمصدر الطاقة، لا توجد استجابة. بعد كتابة البرنامج، حدثت توترات عشوائية. من الواضح أنني اتبعت التعليمات، لكنني لم أتمكن من تغييرها.

لا تُصب بالذعر. أنت لست وحدك.

في هذه المقالة اليوم وبمساعدة الميكروكونترولر 51 سنشرح بالتفصيل التحكم في السيرفو. لا يوجد محتوى رياضي معقد، ولا يوجد جدول تسجيل غير مفهوم، فقط الأفكار الأكثر مباشرة وإطار التعليمات البرمجية الأكثر عملية.

تذكر هذه النقطة الأساسية: إذا ظل السيرفو ثابتًا، فهذا يرجع إلى حد كبير إلى مشكلة التوقيت؛ إذا تحركت المؤازرة بشكل عشوائي، فمن المحتمل أن يكون السبب هو عدم كفاية مصدر الطاقة.

هل أنت مستعد؟

01 ما هو بالضبط جهاز التوجيه؟

كثير من الناس يحصلون على سيرفو لأول مرة ويعتقدون أنه محرك. يمكن تشغيله عند تشغيل الكهرباء.

خطأ.

جهاز التوجيه ليس محركًا عاديًا. إنه أشبه بروبوت صغير له "عقل".

أنت تعطيه أمرًا ويتحول إلى الزاوية المحددة. ثم توقف. توقف عن الموت في مساراتك.

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

لذلك، للتحكم في جهاز التوجيه، ليست هناك حاجة لكتابة PID أو إجراء حسابات الحلقة المغلقة. كل ما عليك فعله هو أن تتعلم شيئًا واحدًا: إرسال نبض.

02 المبدأ الأساسي: يمكن لرقم واحد أن يدير الزاوية

افتح ورقة البيانات الخاصة بك. ابحث عن هذه الجملة: عرض النبض عالي المستوى يتوافق مع الزاوية.

بعبارات بسيطة: المستوى العالي 0.5 مللي ثانية سيتحول إلى 0 درجة، إذا استمر 1.5 مللي ثانية، سيتحول إلى 90 درجة، وإذا استمر 2.5 مللي ثانية، سيتحول إلى 180 درجة.

تم تحديد الفترة عند 20 مللي ثانية.

هل هو واضح؟ إن التحكم في السيرفو يعني في الواقع التحكم في منفذ الإدخال/الإخراج، وسحبه لأعلى، والانتظار لفترة من الوقت، ثم سحبه لأسفل، ثم انتظار الوقت المتبقي.

الأمر بهذه البساطة.

على سبيل المثال، النبض الذي يدور 90 درجة:

أولاً، قم بإجراء عملية سحب لأعلى، ثم قم بإجراء تأخير لمدة 1.5 مللي ثانية، ثم قم بإجراء عملية سحب لأسفل، ثم قم بإجراء تأخير لمدة 18.5 مللي ثانية، ثم كرر الخطوات المذكورة أعلاه في حلقة لا نهائية.

هذه دورة تحكم كاملة.

03 قبل كتابة البرنامج، قم بإعداد البيئة أولاً

لا تحتاج إلى معدات فاخرة.

متحكم 51 (STC89C52 يكفي)

单片机控制舵机来回摆动_舵机控制程序51单片机_单片机程序控制舵机原理

مؤازرة (SG90 أو MG995 المشترك سيفي بالغرض)

عدد قليل من أسلاك دوبونت

يوجد مصدر طاقة بقوة 5 فولت، لذا لا تتوقع أن يتم تشغيله بواسطة وحدة تحكم دقيقة. اسمحوا لي أن أقول أشياء مهمة ثلاث مرات، لا تتوقع أن يتم تشغيله بواسطة وحدة تحكم دقيقة.

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

عندما تكون المؤازرة في لحظة بدء التشغيل، يمكن أن يصل التيار إلى أكثر من 1 أمبير، ولا يمكن للكمية الصغيرة من الطاقة التي يسحبها USB أن تغذيها بالكامل.

ما يجب القيام به؟ إمدادات الطاقة الخارجية. أرضية مشتركة. أرضية مشتركة. أرضية مشتركة.

يجب أن يكون الطرف الموجب لمصدر الطاقة هو VCC، ويجب أن يكون الطرف السالب لمصدر الطاقة GND. يجب أيضًا توصيل GND الخاص بوحدة التحكم الدقيقة بمصدر الطاقة GND، ومن ثم يجب توصيل خط الإشارة بمنفذ IO الخاص بوحدة التحكم الدقيقة.

هل الدائرة متصلة؟ تهانينا. اكتمل النصف الأصعب.

04 البرمجة العملية: ابدأ بالأبسط

نحن لا نلعب وهمية. قم بإعطاء الكود الذي يمكن تشغيله مباشرة.

النقاط الأساسية: استخدم مؤقتًا لإنشاء مقاطعة بفترة 20 مللي ثانية، والتحكم بمرونة في مدة المستوى العالي أثناء المقاطعة.

فكرة:

حدد متغيرًا لتخزين الوقت عالي المستوى المطلوب حاليًا، تمامًا مثل 15، وهذا 15 يمثل 1500 ميكروثانية، أي 1.5 مللي ثانية

في بداية كل فترة 20 مللي ثانية، قم أولاً بسحب منفذ الإدخال/الإخراج إلى أعلى.

تأخير وقت المستوى العالي.

اسحب منفذ الإدخال/الإخراج للأسفل.

تأخير الوقت المتبقي.

مكتوب كرمز زائف:

void main() { تهيئة الموقت (تعيين مقاطعة 20 مللي ثانية) ؛ while(1) { // لا تفعل شيئًا، اعتمد على المقاطعات } } مقاطعة مؤقت باطلة () المقاطعة 1 { سحب عاليًا؛ تأخير (وقت عالي المستوى) ؛ سحب منخفض؛ تأخير (20 مللي ثانية - وقت عالي المستوى) ؛ }

هام: تتطلب التأخيرات الدقيقة على مستوى الميكروثانية استخدام وظائف التأخير. عندما يكون التردد الرئيسي لوحدة التحكم الدقيقة 51 هو 11.0592 ميجا هرتز، فإن النوب الواحد يعادل تقريبًا 1.085 ميكروثانية. لكتابة دالة Delay_us، تحتاج الدالة إلى تمرير عدد من الميكروثانية وتنفيذها عن طريق طرحها خلال حلقة while.

لا تخافوا من المتاعب. هذا النوع من تصحيح الأخطاء التقريبي المتتالي هو القاعدة في الأنظمة المدمجة.

05 دع الدفة تتحرك: للأمام، للخلف، بأي زاوية

الآن أنت بحاجة إلى تحقيق ما يلي: اضغط على الزر 1، وانتقل إلى 0 درجة؛ اضغط على الزر 2، اتجه إلى 90 درجة؛ اضغط على الزر 3، أدر إلى 180 درجة.

أضف اكتشاف المفتاح في الكود الزائف:

إذا (تم الضغط على الزر 1) وقت المستوى العالي = 500؛ // 0.5 مللي ثانية -> 0 درجة إذا (تم الضغط على الزر 2) وقت المستوى العالي = 1500؛ // 1.5 مللي ثانية -> 90 درجة إذا (تم الضغط على الزر 3) وقت المستوى العالي = 2500؛ // 2.5 مللي ثانية -> 180 درجة

单片机程序控制舵机原理_单片机控制舵机来回摆动_舵机控制程序51单片机

هام: وحدة الوقت عالية المستوى هي ميكروثانية. 500، 1500، 2500.

لا تكتب 1، 2، 3. هذا ميلي ثانية. أسوأ 1000 مرة.

ثم ماذا؟ ثم سوف يتحول المؤازرة بطاعة إلى الزاوية المقابلة.

لا تصدق ذلك؟ حاولت.

06 عثرات ربما تكون قد خطوت فيها (س/ج)

س: المؤازرة لا تدور، بل تصدر صوت طنين فقط؟

أولاً، أ، لا يوجد تيار إمداد طاقة كافٍ، أو أن عرض النبضة غير دقيق. من الضروري تغيير مصدر الطاقة إلى مصدر طاقة أعلى من 5V/2A، ثم التحقق مما إذا كان وقت المستوى العالي يتراوح بين 500 و2500us.

س: يمكن أن يتحول المؤازرة ولكنه يهتز بشدة؟

أضف مكثفًا كبيرًا (القيمة 470 فائق التوهج) إلى طرفي مصدر الطاقة المؤازر بسبب الحالة المذكورة في أ، أي أن هناك فرقًا مفرطًا بين دورتي تحكم متجاورتين أو أن مصدر الطاقة به تموجات.

س: لا توجد استجابة عند حرق البرنامج، لكنه ينطفئ عند فصل كابل الإشارة؟

ج: حالة مستوى منفذ الإدخال/الإخراج في البداية غير مؤكدة، أو أن الفترة الزمنية التي يكون فيها مستوى عالٍ تتجاوز النطاق المحدد. عند تشغيل الجهاز، يجب عليك أولاً سحب مستوى منفذ الإدخال/الإخراج إلى مستوى منخفض، ثم إعطائه القيمة الأولية.

س: هل تريد التحكم في الدوران المستمر (مثل أجهزة 360 درجة)؟

إذا لم ينجح ذلك، فأنت بحاجة إلى استبداله بجهاز مؤازر يمكنه الدوران بشكل مستمر 360 درجة. إذا كان المستوى العالي 1.5 مللي ثانية، فسيتوقف السيرفو عن الدوران. إذا كانت أعلى من 1.5 مللي ثانية، فسوف يدور المؤازرة للأمام. إذا كانت أقل من 1.5 مللي ثانية، فسوف يدور المؤازرة بشكل عكسي.

س: إذا لم يكن لدي راسم ذبذبات في متناول اليد، كيف يمكنني التأكد من صحة النبضات؟

قم ببرمجة المؤازرة للتبديل بين 0 درجة و90 درجة كل ثانية واحدة. استخدم محللًا منطقيًا أو طريقة LED بسيطة لملاحظة ما إذا كان تأرجحه منتظمًا.

07 الترقية: دع المؤازرة تتحرك وفقًا للمنحنى الذي ترسمه

يعد البرنامج ذو الزوايا المشفرة أمرًا أساسيًا للغاية.

طريقة أكثر تقدمًا للعب: دع المؤازرة تنتقل ببطء من 0 درجة إلى 180 درجة، ثم تعود ببطء.

كيف تفعل ذلك؟

استخدم متغير حلقة يسمى angle لزيادة القيمة من 0 إلى 180، ويجب ألا تكون قيمة الخطوة كبيرة جدًا، على سبيل المثال، زيادة بمقدار درجة واحدة في كل مرة.

لكل زيادة بمقدار درجة واحدة، قم بإعادة حساب وقت المستوى العالي:

الزمن المرتفع يساوي 500 زائد الزاوية مضروبة في 2000 مقسومة على 180.

وتجدر الإشارة إلى أن 500 يقابل 0 درجة، و2500 يقابل 180 درجة، والمدى الإجمالي هو 2000 ميكروثانية، مقسمة إلى 180 جزءًا متساويًا.

ثم تأخير 20 مللي ثانية. افعلها مرة أخرى.

التأثير هو تأرجح سلس. مثل الروبوت يلوح.

يمكنك أن تسمي هذا ما يسمى "الحركية المؤازرة"، لكن لا تخف من اسمه. في جوهره، هو نوع من الاستيفاء الخطي.

08 اذهب خطوة أخرى إلى الأمام: استخدم المنفذ التسلسلي للتحكم عن بعد في المؤازرة

إضافة الاتصال التسلسلي. يرسل الكمبيوتر رقمًا ويتحول المؤازرة إلى الزاوية المقابلة.

على سبيل المثال، انطق "0" وتحول إلى 0 درجة. قل "90" واستدر 90 درجة.

النقاط الرئيسية:

في المنفذ التسلسلي لوحدة التحكم الدقيقة التي تتلقى المقاطعة، يتم تحليل السلسلة.

ملاحظة: قد لا تتمكن من جمع كل شيء في وقت واحد. لتحديد ما إذا كان سيتم استلام حرف السطر الجديد.

بعد استلام العدد الكامل، يقتصر النطاق على 0 ~ 180.

التحويل إلى وقت عالي المستوى وتحديث المتغير.

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

09 ملخص: ثلاثة عناصر للتحكم في جهاز التوجيه

مزود الطاقة. قم بتوفير تيار كافٍ وتثبيت الجهد على الأرض المشتركة.

توقيت. الفترة 20 مللي ثانية، مستوى عالٍ 500-2500us.

لا تقم بإجراء عمليات الحظر، استخدم المقاطعات المؤقتة بدلاً من استخدام التأخيرات التي تستمر في الانتظار، وإلا فلن تتمكن من فعل أي شيء.

بمجرد إتقان هذه الأشياء الثلاثة، يمكنك التحكم في 99% من الماكينات الموجودة في السوق.

تذكر: عند كتابة برنامج، فكر في خطوة أخرى حول "ماذا سيحدث إذا اهتز مصدر الطاقة فجأة" بدلاً من "يكفي أن يعمل البرنامج بسلاسة".

10 الآن، حان دورك لاتخاذ الإجراءات اللازمة

لا تعتبر هذه المقالة مجرد مجموعة. قم بتشغيل Keil، وقم بتوصيل لوحة التطوير بشكل صحيح، واكتب الكود أعلاه مرة واحدة.

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

في كل مرة تحل فيها مشكلة، يتعمق فهمك للدمج.

إذا نظرنا إلى الوراء بعد بضع سنوات، ستجد أن اليوم الذي أتقنت فيه استخدام جهاز التوجيه كان نقطة البداية بالنسبة لك لفهم "التحكم في العالم المادي من خلال التعليمات البرمجية" حقًا.

إن المؤازرة الصغيرة التي تحمل طنينًا في يدك هي المفتاح الأول لعالم الروبوتات.

لا تنتظر أكثر من ذلك. السلطة الآن.

جربها.

وقت التحديث:2026-05-06

تمكين المستقبل

اتصل بمتخصص منتج Kpower للتوصية بالمحرك أو علبة التروس المناسبة لمنتجك.

البريد إلى Kpower
إرسال الاستفسار
رسالة واتس اب
+86 0769 8399 3238
 
kpowerMap