ESP8266 x タクトスイッチ arduino

// タクトスイッチを接続するピン
const int switchPin = 2;
// LEDを接続するピン
const int ledPin =  0;
void setup() {
    Serial.begin( 115200 );
    // デジタル2番ピンを入力用として設定
    pinMode(switchPin, INPUT);
    // デジタル13番ピンを出力用として設定
    pinMode(ledPin, OUTPUT);
}
void loop() {
    // タクトスイッチの状態を取得
    int buttonState = digitalRead(switchPin);
    // タクトスイッチの状態をLEDに反映
    digitalWrite(ledPin, buttonState);
}
#define PIN_PUSHBUTTON 2
#define PIN_LED  0

#define DEBOUNCEDELAY 500

int iState_prev = LOW;
unsigned long ulMillis_prev = 0;
bool bLedState = false;

void setup()
{
    Serial.begin( 115200 );
    pinMode(PIN_PUSHBUTTON, INPUT);
    pinMode(PIN_LED, OUTPUT);
}

void loop()
{
    int iState = digitalRead(PIN_PUSHBUTTON);
    
    if( LOW == iState_prev  && HIGH == iState )
    { // OFF→ON時
        unsigned long ulMillis = millis();
        
        if( DEBOUNCEDELAY < (ulMillis - ulMillis_prev) )
        { // デバウンス時間よりも経過しているならば、正当な「OFF→ON」とみなす
            onPress();
        }
        
        ulMillis_prev = ulMillis;
    }
    
    iState_prev = iState;
}

void onPress()
{
    bLedState = !bLedState;
    digitalWrite(PIN_LED, bLedState ? HIGH : LOW );
}

source.zip