#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 4, 5, 6, 7);
#define pb4 2 // زر الزيادة
#define pb3 3 // زر النقصان
int buttonState = 0;
int buttonStateIncrement = 0;
int count = 0;
// توقيت الزر
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // تأخير الارتداد
void setup() {
lcd.begin(16, 2);
pinMode(pb4, INPUT_PULLUP);
pinMode(pb3, INPUT_PULLUP);
updateDisplay();
}
void loop() {
int reading = digitalRead(pb4);
int readingIncrement = digitalRead(pb3);
// إذا كان الزر في حالة ضغط
if (reading == LOW && (millis() - lastDebounceTime) > debounceDelay) {
lastDebounceTime = millis(); // تحديث توقيت الضغط
count++;
updateDisplay();
delay(500); // تأخير بسيط لمنع الضغط المتكرر
}
// إذا كان زر النقصان في حالة ضغط
if (readingIncrement == LOW && (millis() - lastDebounceTime) > debounceDelay) {
lastDebounceTime = millis(); // تحديث توقيت الضغط
count--;
if (count < 0) { // عدم السماح بأن يكون العدد سالبًا
count = 0;
}
updateDisplay();
delay(500); // تأخير بسيط لمنع الضغط المتكرر
}
}
// دالة لتحديث العرض على الشاشة
void updateDisplay() {
lcd.clear(); // مسح الشاشة
lcd.setCursor(0, 0);
lcd.print("count: ");
lcd.print(count);
}