تم النشر 2026-04-09
يوفر هذا الدليل طريقة عملية وكاملة للتحكم في أمضاعفاتزاوية المحرك باستخدام متحكم STM32 وجهاز تحكم عن بعد قياسي يعمل بالأشعة تحت الحمراء (IR). سوف تتعلم الأسلاك الدقيقة، وفك تشفير إشارة الأشعة تحت الحمراء، وتوليد PWM لـمضاعفاتومثال التعليمات البرمجية الجاهزة للاستخدام. لا توجد حاجة لمكونات خاصة بالعلامة التجارية؛ تعمل التعليمات مع أجهزة استقبال الأشعة تحت الحمراء الشائعة (على سبيل المثال، 1838B) وأي 5 فولت قياسيمضاعفات. حالة الاستخدام النموذجية هي ضبط إمالة الكاميرا أو مفصل ذراع الروبوت عن بعد.
يعمل النظام على مبدأين أساسيين:
جهاز التحكم عن بعد بالأشعة تحت الحمراءتنبعث إشارة معدلة 38 كيلو هرتز. يقوم مستقبل الأشعة تحت الحمراء بإزالة تشكيله وإخراج تسلسل نبضي تسلسلي (بروتوكول NEC هو الأكثر شيوعًا).
محرك سيرفويتم ضبط الموضع بواسطة إشارة PWM بفترة 20 مللي ثانية. يتراوح عرض النبض من 0.5 مللي ثانية (0 درجة) إلى 2.5 مللي ثانية (180 درجة).
يقوم جهاز STM32 الخاص بك بفك تشفير رمز مفتاح IR وتعيينه لزاوية مؤازرة مستهدفة، ثم يقوم بتحديث دورة عمل PWM وفقًا لذلك.
قم بالاتصال تمامًا كما هو موضح أدناه. الأسلاك غير الصحيحة سوف تلحق الضرر بالمكونات.
مهم: إذا كان مؤازرك يستهلك أكثر من 500 مللي أمبير، فاستخدم مصدر إمداد منفصل بجهد 5 فولت مع أرضية مشتركة لـ STM32.
يتم استخدام بروتوكول NEC بواسطة أكثر من 90% من أجهزة التحكم عن بعد التي تعمل بالأشعة تحت الحمراء للمستهلكين. تُرسل كل ضغطة مفتاح: دفعة أولية مدتها 9 مللي ثانية، ومسافة 4.5 مللي ثانية، ثم 32 بت (عنوان + أمر) متبوعة بتة توقف.
خطوة بخطوة لالتقاط رموز جهاز التحكم عن بعد:
1. قم بتوصيل مخرج جهاز استقبال الأشعة تحت الحمراء إلى GPIO (على سبيل المثال، PB1) الذي تم تكوينه كمقاطعة خارجية على حافة السقوط.
2. قياس عرض النبض باستخدام جهاز توقيت في وضع الالتقاط.
3. المنطق النموذجي 0 هو ارتفاع 0.56 مللي ثانية + انخفاض 0.56 مللي ثانية ؛ المنطق 1 هو 0.56 مللي ثانية ارتفاع + 1.69 مللي ثانية منخفض.
استخدم مقتطف التعليمات البرمجية الذي تم التحقق منه (مكتبة HAL، ولكن المنطق ينطبق على أي إعداد):
// معالج المقاطعة لإشارة الأشعة تحت الحمراء void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == IR_IN_Pin) { uint32_t Duration = getPulseWidth(); // القياس فينا // فك تشفير منطق NEC - تخزين كود 32 بت } }
بعد الضغط على مفتاح (على سبيل المثال، الرقم "1" أو "UP")، اقرأ قيمة الأمر الذي تم فك تشفيره. اكتب رموز المفاتيح التي تريد استخدامها.
تتوقع الماكينات إشارة 50 هرتز (فترة 20 مللي ثانية). استخدم TIM2 أو TIM3 في وضع PWM.
حساب 0 درجة (نبض 0.5 مللي ثانية) و 180 درجة (نبض 2.5 مللي ثانية):
ساعة المؤقت = 72 ميجا هرتز، المقياس المسبق = 7200-1 → 10 كيلو هرتز.
الفترة (ARR) = 200 → 20 مللي ثانية (2000.1 مللي ثانية = 20 مللي ثانية).
دورة العمل لمدة 0.5 مللي ثانية = 5 → (0.5 مللي ثانية / 0.1 مللي ثانية = 5)
دورة العمل لمدة 2.5 مللي ثانية = 25 → (2.5 مللي ثانية / 0.1 مللي ثانية = 25)
خطوات التكوين:
1. قم بتمكين ساعة المؤقت ووظيفة GPIO البديلة.
2. اضبط TIMx->PSC = 7199، TIMx->ARR = 200.
3. اضبط قيمة CCR للقناة بين 5 و25.
4. ابدأ إخراج PWM.
وظيفة المثال لضبط الزاوية:
void setServoAngle(uint8_t angle) { // الزاوية: من 0 إلى 180 uint16_t نبض = 5 + (زاوية 20 / 180)؛ // الخريطة الخطية: 5 (0°) إلى 25 (180°) __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1,pulse); }
حالة شائعة في العالم الحقيقي: التحكم في منصة تحريك الكاميرا باستخدام أربعة أزرار (يسار، يمين، مركز، إيقاف). لنفترض أنك التقطت:
رمز المفتاح "الأيسر" = 0x10
رمز المفتاح "الأيمن" = 0x11
رمز المفتاح "المركز" = 0x12
تنفيذ الحلقة الرئيسية:
uint32_t lastIRCode = 0; while (1) { if (newIRCodeAvailable) { lastIRCode = decodedIRCode; newIRCodeAvailable = 0; التبديل (lastIRCode) { الحالة 0x10: setServoAngle (0)؛ استراحة؛ // اليسار - 0° case 0x11: setServoAngle(180); استراحة؛ // اليمين - 180 درجة case 0x12: setServoAngle(90); استراحة؛ // المركز - 90 درجة الافتراضي: استراحة؛ } } }
للتحكم التزايدي السلس، يمكنك زيادة/تقليل الزاوية بمقدار 5 درجات في كل مرة تضغط فيها على "UP" أو "DOWN".
الوجبات الجاهزة الأساسية: للتحكم في جهاز مؤازر باستخدام جهاز تحكم عن بعد يعمل بالأشعة تحت الحمراء على STM32، تحتاج فقط إلى (1) فك تشفير بروتوكول NEC IR بشكل صحيح باستخدام مقاطعة خارجية ومؤقت، (2) إنشاء إشارة PWM بتردد 50 هرتز مع دورة تشغيل قابلة للتعديل (0.5-2.5 مللي ثانية)، و(3) تعيين رموز المفاتيح الملتقطة إلى الزوايا المطلوبة.
خطوات عمل فورية لمشروعك:
1. قم بتوصيل الدائرة كما هو موضح في القسم 3.
2. قم بتحميل رسم تخطيطي بسيط لوحدة فك ترميز الأشعة تحت الحمراء (استخدم المنطق الموجود في القسم 4) لالتقاط رموز المفاتيح الفريدة لجهاز التحكم عن بُعد.
3. اختبر حركة المؤازرة بزوايا ثابتة باستخدام رمز PWM من القسم 5.
4. قم بدمج كلتا الوظيفتين وقم بتعيين الرموز الملتقطة لزوايا محددة.
5. أضف تأخيرًا بسيطًا (50 مللي ثانية) بعد كل حركة لتجنب تدفق الأوامر.
باتباع هذا الدليل تمامًا، سيكون لديك نظام مؤازر موثوق يتم التحكم فيه بالأشعة تحت الحمراء في أقل من 30 دقيقة. بالنسبة للميزات المتقدمة (على سبيل المثال، مواضع التخزين، وزيادة السرعة)، قم بتوسيع مبدأ التعيين نفسه. يعمل هذا الأسلوب عبر جميع سلاسل STM32 وأي جهاز تحكم عن بعد متوافق مع NEC.
وقت التحديث: 2026-04-09