SOLUCIONADO -- Problemas con contador matematico

Jajajajaaj, pero que marujitas sois.
Al final y después de rebuscar y hacer memoria, lo he resuelto.
Os dejo el código, por si os sirve de algo.

Marcial, no te ofendas, pero tu código es un ladrillo y es complejo de entender.
Gustame moito as berzas, pero a tua horta, ben asemexa unha selva. Pero gracias, gracias, gracias. :stuck_out_tongue:

Jo!-Papa. No seas tan malo, y ayudanos un poco más.

Josemanu: Creo que con el código que hice, este tema de los cambios de estado, a mi por lo menos me costó, pero me quedó mas claro.
De todas formas para evitar los retornos de pulsación he puesto unos condensadores .

El único problema que encuentro es que no se como diferenciar o como hacer para diferenciar, entre asiganarle un valor numérico a una variable o asignarle un valor del PIN:
int contador = 1 (¿la variable contador le asigno el número 1 o el pin 1?)

int cerrojo = 0 ;
void led();

void setup()
{
pinMode( 8, INPUT);
pinMode( 9, INPUT);
pinMode( 13 , OUTPUT);
cerrojo = 0 ;

}

void loop()
{
if (( digitalRead( 8 ) && ( ( cerrojo ) == ( 0 ) ) ))
{
cerrojo = 1 ;
led();
}
if (digitalRead(9))
{
cerrojo= 0 ;
}
}

void led()
{
digitalWrite( 13 , HIGH );
delay( 1000 );
digitalWrite( 13 , LOW );

¿Sabeis donde puedo encontra unos módulos GSM para arduino económicos?
Hasta la próxima. Ha sido un placer.