目录
Adruino单片机、按钮、继电器。
按钮:输入低电平读取有效。
继电器:输出低电平继电器吸合。
系统整体
按钮
(1)? attachInterrupt(interrupt, function,mode)
功能:对中断引脚进行初始化配置
参数: interrupt,中断编号,注意,这里的中断编号并不是引脚编号
function,中断函数名,当中断被触发后即会运行此函数所代表的中断函数。
mode,中断模式。上升沿信号触发还是下降沿信号触发
(2)detachInterrupt(interrupt)
功能:禁用外部中断
参数: interrrupt,需要禁用的中断编号
外部中断0,对应引脚2。程序使用下降沿触发方式。
代码
bool state = true;
void setup()
{
Serial.begin(9600);
attachInterrupt(0,StateChange,FALLING); //外部中断0,对应输入的引脚2。下降沿触发。StateChange:中断函数
pinMode(5,OUTPUT); //
pinMode(2,INPUT_PULLUP);
}
void loop()
{
if(state)
{
digitalWrite(5,HIGH);
}
else
{
digitalWrite(5,LOW);
}
}
//中断函数
void StateChange()
{
state= !state;
}
代码
bool rstate = false; //外部中断0,控制输出
bool bstate = false; //外部中断1,控制输出
void setup()
{
Serial.begin(9600);
attachInterrupt(0,RStateChange,FALLING); //外部中断0,对应输入的引脚2。下降沿触发。对应中断函数:StateChange()
attachInterrupt(1,BStateChange,FALLING); //外部中断1,对应输入的引脚3。下降沿触发。对应中断函数:BStateChange()
pinMode(5,OUTPUT);
pinMode(7,OUTPUT);
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
}
void loop()
{
digitalWrite(5,rstate);
digitalWrite(7,bstate);
}
//外部中断0函数
void RStateChange()
{
rstate = !rstate;
bstate = false;
}
//外部中断1函数
void BStateChange()
{
bstate = !bstate;
rstate = false;
}