Hola:
Me funciona tu código y me parece más optimo. Gracias por tu tiempo. 
Si te refieres a esta línea:
if ((Estado == HIGH) && (Estado_Anterior == LOW))
{
Estado_Led = 1 - Estado_Led;
delay(20);
}
Es para que la variable vuelva a 0. el código fucniona como el tuyo, lo que no me gusta es como lo tenía sin optimizar.
Modifiqué algo el tuyo, que empezaba con el Led encendido y ahora empieza apagado como quiero, a parte de ponerle un antirrebotes.
int Pulsador = PIN_B0; // Pulsador conectado a GND o masa.
int Led = PIN_D0; // Led.
boolean Estado; // Estado de la variable.
boolean Estado_Led = true; // Estado del led. Par que inicie el LEd apagado.
boolean Estado_Anterior = false; //
void setup()
{
pinMode(Led, OUTPUT); // Salida para el Led pin 0 del Teensy ++ 2.0.
pinMode(Pulsador, INPUT); // Entrada del pulsador.
}
void loop()
{
Estado = digitalRead(Pulsador); // Lee el estado del botón.
delay(20); // Antirebotes.
if (Estado && !Estado_Anterior) // Pulsas por primera vez (paso de low a high).
{
Estado_Anterior=true; // No enta en el if hasta q sueltes el pulsador
Estado_Led=!Estado_Led; // De encendido a apagado y viceversa
digitalWrite(Led, Estado_Led);
}
if (!Estado && Estado_Anterior) // Pulsador soltado (paso de high a low)
{Estado_Anterior=false;} // Ya permitimos volver a encender o apagar
}
Otro mini reto.
No se si arduino será capaz de programarlo, me da la impresión que si.
Por ejemplo a pasos:
Tengo un Led a su salida en PIN_D0 y un ventilador cooler en su otra salida PIN_D1 y un botón como entrada PIN_B0. Lo que tiene que hacer es lo siguiente. Cuando pulse el botón PIN_B0, se activa el Led PIN_D0 y el ventilador PIN_D1. Eso es lo primero, ahora mira después del vídeo los pasos necesarios para poder hacer una cosa.
El ejemplo que puse en el vídeo no hace lo que quiero porque solo tenía la finalizadad en ese momento en ser capaz de encender y apagar un led y ventilador cada uno con su pulsador.
Ver vídeo. (Este vídeo no tiene nada que ver con lo que haremos ahora, es solo para dar ideas).
1) El Led empieza apagado cuando encienes Arduino.
2) Pulso el botón PIN_B0 y se enciende el Led PIN_D0 y ventilador PIN_D1.
3) Si vuelvo a pulsar el botón PIN_B0, el Led PIN_D0 parapadea cada segundo y el ventilador PIN_D1 se detiene. (1 seg. en on y otro seg. en off),
4) Vuelvo a pulsar el botón PIN_B0, el Led PIN_D0 deja de parpadear y queda encendido en ventilador PIN_D1 fijamente.
5) Cada vez que pulso el botón PIN_B0, ocurre siempre lo indicado arriba exceptuando cuando lo dejas pulsado durante 3 seg.
6) Esté en el estado que esté el Led y ventilador encendido o apagado, si dejas pulsado el botón PIN_B0 durante 3 seg. Se apaga el Led y se detiene el ventilador. (Es como cancelar un programa).
¿Se entiende lo que quiero decir?
Puedes hacer preguntas.
El programa parece que es muy complejo y laaaarrrrrrrrrgo. 