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