richiesta modifica codice

Dipende da cosa devi fare. Sinceramente non capisco quel delay messo così, a meno che tu non voglia ritardare la riposta del pulsante.

L'uso del delay nel debounce è giusto per intercalare 2 letture di un pin.
All'inizio si parlava di antirimbalzo per cercare di evitare false letture sui pulsanti. La soluzione te l'ho già data. Ripeto (con il codice che hai messo ora):

if (digitalRead(pin) == LOW)) {                     
    delay(50);
    if (digitalRead(pin) == LOW)) {
        val1_1 = 1;
        val2_2 = 0;
        digitalWrite(ledPin5_2, HIGH);
    }
}

Così ha un senso