تم النشر 2026-04-29
استخدم لوحة تطوير Arduino للتحكم في زاوية دوران المؤازرة بمساعدة زر. هذه هي واحدة من الوظائف الأساسية الأكثر عملية في الإنتاج الإلكتروني. هذه المقالة تعطي الحل الكامل مباشرة. استخدم زرًا عاديًا. عند الضغط عليه يدور السيرفو إلى 90 درجة، وعند تحريره يعود إلى 0 درجة. كل ما تحتاجه هو لوحة تطوير Arduino، ومؤازرة 9g، وزر، وعدد قليل من أسلاك Dupont ولوحة التجارب. وفقًا لمخطط الأسلاك والكود أدناه، يمكن إكمالها خلال 30 دقيقة.
قائمة الأجهزة المطلوبة:
لوحة تطوير الاردوينو (أي نموذج مقبول، هذه المقالة تأخذ النموذج الأكثر شيوعا كمثال)
أجهزة SG90 9g (أجهزة مؤازرة منخفضة الطاقة، مناسبة للمبتدئين)
زر اللمس (6 × 6 × 5 مم بأربعة أسنان)
المقاوم 10kΩ (للمقاومة المنسدلة)
اللوح وبعض الأسلاك دوبونت
خطوات الأسلاك (يجب أن تكون دقيقة):
1. قم بتوصيل خط إشارة المؤازرة (عادةً ما يكون برتقاليًا أو أصفر) بالدبوس 9 من Arduino
2. قم بتوصيل كابل الطاقة المؤازر (الأحمر) بمنفذ 5 فولت
3. قم بتوصيل السلك الأرضي المؤازر (البني أو الأسود) بمنفذ GND

4. يتم توصيل أحد أطراف الزر بجهد 5 فولت، ويتم توصيل الطرف الآخر بالدبوس 2.
5. قم بتوصيل مقاومة منسدلة بقيمة 10 كيلو أوم على التوازي بين الطرف 2 وGND للتأكد من أن الإدخال منخفض عند عدم الضغط عليه.
من الأخطاء الشائعة أن حذف المقاوم المنسدل سيؤدي إلى قفز حالة الزر بشكل متقطع. يتم توصيل أحد طرفي المقاومة بالطرف 2، والطرف الآخر متصل بـ GND.
#يشملمضاعفاتليمضاعفات; // إنشاء كائن مؤازر int ButtonPin = 2; // دبوس اتصال الزر int ButtonState = 0; // حالة زر التخزين intمضاعفاتنقاط البيع = 0؛ // زاوية المؤازرة الحالية void setup() { myServo.attach(9); // قم بتوصيل خط إشارة المؤازرة بالدبوس 9 pinMode(buttonPin, INPUT); // قم بتعيين دبوس الزر كمدخل myServo.write(0); // تهيئة زاوية المؤازرة إلى 0 درجة } void Loop() { ButtonState = digitalRead(buttonPin); // اقرأ حالة الزر if (buttonState == HIGH) { // عند الضغط على myServo.write(90); // يتحول المؤازرة إلى 90 درجة تأخير (15)؛ // انتظر حتى يصل المؤازرة إلى الموضع } else { // عند عدم الضغط على myServo.write(0); // يعود المؤازرة إلى 0 درجة تأخير (15)؛ } }
منطق الكود الأساسي هو استخدام digitalRead() للكشف المستمر عن مستوى الدبوس 2。بمجرد الضغط على الزر، أي عندما يكون الدبوس في الحالة العالية، يقوم المؤازرة بتنفيذ عملية الكتابة (90).。عندما يتم تحرير الزر، يعود المؤازرة إلى عملية الكتابة (0).. من خلال الكتابة المنظمة، نقوم بتقسيم البرنامج إلى أربع وحدات منظمة بشكل واضح: التهيئة والقراءة والحكم والتنفيذ، بحيث يمكنك توسيعه إلى وضع تحكم متعدد المفاتيح أو متعدد الزوايا في المراحل اللاحقة.
س: المؤازرة لا تتحرك على الإطلاق. ماذا يمكن أن يكون السبب؟
مصدر طاقة غير كاف. يجب أن يتم تشغيل المؤازرة بشكل منفصل. يمكن للمؤازرة 9g استخدام 5V مباشرة من Arduino، ويجب تشغيل المؤازرة الأكبر بواسطة مصدر طاقة خارجي.
س: اضغط على الزر مرة واحدة وسوف تدور المؤازرة مرة واحدة. هل سيعود إلى الصفر عند إطلاقه؟
ج: هناك خطأ منطقي في الكود. تأكد من استخدام بنية if-else المذكورة أعلاه، بدلاً من مجرد تحديد الشروط بعد الضغط.
س: ماذا أفعل إذا اهتز جهاز التوجيه أو كان التوجيه غير صحيح؟

