بيت > رؤى الصناعة >مضاعفات
الدعم الفني

التحكم في إشارة PWM للمحركات المؤازرة: دليل برمجة كامل

تم النشر 2026-04-02

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

01معلمات PWM الأساسية للتحكم المؤازر

يتوقع محرك سيرفو قياسي إشارة PWM ذات الخصائص الثابتة التالية:

فترة الإشارة: 20 مللي ثانية (ملي ثانية)، وهو ما يعادل تردد50 هرتز.

عرض النبض (الوقت العالي): يختلف بين1.0 مللي ثانيةو2.0 مللي ثانية.

دورة العمل= (عرض النبضة / 20 مللي ثانية) × 100%.

زاوية المؤازرة المطلوبة عرض النبض دورة العمل (تقريبا)
0° (الحد الأدنى) 1.0 مللي ثانية 5.0%
90 درجة (محايد) 1.5 مللي ثانية 7.5%
180 درجة (الحد الأقصى) 2.0 مللي ثانية 10.0%

ملاحظة: قد تقبل بعض الماكينات 0.5 مللي ثانية إلى 2.5 مللي ثانية للنطاق الممتد، ولكن المعيار 1.0-2.0 مللي ثانية يعمل مع جميع الماكينات الشائعة تقريبًا.

02برمجة مخرجات PWM – خطوة بخطوة

تعمل بنية التعليمات البرمجية التالية على أي نظام أساسي يوفر PWM للأجهزة (على سبيل المثال، Arduino وSTM32 وESP32 وRaspberry Pi مع PWM للأجهزة). نحن نستخدم الكود الكاذب العام حتى تتمكن من تكييفه مع وحدة التحكم الدقيقة الخاصة بك.

2.1 قم بإعداد جهاز PWM الطرفي

اختر طرفًا يدعم PWM.

اضبط تردد PWM على50 هرتز(الفترة = 20 مللي ثانية).

اضبط الدقة على 8 بت (0–255) أو 16 بت على الأقل للتحكم بشكل أفضل.

2.2 تحويل الزاوية المطلوبة إلى قيمة دورة العمل

بالنسبة لـ PWM 8 بت (0 = 0% واجب، 255 = 100% واجب):

دورة العمل لمدة 1.0 مللي ثانية = (1.0 / 20.0) × 255 = 12.75 → تقريبًا إلى13

دورة العمل لمدة 1.5 مللي ثانية = (1.5 / 20.0) × 255 = 19.125 → تقريبًا إلى19

دورة العمل لمدة 2.0 مللي ثانية = (2.0 / 20.0) × 255 = 25.5 → تقريبًا إلى26

الصيغة العامة لأي زاوية (0-180 درجة):

عرض النبضة = 1.0 + (الزاوية / 180.0)(2.0 - 1.0) قيمة الواجب = (pulse_width_ms / 20.0)(2^الدقة - 1)

مثال لدقة 8 بت و45 درجة:

舵机pwm控制源码_pwm控制舵机程序_pwm波控制舵机转动程序

عرض النبضة = 1.0 + (45/180)1.0 = 1.25 مللي ثانية

Duty_value = (1.25/20)255 = 15.9375 → عدد صحيح16

2.3 اكتب قيمة الواجب في سجل PWM

// الكود الزائف pwm_set_frequency(PWM_PIN, 50); // 50 هرتز pwm_set_resolution(PWM_PIN, 8); // 8 بت زاوية int = 90؛ // زاوية الهدف int Duty = Map(angle, 0, 180, 13, 26); // استخدام الحد الأدنى/الأقصى للواجب المحسوب مسبقًا pwm_write(PWM_PIN, Duty);

2.4 معايرة العالم الحقيقي (يزيل الارتعاش)

نظرًا لعدم وجود سيرفرين متطابقين تمامًا، قم دائمًا بقياس حدود عرض النبضة الفعلية:

1. اكتب نبضة تبلغ 1.0 مللي ثانية – ولاحظ موضع المؤازرة. إذا لم يصل إلى التوقف الفعلي، قم بزيادة عرض النبض بخطوات قدرها 0.05 مللي ثانية حتى يتوقف عن الحركة (سجل كـmy_pulse).

2. اكتب نبضة تبلغ 2.0 مللي ثانية - وبالمثل ابحث عن الحد الأقصى لعرض النبضة الذي يعطي الدوران الكامل (max_pulse).

3. استخدم هذه القيم المُقاسة في الكود الخاص بك بدلاً من القيمة النظرية 1.0/2.0 مللي ثانية.

حالة شائعة: مطلوب جهاز مؤازر صغير نموذجي من طراز Tower Pro SG90min_pulse = 0.9 مللي ثانيةوmax_pulse = 2.1 مللي ثانيةلنطاق حقيقي 0-180 درجة. قم دائمًا بالمعايرة لكل نموذج مؤازر.

03رمز المثال الكامل (نمط Arduino، مستقل عن الأجهزة)

