لنجعل الأردوينو يشعر بالبيئة، نستخدم digitalRead(). الأزرار تعمل كمفاتيح تقطع أو توصل التيار. لكن إذا كان الزر غير مضغوط، هل الدبوس يقرأ 0 أم 1؟ الإجابة: سيقرأ قيماً عشوائية لأنه 'عائم' ويتأثر بالكهرباء الساكنة بالهواء. لحل هذا، نستخدم مقاومة سحب (Pull-down) لربطه بـ GND ليكون 0 باستقرار، أو نسهل الأمر ونستخدم المقاومة المدمجة داخل الأردوينو باستخدام وضع INPUT_PULLUP.
المكونات المطلوبة
Arduino Unoزر ضغاط (Push Button)أسلاك
ملاحظات التوصيل
صل أحد طرفي الزر بـ GND والطرف الآخر بالدبوس 2. سنستخدم INPUT_PULLUP داخلياً.
مثال الكود
void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
// الزر يعطي LOW عند الضغط لأنه موصل بالـ GND
if (digitalRead(2) == LOW) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
الأخطاء الشائعة
نسيان استخدام PULLUP مما يجعل الليد يومض عشوائياً بمجرد اقتراب يدك من الزر.