
int pinInterrupt = 3; //2 3接中断信号的脚
int pinLed = 4; //2 3接中断信号的脚
void onChange()
{
if ( digitalRead(pinInterrupt) == LOW )
{
Serial.println("Key Up");
digitalWrite(pinLed,HIGH);//蜂鸣器很奇怪反过来控制 关
}
else
{
Serial.println("Key Down");
digitalWrite(pinLed,LOW);//蜂鸣器很奇怪反过来控制 开
}
}
void setup()
{
Serial.begin(9600); //打开串口
pinMode( pinInterrupt, INPUT);//设置管脚为输入
pinMode( pinLed, OUTPUT);//设置管脚为输入
digitalWrite(pinLed,HIGH);//蜂鸣器很奇怪反过来控制 关
attachInterrupt( digitalPinToInterrupt(pinInterrupt), onChange, CHANGE);
/*
LOW 当引脚为低电平时,触发中断
CHANGE 当引脚电平发生改变时,触发中断
RISING 当引脚由低电平变为高电平时,触发中断
FALLING 当引脚由高电平变为低电平时,触发中断.
*/
}
void loop()
{}
测试样例2
//按键索引
int buttonPin1 = 2;
int buttonPin2 = 3;
//第一个按键状态记录
bool buttonState1 = 0;
//第二个按键状态记录
int buttonState2 = 0;
//第一个按键中断函数
void onChange1()
{
buttonState1=!buttonState1;
if(buttonState1)
Serial.println("bt1-on");
else
Serial.println("bt1-off");
}
//第二个按键中断函数
void onChange2()
{
buttonState2=buttonState2+1;
if(buttonState2==0){
Serial.println("bt2-video0");}
else if(buttonState2==1){
Serial.println("bt2-video1");}
else if(buttonState2==2){
Serial.println("bt2-video2");}
else{
buttonState2=0;
Serial.println("bt22-video0");
}
}
void setup() {
Serial.begin(9600); //打开串口
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
attachInterrupt( digitalPinToInterrupt(buttonPin1), onChange1, RISING);
attachInterrupt( digitalPinToInterrupt(buttonPin2), onChange2, RISING);
/*
LOW 当引脚为低电平时,触发中断
CHANGE 当引脚电平发生改变时,触发中断
RISING 当引脚由低电平变为高电平时,触发中断
FALLING 当引脚由高电平变为低电平时,触发中断.
*/
}
// 系统调用,无限循环方法
void loop() {
}
浙公网安备 33010602011771号