Arduino - I/O

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传感器与模拟传感器之间存在差异,其值会不断变化。

链接:https://www.learnfk.comhttps://www.learnfk.com/arduino/arduino-io-functions.html

来源:LearnFk无涯教程网

此函数返回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); //调试值
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

机器学习40讲 -〔王天一〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

后端存储实战课 -〔李玥〕

技术面试官识人手册 -〔熊燚(四火)〕

深入浅出分布式技术原理 -〔陈现麟〕

遗留系统现代化实战 -〔姚琪琳〕

Go进阶 · 分布式爬虫实战 -〔郑建勋〕

深入拆解消息队列47讲 -〔许文强〕

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