un bouton , un servo, un arduino, plus de cerveau!!!

bonjour , nouveau blocage!
j' ai intégré une deco lumineuse, qui fonctionne , pour l'instant la fonction est simple, mais par contre la lecture de mon bouton se fait en fin de boucle lumineuse, je voudrais donc attacher une fonction interupt, mais je crois savoir qu'on ne peut pas utiliser delay avec,
voici le code

#include <Servo.h> 

Servo myservo;  

const int buttonPin = 2;     // bouton sur pin 2
const int relayreed =  12; // led 12 sortie pour reed appareil photo

int buttonState = 0;

int ledPins[] = {14,15,16,17,18,19,8,10,11,}; 

void setup()
{
  
 for(int i = 0; i < 9; i++){        
      pinMode(ledPins[i],OUTPUT); 
 
  pinMode(relayreed, OUTPUT);
  pinMode(buttonPin, INPUT);
  myservo.attach(9);  // servo sur pin 9
  myservo.write(45); //initialise le servo en position repos zero
  delay(20); // pour stabilisation
  }                                   
 
}
 

void loop()                     
{
  oneAfterAnotherLoop();   
 

buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {  // bouton etat haut detecté  
    digitalWrite(relayreed, HIGH);  // led ON
    myservo.write(178);       // va en butée inverse     
    delay(250);  // stabilisation 250 ms
    digitalWrite(relayreed, LOW);  // led OFF
    myservo.write(40); // retour en zero
    delay(20); // pour stabilisation 
    {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], HIGH);  //allume tout 
    delay(100); } 
    {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], LOW);  //etteind tout
    delay(100); }
    {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], HIGH);  //allume tout 
    delay(100); } 
    {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], LOW);  //etteind tout
    delay(100); }
    {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], HIGH);  //allume tout 
    delay(100); }  
    {digitalWrite(ledPins[0,1,2,3,4,5,6,7,8,9], LOW);  //etteind tout
    delay(100); }
  
}}
 
void oneAfterAnotherLoop(){
  int delayTime = 300; 
  for(int i = 0; i <= 8; i++){
    digitalWrite(ledPins[i], HIGH);  
  delay(delayTime);              }                                  

  for(int i = 8; i >= 0; i--){  
    digitalWrite(ledPins[i], LOW);  
    delay(delayTime);
  }                                         
                                     
}

en plus je ne parvient pas a faire un effet flash (tout les led allumée /eteintes 3x,

bref je coince et si une bonne ame qui passe par là peut"corriger ma copie" ca m'aiderais grandement
Merci