• LOW:LOWの間は何回でも発火
  • CHANGE:LOW→HIGH と HIGH→LOW の変化時に発火
  • RISING:LOW→HIGH の変化時に発火
  • FALLING:HIGH→LOW の変化時に発火
  • HIGH:HIGHの間は何回でも発火(UNOでは使用不可)
#include <TM1637Display.h> // 4-Dig LED Disp

#define FOURDIG_LED_CLK 4 // 7セグ4桁LEDはD4ピンに挿す
#define FOURDIG_LED_DAT 5
#define LED 8 // LEDはD8ピンに挿す
#define BUTTON 2 // ボタンはD2ピンに挿す

TM1637Display led4d(FOURDIG_LED_CLK, FOURDIG_LED_DAT);
int mode = 0; // 0=消灯モード、1=点滅モード
int count = 0; // ボタンを押した回数

void warikomi()
{
  led4d.showNumberDec(++count, false, 4, 0);
  if (mode) {
    mode = 0;
  } else {
    mode = 1;
  }
}

void setup() {
  led4d.setBrightness(0x0a);
  led4d.showNumberDec(count, false, 4, 0);
  pinMode(LED, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(BUTTON), warikomi, RISING ); // 0=D2、1=D3
}

void loop() {
  if (mode) {
    // LED点滅
    digitalWrite(LED, HIGH);
    delay(100);
    digitalWrite(LED, LOW);
    delay(100);
  } else {
    // LED消灯
    digitalWrite(LED, LOW);
  }
}