استخدام زرين في الوقت نفسه
جزء من قسم المدخلات في رحلة Arduino على Coddy. الدرس 7 من 22.
لكل زر دبوس خاص به واستدعاء digitalRead() خاص به. تقرأ اللوحة حالتهما واحدًا تلو الآخر، لكن بسرعة كبيرة تجعلهما يبدوان لك كأنهما في اللحظة نفسها.
غالبًا ما تحتوي آلات المصانع على زرين متباعدين، ولا تعمل إلا أثناء الضغط عليهما معًا. تكون كلتا اليدين على الزرين، لذلك لا يمكن لأيٍّ منهما الاقتراب من الشفرة. هذه القاعدة هي &&، من درس جمع الشروط:
bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;
if (left && right) {
// الزران مضغوطان معًا
}يحتاج كلا الدبوسين إلى INPUT_PULLUP. إذا نسيت تفعيلها لأحدهما، فسيكون ذلك الدبوس عائمًا، ما يجعله يقرأ LOW هنا، كما لو كان الزر مضغوطًا دائمًا.
التحدي
سهلالأزرار موصولة بالمنفذين 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 فقط أثناء الضغط عليهما معًا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المدخلات
1الأزرار
عرض حالة الزرمقاومة السحب إلى الأسفلمقاومة السحب الداخلية إلى الأعلىالتبديل عند كل ضغطةعدّ ضغطات الزرإزالة ارتداد الزراستخدام زرين في الوقت نفسهتدرّب بنفسك: Playground لـ Arduino