كود البحث

مشروع أردوينو سهل: التحكم في سيرفو بزر ضغط من 180 درجة إلى 0 والعودة

مشروع أردوينو سهل: التحكم في سيرفو بزر ضغط من 180 درجة إلى 0 والعودة

مقدمة

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

مكونات المشروع والتوصيلات

ستحتاج إلى لوحة أردوينو ومحرك سيرفو وزر ضغط.

تعليمات التوصيل:

  • محرك السيرفو: قم بتوصيل سلك الإشارة (عادةً أصفر/برتقالي) بالدبوس 3 في الأردوينو، وسلك الطاقة (أحمر) بـ 5V، وسلك الأرضي (أسود/بني) بـ GND.
  • زر الضغط: قم بتوصيل أحد الأرجل بالدبوس الرقمي 2 والرجل الأخرى بدبوس GND. هذا كل شيء! باستخدام المقاومة الداخلية للسحب للأعلى في الأردوينو، لا تحتاج إلى مقاومة خارجية.

 

شرح الكود

ينقسم البرنامج إلى ثلاثة أجزاء رئيسية: تعريفات الدبابيس، ودالة setup()، ودالة loop().

تعريفات الدبابيس

يقوم هذا القسم بإعداد المكتبات المطلوبة وتعيين أسماء ذات معنى للدبابيس التي تستخدمها.

#include <Servo.h>

const int servoPin = 3;
const int buttonPin = 2;

Servo myServo;

دالة setup()

تحتوي دالة setup() على الكود الذي يعمل مرة واحدة فقط عند تشغيل لوحة الأردوينو أو إعادة تعيينها. تُستخدم للتكوين الأولي.

void setup() {
  myServo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
  myServo.write(0);
}

التغيير الحاسم هو pinMode(buttonPin, INPUT_PULLUP);. هذا يعمل على تفعيل مقاومة داخلية تسحب جهد الدبوس إلى HIGH. عند الضغط على الزر، يتم توصيل الدبوس بالأرضي وينخفض الجهد إلى LOW.

دالة loop()

تحتوي دالة loop() على المنطق الرئيسي للبرنامج وتعمل بشكل متكرر إلى الأبد بعد انتهاء دالة setup().

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW) {
    myServo.write(180);
  } else {
    myServo.write(0);
  }
}

المنطق هنا معكوس الآن. نظرًا لأن الضغط على الزر يؤدي إلى إشارة LOW، يتم استخدام الشرط if (buttonState == LOW) لتحريك السيرفو إلى 180 درجة.

الصور

Arduino wiring for Servo motor with a push button
Arduino wiring for Servo motor with a push button
795-Ardunino code to control servo motor using a push button to move between 180 and zero degree
اللغة: C++
#include <Servo.h>
/*
 * This is sketch for controlling servo motor. when push button is pressed, the servo moves to 180 degreees and stays there. when the push button is released, the servo motor returns back to 0 degree.
 */
 // Define the pin for the servo motor
const int servoPin = 3;
 // Define the pin for the push button
const int buttonPin = 2;

 // Create a Servo object
Servo myServo;

void setup() {
 // Attach the Servo object to the servo pin
  myServo.attach(servoPin);
 // Set the button pin as an input
  pinMode(buttonPin, INPUT);
 // Start the servo at 0 degrees
  myServo.write(0);
}

void loop() {
 // Read the state of the push button
  int buttonState = digitalRead(buttonPin);

 // If the button is pressed (HIGH)
  if (buttonState == HIGH) {
 // Move the servo to 180 degrees
    myServo.write(180);
  } else {
 // If the button is released (LOW), move the servo back to 0 degrees
    myServo.write(0);
  }
}

الأشياء التي قد تحتاجها

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

لا توجد ملفات متاحة.