Arduino外部中断按钮输入控制继电器输出

目录

一、硬件

1、硬件介绍

2、Arduino外部

(1)中断引脚

(2)中断触发方式

(3)中断函数

二、外部中断0

三、外部中断0、外部中断1


一、硬件

1、硬件介绍

Adruino单片机、按钮、继电器。

按钮:输入低电平读取有效。

继电器:输出低电平继电器吸合。

Arduino外部中断按钮输入控制继电器输出_第1张图片

系统整体

Arduino外部中断按钮输入控制继电器输出_第2张图片

按钮

2、Arduino外部

(1)中断引脚

Arduino外部中断按钮输入控制继电器输出_第3张图片

(2)中断触发方式

Arduino外部中断按钮输入控制继电器输出_第4张图片

(3)中断函数

(1)  attachInterrupt(interrupt, function,mode)

功能:对中断引脚进行初始化配置

参数: interrupt,中断编号,注意,这里的中断编号并不是引脚编号

function,中断函数名,当中断被触发后即会运行此函数所代表的中断函数。

mode,中断模式。上升沿信号触发还是下降沿信号触发

(2)detachInterrupt(interrupt)

功能:禁用外部中断

参数: interrrupt,需要禁用的中断编号

二、外部中断0

外部中断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;
}

三、外部中断0、外部中断1

代码

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

你可能感兴趣的:(电子&单片机,Arduino,单片机,嵌入式硬件,Arduino)