Incrementing/ Decrementing values depending on the duration button is pressed

Hi There, I'm fairly new to the programming scene.

I have a project whereby I need to increment and decrement a value using two buttons. This function works perfect but the problem lies that i can only increment or decrement by one amount.

Meaning:

if button is pressed once it add 1 to the exciting value for increment vice verse.
Could you please help me with code: when pressed once increment with 1, if hold in more than 2 seconds start increment with say 5 until released and if hold for 3 sec increment with 10's till button is released.

Your assistance will be appreciated

Here is the simple button code that I'm using.

buttonState5 = digitalRead(buttonPin);

// compare the buttonState to its previous state

if (buttonState5 != lastButtonState) {

// if the state has changed, increment the counter

if (buttonState5 == HIGH)

{
delay(400);
buttonPushCounter += 5;
lcd.setCursor(10,1);

lcd.print(buttonPushCounter);
}

}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState5;

// read the pushbutton down input pin:

buttonState6 = digitalRead(buttonPin1);

// compare the buttonState to its previous state

if (buttonState6 != lastButtonState) {

// if the state has changed, decrement the counter

if (buttonState6 == HIGH)

{
delay(400);
buttonPushCounter -=5;
lcd.setCursor(10,1);

lcd.print(buttonPushCounter);
}

}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState6;

///////////////////////////////////////////////////
////////////////////////////////////////////////////

lcd.setCursor(2, 1);
delay(3); //time for adc to settle
lcd.print(Pres3);
lcd.setCursor(2, 1);
lcd.print(" ");
lcd.setCursor(2, 1);
lcd.print(Pres3);
lcd.setCursor ( 0, 1);
lcd.print("A");
lcd.setCursor ( 1, 1);
lcd.print("=");

///Set Value Display

lcd.setCursor(12, 1);
delay(3); //time for adc to settle
lcd.print(Pres4);
lcd.setCursor(12, 1);
lcd.print(" ");
lcd.setCursor(12, 1);
lcd.print(Pres4);
lcd.setCursor ( 10, 1);
lcd.print("S");
lcd.setCursor ( 11, 1);
lcd.print("=");

if (buttonState2 == LOW) { goto KEY;
}
else if (buttonState2 == HIGH) { goto TEST;
}

@willerpw:
go back and edit your post to add "code tags" around the code... that is the "#" in the menu. Just hi-light the code, click #, resave. This one little thing drives many of the members into the ether...

As for as the button code, take a look at:
https://www.inkling.com/read/arduino-cookbook-michael-margolis-2nd/chapter-5/recipe-5-4

If issues, keep the thread going with specific questions and your exact code at that time.

Ray

Thanx will do so,

Will update on new findings.