1. تحقق مما إذا كان خط الإشارة فضفاضًا. 2. أضف تأخير (15) بعد الكتابة (). 3. سيوفر هذا وقتًا كافيًا للعمل للمؤازرة.
س: كيف يمكن تغييرها لتصبح 90 درجة بالضغط مرة واحدة والعودة إلى الصفر بالضغط مرة أخرى؟
يجب إضافة المتغيرات لتسجيل الحالة. كلما تم اكتشاف الضغط على الزر، يتم تغيير بت العلم وكتابة الزاوية المقابلة.
س: الأزرار بطيئة في الاستجابة وأحيانًا لا توجد استجابة؟
بسبب الارتعاش الميكانيكي للمفاتيح، يمكنك إضافة تأخير (10) بعد اكتشاف تغير المستوى للتخلص من الارتعاش، أو استخدام مكتبة Bounce2。
بعد إتقان التحكم الأساسي بزر واحد، يمكنك بسهولة تنفيذ الوظائف المتقدمة التالية:
1. زرين للتحكم للأمام والخلف على التوالي.
الزر A: اضغط للانتقال إلى 180 درجة، ثم حرره للعودة إلى 0 درجة
الزر B: اضغط للانتقال إلى 45 درجة، ثم حرره للعودة إلى 0 درجة
تعديل الكود: قم بإضافة دبوس زر ثانٍ واحكم بشكل منفصل
2. زر واحد للتنقل عبر ثلاث زوايا
// تتراكم الزاوية في كل مرة يتم الضغط عليها، 0→60→120→0 حلقة int angles[] = {0, 60, 120}; مؤشر كثافة العمليات = 0؛ if (buttonState == HIGH && !flag) { // مكافحة النقر المزدوج Index = (index+1) % 3; myServo.write(angles[index]); العلم = صحيح؛ }
3. اضغط لفترة طويلة للتدوير بشكل مستمر
اكتشف مدة الزر واستمر في زيادة الزاوية بعد أن تتجاوز 500 مللي ثانية حتى يتم تحريرها.
فيما يلي أمثلة التعليمات البرمجية الكاملة ذات الوظائف الموسعة. تعتمد جميع المبادئ على منطق الكتابة المنظم لهذه المقالة، أي الإدخال الواضح. يتكون هذا الإدخال من حالات رئيسية، تليها المعالجة، وهي حساب الزاوية، وأخيرًا الإخراج، والذي يُستخدم كأمر مؤازر.
التركيز على النقطة الأساسية: إن جوهر التحكم بزر Arduino في المؤازرة هو تحويل "الإشارات الرقمية إلى إشارات PWM". الأزرار تعطي مستويات عالية ومنخفضة، ويدور المؤازرة إلى الزاوية المحددة مسبقًا وفقًا لقيمة المستوى.طالما أن الأسلاك صحيحة (يجب عدم حذف المقاوم المنسدل) ويستخدم منطق الكود if-else أو آلة الحالة، فيمكن تحقيق تحكم مستقر.。
فيما يلي ثلاثة اقتراحات إجراءات يمكنك اتخاذها على الفور:
1. الليلة، سأقوم ببناء نسخة أساسية: استنادًا إلى مخطط الأسلاك والكود الوارد في هذه المقالة، استخدم لوحة التجارب لبناء دائرة كاملة، وشاهد شخصيًا مشهد دوران المؤازرة عند الضغط على الزر.
2. استكشاف التجربة عن طريق تغيير قيمة الزاوية: قم بتغيير حالة 90 درجة إلى أشكال رقمية عشوائية مثل 45 درجة، 135 درجة، 180 درجة، وما إلى ذلك، انتبه بعناية إلى التغييرات في موضع التوجيه الناتجة عن الملاحظة، ثم افهم أن نطاق المعلمات لوظيفة الكتابة () هو من صفر إلى 180 درجة.
3. أضف زرًا ثانيًا واعتمد على الكود الحالي لنسخ وحدة قراءة الأزرار لتحقيق نموذج أولي للمنتج بخصائص تفاعلية حقيقية يمكن التحكم فيها بواسطة أزرار مختلفة بزوايا مختلفة.
لديك بالفعل كل المعرفة الأساسية لتحقيق الماكينات التي يتم التحكم فيها بواسطة الأزرار من البداية. الآن يرجى فتح Arduino IDE، وتوصيل الأجهزة، والتحقق من كل خطوة بنفسك.
وقت التحديث:2026-04-29