سلام بنده می خواستم برای اینکه بتونم با زدن یه کلید فشاری مثلا یه مقدار ثابتی به یه شمارنده ای اضافه بشه و با نگه داشتنش به مدت فرضا 2 ثانیه از مقدار اون شمارنده یه مقدار ثابتی کم بشه . برای این من اومدم از پین وقفه شماره 3 برد یونو استفاده کردم و با کدهای IF , While هم که امتحان کردم جواب نداد برای حالت دومش و نمی دونم چطور باید این رو ایجاد کرد کسی اطلاعی داره یا می تونه راهنمایی کنه ؟ چون داخل تابع وقفه دیگر توابع مربوط به تایمر جواب نمی ده مثل همین millis() . با یه همچین کدی براي تابع وقفه باز هم جواب نداد 
	کد:
	void ButtonFun1() {
//  read the state of the pushbutton value:
    Treshold=Treshold+4;
//        buttonState[0] = digitalRead(interrupt_buttonPin);
//        buttonState[1] = digitalRead(interrupt_buttonPin);
//        if (buttonState[0] == HIGH && buttonState[1] == HIGH) {
//          Treshold=Treshold-4;
//        }
//while (buttonState[0] == HIGH && buttonState[1] == HIGH) {
//    Treshold=Treshold-4;
//  }
}
  
با دو تا تابع وقفه جداي از هم كه با تاخير 1 ثانيه اي كار كنند هم جواب نداد طوري كه مثلا در اين 1 ثانيه كه كليد وصل است از شمارنده كم كند
	کد:
	
attachInterrupt(digitalPinToInterrupt(interrupt_buttonPin), ButtonFun1 ,RISING);
 detachInterrupt(digitalPinToInterrupt(interrupt_buttonPin));
 delay(1000);
 attachInterrupt(digitalPinToInterrupt(interrupt_buttonPin), ButtonFun2 ,RISING);
 detachInterrupt(digitalPinToInterrupt(interrupt_buttonPin));
کدهای بالا در Void Loop گذاشتم با توابع وقفه زیر :
void ButtonFun1() {
//  read the state of the pushbutton value:
    Treshold=Treshold+4;
}
void ButtonFun2() {
            Treshold=Treshold-4;
}