عدّ ضغطات الزر
جزء من قسم المدخلات في رحلة Arduino على Coddy. الدرس 5 من 22.
يمكن للحافة من الدرس السابق تشغيل أي شيء ينبغي أن يحدث مرة واحدة عند كل ضغطة. هنا تضيف واحدًا إلى عدّاد، باستخدام ++ من درس العدّ التصاعدي:
int presses = 0;
void loop() {
int reading = digitalRead(2);
if (reading == LOW && lastReading == HIGH) {
presses++;
Serial.println(presses);
}
lastReading = reading;
}يوضع presses فوق setup()، مثل lastReading، ليحتفظ بقيمته بين مرات تشغيل loop().
تقع الطباعة داخل if، لذا لا يظهر رقم إلا عندما يتغير العدّ: 1، 2، 3. أما خارج if فستُطبع القيمة نفسها آلاف المرات في الثانية.
التحدي
سهلالزر موصول بالمنفذ 2 (INPUT_PULLUP). احسب عدد مرات الضغط عليه:
- احتفظ بالعدد في
presses، المُعرّف أعلىsetup() - عند الضغط على الزر، أضف واحدًا واطبع العدد
اضغط Run، واضغط على الزر بضع مرات وراقب شاشة Serial، ثم اضغط Check.
جرّب بنفسك
const int buttonPin = 2;
int lastReading = HIGH;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int reading = digitalRead(buttonPin);
// عند الضغط على الزر، احسب عدد مرات الضغط واطبع العدد
lastReading = reading;
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المدخلات
تدرّب بنفسك: Playground لـ Arduino