Menu
CoddyTech
flag Ar iconالعربيةdown icon

استخدام زرين في الوقت نفسه

جزء من قسم المدخلات في رحلة Arduino على Coddy. الدرس 7 من 22.

لكل زر دبوس خاص به واستدعاء digitalRead() خاص به. تقرأ اللوحة حالتهما واحدًا تلو الآخر، لكن بسرعة كبيرة تجعلهما يبدوان لك كأنهما في اللحظة نفسها.

غالبًا ما تحتوي آلات المصانع على زرين متباعدين، ولا تعمل إلا أثناء الضغط عليهما معًا. تكون كلتا اليدين على الزرين، لذلك لا يمكن لأيٍّ منهما الاقتراب من الشفرة. هذه القاعدة هي &&، من درس جمع الشروط:

bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;

if (left && right) {
  // الزران مضغوطان معًا
}

يحتاج كلا الدبوسين إلى INPUT_PULLUP. إذا نسيت تفعيلها لأحدهما، فسيكون ذلك الدبوس عائمًا، ما يجعله يقرأ LOW هنا، كما لو كان الزر مضغوطًا دائمًا.

challenge icon

التحدي

سهل

الأزرار موصولة بالمنفذين 2 و3، وكلاهما موصول بـ GND، ومصباح LED موصول بالمنفذ 13. أضئ مصباح LED فقط أثناء الضغط على الزرين معًا:

  • اضبط المنفذين 2 و3 على INPUT_PULLUP
  • اقرأ كل زر في متغير من النوع bool
  • أضئ مصباح LED عند الضغط على الزرين معًا، وإلا فأطفئه

اضغط على Run، واستمر في الضغط على زر واحد، ثم على الزرين معًا، ثم اضغط على Check.

جرّب بنفسك

const int leftPin = 2;
const int rightPin = 3;
const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  // اضبط طرفَي الزرين على INPUT_PULLUP
}

void loop() {
  // اقرأ حالة الزرين، وأضئ مصباح LED فقط أثناء الضغط عليهما معًا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المدخلات

تدرّب بنفسك: Playground لـ Arduino