- 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);
}
}