تم النشر 2026-03-02
عندما يتعلق الأمر بالكتابةمضاعفاتالكود، العديد من الأصدقاء الذين بدأوا للتو يتعثرون هنا. يبدو أن الدفة سهلة التشغيل، ولكن عندما تكتب فعليًا الكود للتحكم بها، ستجد ظهور مشكلات مختلفة مثل الدوران غير الدقيق والارتعاش وبطء الاستجابة. في الحقيقة،مضاعفاتالسيطرة ليست غامضة. إذا فهمت المبادئ والمزالق الشائعة، فيمكنك أيضًا كتابة كود تحكم سلس للغاية.
يكمن السر الأساسي لتشغيل جهاز التوجيه في الإشارة الدورية البالغة 20 مللي ثانية. ببساطة، هناك دائرة مرجعية داخلمضاعفاتوالذي ينتظر دائمًا إشارة النبض. يحدد عرض هذه النبضة مكان توقف عمود المؤازرة.
عادةً ما نستخدم نبضًا قدره 1.5 مللي ثانية يتوافق مع الموضع الأوسط البالغ 90 درجة، و0.5 مللي ثانية يتوافق مع 0 درجة، و2.5 مللي ثانية يتوافق مع 180 درجة. قد تتساءل، لماذا يجب إرسالها كل 20 مللي ثانية؟ يعد هذا في الواقع معيارًا صناعيًا، مما يتيح وقتًا كافيًا للاستجابة والاستقرار للمؤازرة.
بعد فهم ذلك، ستفهم جوهر كتابة التعليمات البرمجية: أليس الأمر مجرد إرسال نبضة بعرض معين إلى المؤازرة كل 20 مللي ثانية. لا تفكر في الأمر معقدًا للغاية، فهذا هو العمل الدقيق للمؤقت.
الطريقة الأكثر مباشرة هي استخدام وحدة PWM التي تأتي مع وحدة التحكم الدقيقة. ولد هذا الشيء للقيام بذلك. ما عليك سوى ضبط تقسيم تردد المؤقت وفترة العد بحيث يفيض كل 20 مللي ثانية بالضبط.
ثم قم بتعيين قيمة سجل المقارنة على عرض النبضة للزاوية المقابلة. على سبيل المثال، إذا كنت تريد أن يتحول المؤازرة إلى 0 درجة، فاضبط وقت المستوى العالي لـ PWM على 0.5 مللي ثانية. تشبه هذه العملية ضبط المنبه، وتحديد وقت إصدار الصوت ومدة إصداره.
️ خطوات التشغيل المحددة هي في الواقع ثلاث خطوات:
1. قم بتهيئة المؤقت واتركه يعمل بتردد 50 هرتز
2. قم بتكوين قناة إخراج PWM وضبط القطبية
3. اكتب دالة تحويل الزاوية لتعيين 0 إلى 180 درجة في 0.5 إلى 2.5 مللي ثانية
إذا لم يكن وحدة التحكم الدقيقة لديك تحتوي على وحدة PWM، فلا داعي للذعر. ويمكن القيام بذلك عن طريق استخدام منفذ إدخال/إخراج عادي وإضافة وظيفة تأخير، ولكن يجب أن تكون وحدة المعالجة المركزية مشغولة طوال الوقت ولا يمكنها القيام بأي عمل آخر.
عندما تصادف جهازًا يهتز مثل الغربال، فلا تشك في حياتك. على الأرجح، النبض في التعليمات البرمجية الخاصة بك غير مستقر. المأزق الأكثر شيوعًا هو أن المقاطعات تتداخل مع إنشاء PWM.
على سبيل المثال، إذا قمت بتشغيل مقاطعة المنفذ التسلسلي واستقبلت البيانات لبضعة ميكروثانية، فإن النبض الذي يجب إرساله لمدة 1.5 مللي ثانية يصبح 1.6 مللي ثانية، وسوف يهتز المؤازرة. الحل هو إعطاء الأولوية القصوى لـ PWM، أو استخدام PWM للأجهزة لتتم إدارتها بالكامل بواسطة الأجهزة الطرفية وعدم الاعتماد على وحدة المعالجة المركزية.
سيؤدي عدم كفاية مصدر الطاقة أيضًا إلى الاهتزاز. تيار البدء للمؤازرة كبير جدًا، خاصة عندما يكون تحت الحمل. إذا تمت إعادة ضبط وحدة التحكم الدقيقة بمجرد دوران المؤازرة، أو اهتزت المؤازرة من تلقاء نفسها، فتحقق من مصدر الطاقة بسرعة واستبدله بمحول طاقة كافٍ.
هذه المشكلة في الواقع شائعة جدًا. لقد حسبت بوضوح أن 1.5 مللي ثانية تقابل 90 درجة، لكن المؤازرة تحولت إلى 85 درجة فقط وتوقفت عن الحركة. هناك تفاصيل صغيرة هنا. بالنسبة للعلامات التجارية المختلفة من الماكينات، قد تختلف الزاوية المقابلة لنفس عرض النبضة.
هذا واضح بشكل خاص بالنسبة للماكينات الرخيصة، مع وجود فجوات كبيرة في التروس ودقة جهد متوسطة. الحل هو إضافة تعديلات على التعليمات البرمجية الخاصة بك. اكتب وظيفة معايرة تسمح بضبط قيمة عرض النبضة لكل زاوية في البرنامج.
هناك أيضًا مسألة الحدود الميكانيكية. المؤازرة لم تصل إلى الموضع المحدد، ربما تكون عالقة بشيء ما. في هذا الوقت، فإن زيادة عرض النبضة بالقوة لدفعها عبرها لن يؤدي إلا إلى حرق المؤازرة. تذكر أن تحدد عرض النبضة في الكود، ولا تدع قيمة الأمر تتجاوز الحد المادي للمؤازرة.
إذا كنت تريد صنع روبوت أو ذراع آلية، فيجب أن يكون لديك أكثر من جهاز توجيه واحد. إذا كان كل سيرفو يستخدم قناة PWM منفصلة، فلن تكون أطراف المتحكم الدقيق كافية. في هذا الوقت، يجب استخدام لوحة التحكم المؤازرة أو طريقة محاكاة البرامج.
يعد استخدام هذا النوع من شرائح تشغيل المؤازرة المتخصصة أمرًا خاليًا من القلق. يمكن لواجهة I2C واحدة التحكم في الماكينات ذات 16 قناة. الرمز بسيط أيضًا. ما عليك سوى كتابة وظيفة مكتبة لضبط الزاوية مباشرة. إذا كنت تستخدم مؤقتًا لمحاكاته بنفسك، فيمكنك إعداد مقاطعة موقوتة لمعالجة نبضة مؤازرة واحدة في كل مرة، بالتناوب.
لاحظ أنه عندما تعمل أجهزة متعددة في نفس الوقت، سيكون ضغط مصدر الطاقة كبيرًا. يمكنك تصميم تسلسل بداية في الكود بحيث تبدأ الماكينات ذات التيار العالي في أوقات متداخلة بحيث لا تدور جميعها في نفس الوقت، مما يمكن أن يتجنب بشكل فعال انخفاض الجهد.
أدخلت الكود المكتوب وعملت الدفة، لكنني مازلت أشعر أن هناك خطأ ما. في هذا الوقت، من غير المجدي مجرد إلقاء نظرة عليه، عليك استخدام البيانات للتحدث. إن أبسط طريقة هي إخراج المنفذ التسلسلي وطباعة قيمة عرض النبضة المرسلة في كل مرة لمعرفة مدى اختلافها عن القيمة النظرية.
يمكنك أيضًا استخدام محلل منطقي لالتقاط شكل موجة PWM. يمكنك معرفة ما إذا كان عرض النبض دقيقًا وما إذا كانت الفترة مستقرة. يمكن فهم العديد من المشكلات بنظرة سريعة من خلال النظر إلى شكل الموجة، مثل مواطن الخلل في النبض أو الفترات الطويلة والقصيرة.
هناك طريقة غبية أخرى لتصحيح أخطاء المؤازرة وهي اختبارها في أقسام. اختبر أولاً موضع 0 درجة بشكل منفصل، ثم 90 درجة، وأخيرًا 180 درجة لمعرفة ما إذا كان موضع كل نقطة صحيحًا. إذا كانت نقطة معينة غير دقيقة، فهناك خطأ ما في الحساب المطابق لعرض النبضة.
بالحديث عن ذلك، هل سبق لك أن واجهت موقفًا تختلف فيه السرعات الأمامية والخلفية لجهاز التوجيه؟ مرحبًا بك لمشاركة تجربتك المتعثرة في منطقة التعليق. إذا وجدتها مفيدة، قم بإعجابها ودعمها حتى يتمكن المزيد من الأصدقاء الذين يلعبون الماكينات من رؤية هذه المقالة ~
وقت التحديث:2026-03-02