@claude1959, your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with (nor for advise on) your project
See About the Installation & Troubleshooting category.
===
Debouncing will always result in delays but you don't need it with the long 10 second wait that you have. You need a millis based approach. Below should work.
void loop()
{
// start time when button became pressed.
static uint32_t startTime;
// remember if button is pressed or not
static bool buttonIsPressed = false;
byte buttonState = digitalRead(buttonPin);
if (buttonState == LOW)
{
buttonIsPressed = true;
startTime = millis();
}
else
{
buttonIsPressed = false;
digitalWrite(somePin, LOW);
}
if (buttonIsPressed == true)
{
if (millis() - startTime >= 10000UL)
{
digitalWrite(somePin, HIGH);
}
}
}
Connect button between pin and GND and use pinMode(buttonPin, INPUT_PULLUP) in setup().
// Edit
There will be a slight 'delay' due to bounce before the startTime becomes stable. If you don't want that, you have to look at state change detection and detect when the button becomes pressed.