Правильно Вам говорят, что задержки не будет. Добавил в код Delay. Но более эстетично будет заменить это потом на millis.
И еще момент. Я надеюсь , вы не собираетесь подключать напряжение 9В к пину 8, а нагрузку к пину 3?
на 8 пин нужно подавать логический сигнал 5В, поэтому поставьте резистор, чтобы ограничить напряжение и ток.
Нагрузку слабый сигнал из пина 3 тоже не включит. Используйте Мосфет, а сигнал из пина 3 будет открывать затвор Мосфета.
int led = 3 ;
int shock = 8;
int value;
void setup ()
{
pinMode (led, OUTPUT) ;
pinMode (shock, INPUT) ;
}
void loop ()
{
value = digitalRead (shock,) ;
if (value == HIGH)
{
delay (2000); // Задержка 2 секунды
digitalWrite (led, HIGH);
}
else
{
digitalWrite (led, LOW);
Delay(20000);
}
}