基本信息
文件名称:Arduino 系列:Arduino MKR WiFi 1010 (基于 SAMD21)_(6).数字I-O操作.docx
文件大小:23.22 KB
总页数:15 页
更新时间:2025-06-27
总字数:约7.29千字
文档摘要

PAGE1

PAGE1

数字I/O操作

数字I/O(输入/输出)是ArduinoMKRWiFi1010处理的基本方式之一。数字I/O端口可以设置为输入模式或输出模式,通过这些端口可以实现与外部设备的简单通信。本节将详细介绍如何在ArduinoMKRWiFi1010上进行数字I/O操作,包括配置端口模式、读取数字输入、设置数字输出以及使用内置的数字端口。

数字端口配置

在ArduinoMKRWiFi1010上,数字端口的配置是通过pinMode()函数完成的。这个函数用于设置指定引脚的工作模式,可以是输入模式(INPUT)或输出模式(OUTPUT)。

语法

voidpinMode(uint8_tpin,uint8_tmode);

pin:要配置的引脚编号。

mode:引脚的工作模式,可以是INPUT、OUTPUT或INPUT_PULLUP。

示例

假设我们要配置引脚13为输出模式,用于控制一个LED。

//配置引脚13为输出模式

pinMode(13,OUTPUT);

读取数字输入

读取数字输入是通过digitalRead()函数完成的。这个函数用于读取指定引脚的电平状态,返回值可以是HIGH(高电平)或LOW(低电平)。

语法

intdigitalRead(uint8_tpin);

pin:要读取的引脚编号。

示例

假设我们要读取引脚2的电平状态,用于检测一个按钮的按下状态。

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

intbuttonState=digitalRead(2);

代码示例:读取按钮状态并控制LED

以下是一个完整的示例代码,用于读取按钮状态并控制一个LED的亮灭。

//定义引脚编号

constintbuttonPin=2;//按钮连接到引脚2

constintledPin=13;//LED连接到引脚13

voidsetup(){

//配置引脚模式

pinMode(buttonPin,INPUT);//设置按钮引脚为输入模式

pinMode(ledPin,OUTPUT);//设置LED引脚为输出模式

}

voidloop(){

//读取按钮状态

intbuttonState=digitalRead(buttonPin);

//根据按钮状态控制LED

if(buttonState==HIGH){

digitalWrite(ledPin,HIGH);//按钮按下时,LED亮

}else{

digitalWrite(ledPin,LOW);//按钮未按下时,LED灭

}

}

设置数字输出

设置数字输出是通过digitalWrite()函数完成的。这个函数用于设置指定引脚的电平状态,可以是HIGH(高电平)或LOW(低电平)。

语法

voiddigitalWrite(uint8_tpin,uint8_tstate);

pin:要设置的引脚编号。

state:引脚的电平状态,可以是HIGH或LOW。

示例

假设我们要设置引脚13为高电平,用于点亮一个LED。

//设置引脚13为高电平

digitalWrite(13,HIGH);

代码示例:闪烁LED

以下是一个完整的示例代码,用于使LED以1秒的间隔闪烁。

//定义引脚编号

constintledPin=13;//LED连接到引脚13

voidsetup(){

//配置引脚模式

pinMode(ledPin,OUTPUT);//设置LED引脚为输出模式

}

voidloop(){

//点亮LED

digitalWrite(ledPin,HIGH);

delay(1000);//保持1秒

//熄灭LED

digitalWrite(ledPin,LOW);

delay(1000);//保持1秒

}

内置数字端口

ArduinoMKRWiFi1010提供了多个内置的数字端口,这些端口可以用于连接各种传感器和执行器。以下是一些常用的内置数字端口:

引脚0-19:通用数字I/O端口。

引脚20-23:SPI通信端口。

引脚24-25:I2C通信端口。

引脚26-27:串行通信端口(UART)。

引脚28-29:外部中断端口。

SPI通信端口

SPI(SerialPeripheralInterface)是一种同步串行通信接口,用于连接多个设备。MKRWiFi1010的SPI端