Button for Delay Select
Do not use delay but millis().
Example:

#define BTN 2
#define MAX_MODE 1   //2 modes

const unsigned int times[] = {1000, 2000};

unsigned int time = times[0];

unsigned long btn_tm = 0;
unsigned long l_time = 0;

byte mode = 0;



void setup(){
  Serial.begin(9600);
  pinMode(BTN, INPUT);
}

void loop(){
  if(digitalRead(BTN) == 1 &amp;&amp; millis() - btn_tm &gt; 200){
    btn_tm = millis();
    mode ++
    if(mode &gt; MAX_MODE) mode = 0;
    time = times[mode];
 } 
  if(millis() - l_time &gt;= time){
    l_time = millis();
    if(mode == 0) Serial.println("mode 0");
    if(mode == 1) Serial.println("mode 1");
 } 
}


Read it and try it.