Arduino中断例程及常用arduino开发板中断引脚汇总

外部中断

常用arduino开发板外部中断引脚

不同的Arduino开发板外部中断引脚不同,总结常用的有如下几个:

  • UNO
int.0int.1
23

具体见图:
UNO

  • Ethernet
int.0int.1
23
  • Nano
int.0int.1
23

具体见图:
nano

  • Mini
int.0int.1
23

具体见图:
mini

  • Mega2560
int.0int.1int.2int.3int.4int.5
2321201918

具体见图:
mega

  • Leonardo
int.0int.1int.2int.3
3201

具体见图:
Leonardo

  • micro
int.0int.1int.2int.3
32RX1TX1

micro

  • Yun(详情见图)
int.0int.1int.2int.3
18192021

具体见图
yun

  • 2009
int.0int.1int.2int.3
18192021

具体见图:
2009

int.0int.1
23
  • pro
int.0int.1
23

具体见图:
pro

  • promini
int.0int.1
23

具体见图:
promini

外部中断程序编写

外部中断函数

中断函数即执行的函数,这个函数无返回值且没有参数。
定义中断函数后,在Setup初始化函数中配置如下函数:

attachInterrupt(interrupt, function, mode);
//interrupt为中断号,function为中断函数,mode为中断触发模式

在Arduino Due中,中断设置为:

attachInterrupt(pin, function, mode);
 //due 的每个IO口均可进行外部中断,故引脚号为中断号。

退出中断所有型号的控制板都可用中断分离函数detachInterrupt(interrupt );来取消中断设置。

外部中断模式

外部中断分为四种模式:

LOW低电平触发
CHANGE电平变化时触发(高电平变低电平、低电平变高电平)
RISING上升沿触发
FALLING下降沿触发
HIGH高电平触发(该中断模式仅适用于Arduino due)

例程

以按键触发为例,准备材料:

  • Uno\Nano板

  • 下载数据线

  • 面包板及杜邦线

  • LED灯

  • 常用限流电阻
    如图连接
    连接图

int LED = 13;       //定义LED为数字引脚13
int key = 2;      //按键触发中断0
char state = LOW;//标志位
void setup() {
 pinMode(LED, OUTPUT);         //LED为输出模式
  pinMode(key, INPUT_PULLUP);        //输入模式
  attachInterrupt(0, blink, FALLING);//下降沿触发中断0,调用blink函数
}

void loop() {
  if (state == HIGH) {        // 如果state为HIGH
    state = LOW;
   digitalWrite(LED, HIGH);  // 亮
    delay(500);          //延时500ms
  }
  else {
    digitalWrite(LED, LOW);    // 否则,灭
  }
}
void blink() {               //中断函数blink()
  state = !state;             //一旦中断触发,state状态反转
}

效果为,每按下一次按键LED灯就闪一次。
类似可套用于其他工程中。

定时器中断

首先需要添加MsTimer2库,并在程序中引用头文件 MsTimer2.h。

例程

使用例程如下:

#include <MsTimer2.h>     //定时器库的头文件
 
int num = 0; //计数
 
//中断服务程序
void onTimer()
{
  Serial.print("The num is : ");
  Serial.println(num++);
}
 
void setup()
{
  Serial.begin(9600); //初始化串口
  
  MsTimer2::set(1000, onTimer); //设置定时器中断,(时长,中断函数)
  MsTimer2::start(); //开始计时
}
 
void loop(){
}

打开串口查看器
效果为:
The num is : 0
The num is : 1
The num is : 2
……
以此类推

  • 29
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Arduino OLED 例程是一种可以在Arduino开发板上控制OLED显示屏的程序代码。这个例程是基于Arduino库的,通过在代码中调用库函数来实现与OLED显示屏的通信和控制。 使用Arduino OLED例程的第一步是将OLED显示屏连接到Arduino开发板。一般来说,我们需要将OLED显示屏的VCC引脚连接到Arduino的5V引脚,GND引脚连接到Arduino的GND引脚,SCL引脚连接到Arduino的A5引脚,SDA引脚连接到Arduino的A4引脚。 在代码中,我们需要包含必要的库文件,例如Adafruit_SSD1306.h库和Adafruit_GFX.h库,这些库提供了适用于OLED显示屏的函数和方法。 接下来,我们需要创建一个Adafruit_SSD1306对象,并在设置函数中指定OLED显示屏的宽度和高度。然后,通过调用begin函数初始化显示屏。 在主循环中,我们可以使用一系列函数来控制OLED显示屏的各种功能。例如,我们可以使用clearDisplay函数清除显示屏,使用setTextSize函数设置文本大小,使用setTextColor函数设置文本颜色,使用setCursor函数设置文本光标位置,然后使用print函数在显示屏上显示文本。 除了文本,我们还可以在OLED显示屏上显示图形,例如圆形、矩形和直线。只需调用相应的函数,设置参数即可。 总之,Arduino OLED 例程是一种通过编写代码来控制OLED显示屏的方法。通过使用适当的库和函数,我们可以实现各种功能,包括显示文本和图形。这是一种简单而灵活的方法,可以根据需要自定义OLED显示屏的内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值