No hacer loop en programa

Me estoy iniciando en arduino, con lo que pido disculpas de antemano si la pregunta es tonta, pero estoy harto de buscar y (quizas porque no estoy buscando correctamente) no encuentro la solución.

Estoy con un proyectito muy básico para hacer lo siguiente, quiero que en el arduino esten conectados un motor y un pulsador, y lo que quiero es que la primera vez que pulse el pulsador, se encienda el motor durante un par de segundos, (con los conocimientos aprendidos en el kit de iniciacion....) pero que aunque se vuelva a pulsar o se deje pulsado, no vuelva a encenderse el motor. Osea que solo tenga una "oportunidad para encenderlo" todo me funciona, lo unico que no soy capaz de hacer es que no pas nada la segunda vez que pulso el pulsador y las sucesivas..

os pongo el codigo...

const int button1Pin = 2; // pin del pulsador
const int motorPin = 9; // pin del motor

void setup()
{
pinMode(button1Pin, INPUT);
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int button1State; // variables para que contengan los estados pulsador

button1State = digitalRead(button1Pin);

if (button1State == LOW)
{
digitalWrite(motorPin, HIGH);
delay(1000);
}
else
{
digitalWrite(motorPin, LOW);
}
}

Me contesto yo solo.....

puse al final de la funcion un Delay con variable muy alto

No se si es lo mas ortodoxo pero... ahí va!!

Quizás más ortodoxo sería poner una variable de control:
const int button1Pin = 2; // pin del pulsador
const int motorPin = 9; // pin del motor
int pulsado=0; // indica cuántas veces se ha pulsado el botón

void setup()
{
pinMode(button1Pin, INPUT);
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int button1State; // variables para que contengan los estados pulsador

button1State = digitalRead(button1Pin);

if (button1State == LOW && pulsado<1) // Si ponemos pulsado<5 permitiría 5 pulsaciones
{
digitalWrite(motorPin, HIGH);
delay(1000);
pulsado++;
}
else
{
digitalWrite(motorPin, LOW);
}
}

Hola,
lo que desees ejecutar una sola vez lo pones en el setup()
Y el loop lo dejas vacío

void loop()
{
}

En este caso, es más sencillo que utilices la opción de "noter", la opción que da "curro92" es totalmente valida, pero para usuarios algo más avanzados, pues tendrías que hacer que el programa se parase en el setup() hasta que alguien pulsase el boton, despues simplemente el programa no haría nada...

Gracias a los tres por la pronta respuesta,

Note, entiendo bien el condicional que me pones en el If y veo la sintaxis sin problemas, lo que no entiendo es la función que pones debajo de delay "pulsado++"

pulsado++ es lo mismo que pulsado=pulsado+1
simplemente es otra manera de añadir uno a la variable