// 按下亮
// 附:attachInterrupt()函数的语法介绍
// attachInterrupt( digitalPinToInterrupt(pin) , function, mode)
// digitalPinToInterrupt(pin) :取得引脚pin的中断号
// function:中断发生时调用的函数,此函数必须不带参数和不返回任何值。
// 该函数称为中断服务程序。
// mode:定义何时发生中断以下四个contstants预定有效值:
// LOW 当引脚为低电平时,触发中断
// CHANGE 当引脚电平发生改变时,触发中断
// RISING 当引脚由低电平变为高电平时,触发中断
// FALLING 当引脚由高电平变为低电平时,触发中断.
int led = 13;
int btn = 3;
int btnstate = 0;
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(btn, INPUT);
attachInterrupt(digitalPinToInterrupt(btn), blink, CHANGE);
pinMode(A0, INPUT);
}
void loop() {
int value = analogRead(A0);//对的数字引脚
// int value = analogRead(2);
Serial.println(value);
delay(100);
}
//中断函数blink()
void blink() {
//中断控制(2,3脚),按下不动,松开控制
if (digitalRead(btn) == LOW) {
Serial.println("Key Down");
btnstate=!btnstate;
digitalWrite(led, btnstate);
} else {
Serial.println("Key Up");
}
}