// 按下亮
// 附: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");    
  }
}