基本信息
文件名称:Arduino 系列:Arduino Leonardo (基于 ATmega32U4)_(7).Arduino Leonardo数字输入输出.docx
文件大小:24.52 KB
总页数:23 页
更新时间:2025-06-27
总字数:约1.07万字
文档摘要

PAGE1

PAGE1

ArduinoLeonardo数字输入输出

数字输入输出基础

在ArduinoLeonardo上,数字输入输出是最基本的功能之一。数字输入输出引脚用于控制和读取数字信号,这些信号只有两种状态:高电平(5V或3.3V)和低电平(0V)。通过这些引脚,Arduino可以与外部设备进行通信,例如开关、按钮、LED灯等。

数字输入

数字输入引脚用于读取外部设备的数字信号。例如,你可以连接一个按钮到数字输入引脚,当按钮被按下时,引脚读取高电平;按钮未按下时,引脚读取低电平。ArduinoLeonardo提供了20个数字输入输出引脚,其中一些引脚具有特殊功能,如PWM输出和中断输入。

读取数字输入

使用digitalRead()函数可以读取数字输入引脚的状态。这个函数返回一个整数值:HIGH(高电平)或LOW(低电平)。

//定义按钮连接的引脚

constintbuttonPin=2;

voidsetup(){

//初始化按钮引脚为输入模式

pinMode(buttonPin,INPUT);

//初始化串行通信

Serial.begin(9600);

}

voidloop(){

//读取按钮状态

intbuttonState=digitalRead(buttonPin);

//打印按钮状态到串行监视器

Serial.println(buttonState);

//延时100毫秒

delay(100);

}

在这个例子中,我们定义了一个按钮连接到引脚2,并在setup()函数中将引脚设置为输入模式。在loop()函数中,我们使用digitalRead()函数读取按钮的状态,并通过串行通信将状态打印到监视器上。delay(100)用于防止打印过快。

数字输出

数字输出引脚用于控制外部设备的数字信号。例如,你可以连接一个LED灯到数字输出引脚,通过设置引脚为高电平或低电平来点亮或熄灭LED。

设置数字输出

使用digitalWrite()函数可以设置数字输出引脚的状态。这个函数接受两个参数:引脚编号和状态(HIGH或LOW)。

//定义LED连接的引脚

constintledPin=13;

voidsetup(){

//初始化LED引脚为输出模式

pinMode(ledPin,OUTPUT);

}

voidloop(){

//点亮LED

digitalWrite(ledPin,HIGH);

//延时1000毫秒

delay(1000);

//熄灭LED

digitalWrite(ledPin,LOW);

//延时1000毫秒

delay(1000);

}

在这个例子中,我们定义了一个LED连接到引脚13,并在setup()函数中将引脚设置为输出模式。在loop()函数中,我们通过digitalWrite()函数控制LED的亮灭,并使用delay(1000)函数来设置亮灭的时间间隔。

中断输入

中断输入是一种特殊的数字输入方式,当外部设备的状态发生变化时,Arduino可以立即响应。中断输入特别适用于需要实时响应的场景,例如紧急停止按钮或传感器触发。

附带中断的数字输入

使用attachInterrupt()函数可以将一个引脚设置为中断输入。ArduinoLeonardo支持中断输入的引脚有2、3、4、5、6、7、8、9、10、11、12和13。

中断触发模式

中断触发模式有四种:

LOW:当引脚处于低电平时触发中断。

CHANGE:当引脚状态发生变化时触发中断。

RISING:当引脚状态从低到高时触发中断。

FALLING:当引脚状态从高到低时触发中断。

中断输入示例

以下是一个使用中断输入的示例,当按钮被按下时,LED灯会亮起。

//定义按钮连接的引脚

constintbuttonPin=2;

//定义LED连接的引脚

constintledPin=13;

//定义变量来记录按钮状态

volatileboolbuttonPressed=false;

voidsetup(){

//初始化LED引脚为输出模式

pinMode(ledPin,OUTPUT);

//初始化按钮引脚为输入模式

pinMode(buttonPin,INPUT);

//将按钮引脚设置为中断输入

attachInterrupt(digitalPinToInterrupt(buttonPin),button