Arduino中最常用的四个I/O 函数:digitalRead()/Write()、analogRead()/Write()

Arduino以其简单易用性而闻名,这很大程度上归功于其提供的简易I/O (输入/输出) 函数。本文将深入探讨Arduino中最常用的四个I/O 函数:digitalRead()digitalWrite()analogRead()analogWrite(),并通过具体的示例代码来演示它们的使用方法及注意事项。

Arduino中最常用的四个I/O 函数:digitalRead()/Write()、analogRead()/Write()

一、数字读写:掌控高低电平的艺术 ( digitalRead() & digitalWrite() )

Arduino板载了许多数字引脚,这些引脚只能处于两种状态:高电平(HIGH,通常为5V)或低电平(LOW,通常为0V)。digitalWrite()用于将数字引脚设置为高电平或低电平,而digitalRead()用于读取数字引脚的当前状态。

digitalWrite() 函数详解:

语法:digitalWrite(pin, value);

参数:

  • • pin: 需要控制的数字引脚号 (例如:2, 7, 13)。

  • • value: 要设置的值,可以是 HIGH 或 LOW

示例:将数字引脚13设置为高电平:

digitalWrite(13HIGH);

这将使连接到数字引脚13的LED灯亮起(前提是LED灯正确连接到引脚13和GND)。要将它熄灭,则使用:

digitalWrite(13LOW);

digitalRead() 函数详解:

语法:digitalRead(pin);

参数:

  • • pin: 需要读取的数字引脚号。

返回值:

  • • HIGH: 如果引脚处于高电平。

  • • LOW: 如果引脚处于低电平。

示例:读取数字引脚2的状态,并将结果打印到串口监视器:

int sensorPin =2;
int sensorValue =0;

void setup() {
Serial.begin(9600);// 初始化串口通信
pinMode(sensorPin,INPUT);// 设置引脚2为输入模式
}

void loop() {
  sensorValue =digitalRead(sensorPin);
Serial.println(sensorValue);
delay(100);// 延时100毫秒
}

这段代码将数字引脚2设置为输入模式,然后不断读取引脚2的状态,并将读取的结果(HIGH或LOW)打印到串口监视器。注意pinMode()函数,它用于设置引脚的模式,对于数字引脚,可以使用INPUT (输入) 或 OUTPUT (输出)。

二、模拟读取:感知模拟世界的细微变化 ( analogRead() )

Arduino也拥有模拟引脚,它们可以读取0到5V之间的电压值,并将其转换为0到1023之间的数字值。analogRead()函数用于读取模拟引脚的电压值。

analogRead() 函数详解:

语法:analogRead(pin);

参数:

  • • pin: 需要读取的模拟引脚号 (通常是A0-A5)。

返回值:

  • • 0-1023 之间的整数,代表模拟电压值。0对应0V,1023对应5V。

示例:读取模拟引脚A0的值,并将结果打印到串口监视器:

int sensorPin = A0;
int sensorValue =0;

void setup() {
Serial.begin(9600);
}

void loop() {
  sensorValue =analogRead(sensorPin);
Serial.println(sensorValue);
delay(100);
}

这段代码读取模拟引脚A0的电压值,并将结果打印到串口监视器。你可以将一个电位器连接到A0引脚和GND,然后通过旋转电位器来改变电压值,观察串口监视器中的数值变化。

三、模拟写入:精准控制PWM输出 ( analogWrite() )

analogWrite()函数用于向数字引脚输出脉冲宽度调制(PWM)信号。PWM信号并非真正的模拟信号,而是通过快速切换高低电平来模拟模拟输出,从而实现对电压的精细控制。

analogWrite() 函数详解:

语法:analogWrite(pin, value);

参数:

  • • pin: 支持PWM输出的数字引脚 (并非所有数字引脚都支持PWM,具体支持的引脚请参考Arduino型号的规格说明)。

  • • value: 0-255之间的整数,代表PWM占空比。0对应0%占空比(低电平),255对应100%占空比(高电平)。

示例:使用PWM控制LED的亮度:

int ledPin =9;// 假设引脚9支持PWM

void setup() {
pinMode(ledPin,OUTPUT);
}

void loop() {
for(int i =0; i <256; i++){
analogWrite(ledPin, i);
delay(10);
}
for(int i =255; i >=0; i--){
analogWrite(ledPin, i);
delay(10);
}
}

这段代码会逐渐增加LED的亮度,然后再逐渐减小,从而实现LED的亮度渐变效果。

通过熟练掌握这四个I/O函数,你就能轻松控制Arduino与外部电路的交互,为你的各种创意项目奠定坚实的基础。记住,在使用之前,务必仔细阅读Arduino的文档,并根据你的具体电路连接选择合适的引脚和参数。


原文始发于微信公众号(DIY太阳系):Arduino中最常用的四个I/O 函数:digitalRead()/Write()、analogRead()/Write()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/307508.html

(1)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!