Arduino - I/O

首页 / Arduino / Arduino - I/O

Arduino板上的引脚可以配置为输入或输出,我们将解释这些模式下引脚的函数。

输入配置

默认情况下,Arduino引脚被配置为输入,因此当您将它们用作输入时,不需要使用 pinMode()将它们明确声明为输入,以此方式配置的引脚被称为处于高阻抗状态,输入引脚对要采样的电路的要求极小,相当于该引脚前面有一个100兆欧的串联电阻。

引脚配置为pinMode(pin,INPUT),未连接任何引脚,或未连接到其他电路的导线连接,报告引脚状态看似随机变化。

配置输入引脚

Atmega芯片内置了20,000个上拉电阻,可通过软件进行访问,通过将 pinMode()设置为INPUT_PULLUP,可以访问这些内置的上拉电阻,这有效地反转了INPUT模式的行为,其中HIGH表示传感器关闭,而LOW表示传感器打开。

该上拉的值取决于所使用的微控制器,在大多数基于AVR的板上,该值保证在20kΩ至50kΩ之间,在Arduino Due上,它介于50kΩ和150kΩ之间。

pinMode(3,INPUT) ; //在不使用内置上拉电阻的情况下将引脚设置为输入
pinMode(5,INPUT_PULLUP) ; //使用内置上拉电阻将引脚设置为输入

输出配置

通过pinMode()配置为OUTPUT的引脚被称为处于低阻抗状态,这意味着它们可以为其他电路提供大量电流, Atmega引脚可以向其他设备/电路提供或吸收高达40 mA(毫安)的电流。

pinMode()函数用于将特定的引脚配置为充当输入或输出。

pinMode() - 语法

Void setup () {
   pinMode (pin , mode);
}
  • pin    - 您要设置其模式的引脚号

  • mode - INPUT,OUTPUT或INPUT_PULLUP。

int button=5 ; //按钮连接到引脚 5
int LED=6; //LED 连接到引脚 6

void setup () {
   pinMode(button , INPUT_PULLUP); 
   //使用上拉电阻将数字引脚设置为输入
   pinMode(button , OUTPUT); //将数字引脚设置为输出
}

void setup () {
   If (digitalRead(button ) == LOW) //如果按下按钮
      digitalWrite(LED,HIGH); //打开led
      delay(500); //延迟 500 毫秒
      digitalWrite(LED,LOW); //关闭 LED
      delay(500); //延迟 500 毫秒
   }
}

digitalWrite() - 函数

digitalWrite()函数用于将HIGH或LOW值写入数字引脚,如果使用 pinMode()将引脚配置为OUTPUT,其电压将设置为相应的值:HIGH为5V(在3.3V板上为3.3V),LOW为0V(接地)。如果该引脚配置为INPUT,则digitalWrite()将启用(HIGH)或禁用(LOW)输入引脚上的内部上拉。建议将 pinMode()设置为INPUT_PULLUP以启用内部上拉电阻。

digitalWrite() - 语法

Void loop() {
   digitalWrite (pin ,value);
}
  • pin     - 您要设置其模式的引脚号

  • value - HIGH或LOW。

int LED=6; //LED 连接到引脚 6

void setup () {
   pinMode(LED, OUTPUT); //将数字引脚设置为输出
}

void setup () { 
   digitalWrite(LED,HIGH); //打开led
   delay(500); //延迟 500 毫秒
   digitalWrite(LED,LOW); //关闭 LED
   delay(500); //延迟 500 毫秒
}

AnalogRead() - 函数

Arduino能够检测其引脚之一上是否施加了电压,并通过digitalRead()函数进行报告,on/off传感器与模拟传感器之间存在差异,其值会不断变化。

无涯教程网

此函数返回0到1023之间的数字,代表0到5伏之间的电压。如果向引脚号0施加了2.5 V的电压,则AnalogRead(0)返回512。

AnalogRead() - 语法

analogRead(pin);
  • pin  -  要读取的模拟输入引脚的编号(在大多数板上为0到5,在Mini和Nano上为0到7,在Mega上为0到15)

int analogPin=3;//电位器雨刷 (middle terminal) 
   //连接到模拟引脚 3
int val=0; //存储读取值的变量

void setup() {
   Serial.begin(9600); //设置串行
} 

void loop() {
   val=analogRead(analogPin); //读取输入引脚
   Serial.println(val); //调试值
}

这一章《Arduino - I/O》你学到了什么?在下面做个笔记吧!做站不易,你的分享是对我们最大的支持,感谢!😊

好记忆不如烂笔头。留下你的足迹吧 :)

相关文章

即时消息技术剖析与实战 -〔袁武林 - 〕

Serverless入门课 -〔蒲松洋(秦粤) - 〕

性能优化高手课 -〔尉刚强 - 〕

PyTorch深度学习实战 -〔方远 - 〕

OGX.JS 从路由中捕获值

415 reactjs中不支持的媒体类型

如何使用 puppeteer 抓取多个页面

是否可以从 Python 中的子类调用父类私有方法?

Raspbian-Python3.9:ImportError:未安装 _imagingft C 模块

使用插入命令创建表以重新创建每一行

视频推荐〔1-9 Arduino程序 - 程序函数2〕

更多 Arduino-io-functions 视频教程 »