Tak si to musíte nějak podmínit. Když to je přímo v loopu, tak ten se spouští pořád dokola. Potom se „impulz“ vysílá pořád dokola.
Nevím, jak přesně to má fungovat. Ale třeba na stisknutí tlačítka může reagovat takto (zjednodušeno).
void setup(){
pinMode(2, INPUT);
pinMode(3, OUTPUT);
}
void loop(){
if(digitalRead(2) == HIGH){
digitalWrite(3, HIGH);
delay(500);
digitalWrite(3, LOW);
delay(1000);
}
}