ARDUINO最新pinMode()管脚设置方法(24年7月)

Arduino管脚配置

ESP32 Arduino管脚配置测试正常。
ESP32 Arduino管脚配置测试

pinMode()

[数字 I/O]

描述

将指定的引脚配置为输入或输出。有关引脚功能的详细信息,请参阅数字引脚部分。
可以使用模式INPUT_PULLUP使能内部上拉电阻。此外,INPUT模式明确禁用内部上拉电阻。

语法

pinMode (pin, mode)

参数

pin:用于设置模式的Arduino引脚号。
模式:INPUT、OUTPUT 或 INPUT_PULLUP。请参阅数字引脚部分,了解功能的更完整说明。

返回

示例代码

该代码使数字引脚 13 输出并将其切换为高电平和低电平

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

void loop() {
  digitalWrite(13, HIGH); // 将数字引脚 13 设置为开
  delay(1000);            // 等待一秒钟
  digitalWrite(13, LOW);  // 将数字引脚 13 设为关
  delay(1000);            // 等待一秒钟
}

注意事项和警告

模拟输入引脚可以用作数字引脚,简称A0、A1等。

数字引脚

了解数字引脚的工作原理以及如何配置它们。最后修订2024/07/10

Arduino上的引脚可以配置为输入或输出。本文档介绍了引脚在这些模式下的功能。虽然本文档的标题指的是数字引脚,但需要注意的是,绝大多数 Arduino (Atmega) 模拟引脚的配置和使用方式可能与数字引脚完全相同。

配置为 INPUT 的引脚属性

Arduino (Atmega) 引脚默认为输入,因此当您将它们用作输入时,无需使用 pinMode() 将它们显式声明为输入。以这种方式配置的引脚被称为处于高阻抗状态。输入引脚对它们正在采样的电路的要求非常小,相当于引脚前面的 100 兆欧串联电阻。这意味着将输入引脚从一种状态移动到另一种状态只需要非常少的电流,并且可以使引脚可用于实现电容式触摸传感器、读取 LED 作为光电二极管或使用 RCTime 等方案读取模拟传感器等任务。

然而,这也意味着,配置为pinMode(pin, INPUT)的引脚,如果未连接到任何电路,或者连接到它们的电线未连接到其他电路,则将报告引脚状态的看似随机的变化,从环境中拾取电气噪声,或电容耦合附近引脚的状态。

上拉电阻器,引脚配置为 INPUT

通常,如果没有输入,将输入引脚引导至已知状态非常有用。这可以通过在输入端添加一个上拉电阻(至+5V)或一个下拉电阻(接地电阻)来实现。10K 电阻对于上拉或下拉电阻来说是一个不错的值。

配置为 INPUT_PULLUP 的引脚属性

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

该上拉的值取决于所使用的微控制器。在大多数基于 AVR 的电路板上,该值保证在 20kΩ 和 50kΩ 之间。在Arduino Due上,它在50kΩ和150kΩ之间。有关确切值,请参阅电路板上微控制器的数据表。

将传感器连接到配置有INPUT_PULLUP的引脚时,另一端应接地。对于简单开关,这会导致引脚在开关打开时读取高电平,而当按下开关时,引脚读低电平。

上拉电阻器提供足够的电流,使连接到已配置为输入的引脚的 LED 昏暗。如果项目中的 LED 似乎在工作,但非常昏暗,这可能是正在发生的事情。

上拉电阻器由相同的寄存器(内部芯片存储器位置)控制,该寄存器控制引脚是高电平还是低电平。因此,如果一个引脚配置为在引脚为 INPUT 时接通上拉电阻器,则如果该引脚随后通过 pinMode() 切换到 OUTPUT,则该引脚将配置为 HIGH。这也适用于另一个方向,如果使用 pinMode() 切换到输入,则处于高电平状态的输出引脚将设置上拉电阻。

在 Arduino 1.0.1 之前,可以按以下方式配置内部上拉:

pinMode(pin, INPUT);           // 将引脚设置为输入
digitalWrite(pin, HIGH);       // 接通上拉电阻器

注意:数字引脚 13 比其他数字引脚更难用作数字输入,因为它连接了一个 LED 和电阻器,该电阻器焊接在大多数板上的板上。如果启用其内部 20k 上拉电阻,它将挂在 1.7V 左右,而不是预期的 5V,因为板载 LED 和串联电阻会降低电压水平,这意味着它始终返回低电平。如果必须使用引脚 13 作为数字输入,请将其 pinMode() 设置为 INPUT,并使用外部下拉电阻。

配置为 OUTPUT 的引脚属性

使用 pinMode() 配置为 OUTPUT 的引脚被称为处于低阻抗状态。这意味着它们可以向其他电路提供大量的电流。Atmega 引脚可以向其他设备/电路提供(提供正电流)或吸收(提供负电流)高达 40 mA(毫安)的电流。例如,这足以照亮 LED(不要忘记串联电阻器)或运行许多传感器,但不足以运行大多数继电器、螺线管或电机的电流。

在Arduino引脚上短路,或试图从它们运行高电流设备,可能会损坏或破坏引脚中的输出晶体管,或损坏整个Atmega芯片。通常,这将导致微控制器中出现“死”引脚,但剩余的芯片仍能正常工作。因此,将OUTPUT引脚连接到具有470Ω或1k电阻的其他设备是一个好主意,除非最大电流消耗。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值