基本信息
文件名称:Arduino 系列:Arduino MKR1000 (基于 SAMD21)_(7).数字输入输出操作.docx
文件大小:22.9 KB
总页数:18 页
更新时间:2025-06-27
总字数:约8.7千字
文档摘要

PAGE1

PAGE1

数字输入输出操作

在本节中,我们将详细介绍如何在ArduinoMKR1000上进行数字输入输出操作。数字输入输出是单片机最基本的通信方式之一,通过控制GPIO(通用输入输出)引脚,可以实现对各种传感器和执行器的读取和控制。我们将从以下几个方面进行讲解:

数字输出引脚的配置与使用

数字输入引脚的配置与使用

内部上拉/下拉电阻的使用

中断与外部事件处理

示例项目:LED控制与按钮检测

数字输出引脚的配置与使用

数字输出引脚可以用于控制各种外部设备,如LED、继电器、电机等。配置数字输出引脚的基本步骤如下:

引脚模式设置:使用pinMode()函数将引脚设置为输出模式。

引脚状态控制:使用digitalWrite()函数设置引脚的高低电平状态。

代码示例:控制LED

假设我们使用ArduinoMKR1000的一个数字输出引脚(例如引脚3)来控制一个LED。

//定义LED连接的引脚

constintledPin=3;

voidsetup(){

//将引脚3设置为输出模式

pinMode(ledPin,OUTPUT);

}

voidloop(){

//将引脚3设置为高电平,LED点亮

digitalWrite(ledPin,HIGH);

delay(1000);//延时1秒

//将引脚3设置为低电平,LED熄灭

digitalWrite(ledPin,LOW);

delay(1000);//延时1秒

}

代码解释

constintledPin=3;:定义一个常量ledPin,表示LED连接的引脚编号。

pinMode(ledPin,OUTPUT);:在setup()函数中,将引脚3设置为输出模式。

digitalWrite(ledPin,HIGH);:在loop()函数中,将引脚3设置为高电平,LED点亮。

delay(1000);:延时1000毫秒(1秒)。

digitalWrite(ledPin,LOW);:将引脚3设置为低电平,LED熄灭。

数字输入引脚的配置与使用

数字输入引脚可以用于读取外部设备的信号,如按钮、传感器等。配置数字输入引脚的基本步骤如下:

引脚模式设置:使用pinMode()函数将引脚设置为输入模式。

引脚状态读取:使用digitalRead()函数读取引脚的高低电平状态。

代码示例:按钮检测

假设我们使用ArduinoMKR1000的一个数字输入引脚(例如引脚2)来检测一个按钮的状态。

//定义按钮连接的引脚

constintbuttonPin=2;

voidsetup(){

//将引脚2设置为输入模式

pinMode(buttonPin,INPUT);

}

voidloop(){

//读取引脚2的电平状态

intbuttonState=digitalRead(buttonPin);

//根据按钮状态控制LED

if(buttonState==HIGH){

//按钮被按下,LED点亮

digitalWrite(ledPin,HIGH);

}else{

//按钮未被按下,LED熄灭

digitalWrite(ledPin,LOW);

}

//延时100毫秒,防止读取过快

delay(100);

}

代码解释

constintbuttonPin=2;:定义一个常量buttonPin,表示按钮连接的引脚编号。

pinMode(buttonPin,INPUT);:在setup()函数中,将引脚2设置为输入模式。

intbuttonState=digitalRead(buttonPin);:在loop()函数中,读取引脚2的电平状态。

if(buttonState==HIGH):如果按钮被按下(高电平),则点亮LED。

else:如果按钮未被按下(低电平),则熄灭LED。

delay(100);:延时100毫秒,防止读取过快导致误判。

内部上拉/下拉电阻的使用

ArduinoMKR1000的数字输入引脚内置了上拉和下拉电阻,可以在读取信号时提供稳定的电平状态。使用内部上拉电阻可以避免引脚悬空导致的不确定状态。

代码示例:使用内部上拉电阻

假设我们使用内部上拉电阻来检测一个按钮的状态。

//定义按钮连接的引脚

constintbuttonPin=2;

voidsetup(){

//将引脚2设置为输入模式,并启用内部上拉电