Relay Board, dubbi...

Pure io ho questo problema... Il mio programma è il seguente:

const int buttonPin = 8;
const int avantiPin = 4;
const int indietroPin = 2;

int buttonState = 0;

void setup() {
  
  pinMode (avantiPin, OUTPUT);
  pinMode (indietroPin, OUTPUT);
  pinMode (buttonPin, INPUT);
  }
  
  void loop (){
    
    buttonState = digitalRead (buttonPin);
    
    if (buttonState == HIGH) {
      digitalWrite (avantiPin, HIGH);
      delay (3000);
      digitalWrite (avantiPin, LOW);
      digitalWrite (indietroPin, HIGH);
      delay (3000);
      digitalWrite (indietroPin, LOW);
      }

    else {
        digitalWrite (avantiPin, LOW);
        digitalWrite (indietroPin, LOW);
        }
        }

nei pin 2 e 4 sono collegati due segnali che attivano il relè, il pin 8 è collegato ad un interruttore, come consiglia sull'esempio Button. Quando il bottone è aperto, i relè rimangono aperti, quando lo chiudo, il programma di attivazione di avanti e indietro funzionano correttamente...
Qualcuno che possa illuminarmi??