// التحكم المؤازر باستخدام PWM - لا توجد مكتبات خارجية مطلوبة // يعمل على أي لوحة تحتوي على أجهزة PWM (على سبيل المثال، Uno، Nano، Mega، ESP32) const int servoPin = 9; // دبوس PWM const int freq = 50; // 50 هرتز const intsolution = 8; // 8 بت (0-255) // حدود النبضة التي تمت معايرتها مسبقًا (بالميكروثانية) const int minPulseUs = 1000; // 1.0 مللي ثانية = 1000 ميكروثانية const int maxPulseUs = 2000; // 2.0 مللي ثانية = 2000 ميكروثانية void setup() { // تكوين PWM ledcSetup(0, freq,solution); // القناة 0 ledcAttachPin(servoPin, 0); } void setServoAngle(int angle) { // تقييد الزاوية إلى 0-180 angle = constrain(angle, 0, 180); // تحويل الزاوية إلى عرض النبضة (ميكرو ثانية) intpulseUs = minPulseUs + (angle(maxPulseUs - minPulseUs)) / 180؛ // تحويل عرض النبضة إلى دورة العمل (0-255) int Duty = (pulseUs255) / 20000؛ // 20000 μs = 20 مللي ثانية فترة ledcWrite(0, Duty); } حلقة باطلة() { setServoAngle(0); // الانتقال إلى 0 درجة تأخير (1000)؛ setServoAngle(90); // الانتقال إلى 90 درجة تأخير (1000)؛ setServoAngle(180); // الانتقال إلى 180 درجة تأخير (1000)؛ }

04استكشاف أخطاء أجهزة PWM الشائعة وإصلاحها

مشكلة السبب على الأرجح حل
المؤازرة لا تتحرك تردد PWM خاطئ (ليس 50 هرتز) اضبط التردد على 50 هرتز بالضبط
حركة متشنجة / ارتعاش إمدادات الطاقة غير كافية استخدم مصدرًا منفصلاً بجهد 5 فولت (على سبيل المثال، 4 بطاريات AA أو منظم 5 فولت/2 أمبير)
زوايا غير دقيقة تختلف حدود النبض النظرية عن المؤازرة الفعلية إجراء المعايرة (الخطوة 2.4) واستخدام نبضات دقيقة/أقصى مقاسة
المؤازرة تطن لكنها لا تدور دقة دورة العمل منخفضة جدًا (قم بزيادة دقة PWM إلى 10 بت أو 12 بت
يتحرك فقط بين 0 درجة و 90 درجة فترة الإشارة قصيرة جدًا أو نطاق عرض النبضة غير متطابق تأكد من أن الفترة = 20 مللي ثانية، وأنك ترسل نبضات تتراوح بين 1.0-2.0 مللي ثانية

05توصيات قابلة للتنفيذ للتحكم الموثوق في المؤازرة

1. قم دائمًا بمعايرة كل جهاز على حدة- حتى اثنين من الماكينات من نفس النموذج يمكن أن يكون لهما تباين قدره ±0.1 مللي ثانية. اكتب رسمًا اختباريًا بسيطًا يمتد من 0.5 مللي ثانية إلى 2.5 مللي ثانية ولاحظ عرض النبض الدقيق عند 0° و180°.

2. استخدم مصدر طاقة منفصلًا– لا تقم مطلقًا بتشغيل المؤازرة مباشرة من دبوس 5V الخاص بوحدة التحكم الدقيقة (يمكن للطفرات الحالية إعادة ضبط اللوحة). يعمل الإمداد المنظم 5V/2A أو 4 بطاريات NiMH (4.8V) بشكل موثوق.

3. أضف مكثفًا كهربائيًا بسعة 100–470 ميكروفارادعبر محطات الطاقة في المؤازرة بالقرب من المؤازرة. هذا يمتص انخفاضات الجهد الناتجة عن بدء تشغيل المحرك المفاجئ.

4. تجنب تأخير البرامجأثناء تحرك المؤازرة. استخدم التوقيت غير المحظور (على سبيل المثال، أجهزة الحالة المعتمدة على millis()) حتى يتمكن برنامجك من التعامل مع المهام الأخرى.

5. للتطبيقات عالية الدقة (مثل الأذرع الآلية)، استخدم مؤقت PWM 16 بت والاستيفاء الخطي بين النقاط التي تمت معايرتها. ضع في اعتبارك أيضًا إضافة مقياس الجهد الراجع التناظري 10 بت لإغلاق الحلقة.

الوجبات الجاهزة الأساسية: يعد التحكم في المؤازرة باستخدام PWM أمرًا مباشرًا بمجرد تثبيت التردد عند 50 هرتز وتعيين الزاوية لعرض نبضة يتراوح بين 1.0 و2.0 مللي ثانية. ومع ذلك، فإن الموثوقية في العالم الحقيقي تأتي من المعايرة المناسبة، والطاقة الكافية، واستخدام الحدود المقاسة بدلاً من القيم النظرية. قم بتطبيق طريقة المعايرة الموضحة في القسم 2.4 على كل أجهزة مؤازرة جديدة تقوم بدمجها، وستحقق مشروعاتك حركة سلسة ودقيقة في كل مرة.

وقت التحديث:2026-04-02

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

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

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