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