首页 > 其他分享 >ARDUINO最新pinMode()管脚设置方法(24年7月)

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

时间:2024-07-15 22:30:16浏览次数:21  
标签:24 电阻 引脚 ARDUINO 上拉 INPUT 管脚 输入 pinMode

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电阻的其他设备是一个好主意,除非最大电流消耗。

标签:24,电阻,引脚,ARDUINO,上拉,INPUT,管脚,输入,pinMode
From: https://blog.csdn.net/USALCD/article/details/140447862

相关文章

  • .NET周刊【7月第2期 2024-07-14】
    国内文章开源GTKSystem.Windows.Forms框架让C#winform支持跨平台运行https://www.cnblogs.com/easywebfactory/p/18289178GTKSystem.Windows.Forms框架是一种C#winform应用程序跨平台界面开发框架,兼容C#原生控件,无需额外学习,支持跨平台运行。其优势包括开源、与visualstudio......
  • Arduino小车自动避障
    #include<Servo.h>//引用库//因为很多子函数要用这个变量,所以把servo定义称全局变量,作用域是整个代码文件ServomyServo;//前进voidForward(){digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,LOW);}//后退voidBackOff(){......
  • [考试记录] 2024.7.15 csp-s模拟赛4
    2024.7.15csp-s模拟赛4T1传送带题面翻译有一个长度为\(n\)的一维网格。网格的第\(i\)个单元格包含字符\(s_i\),是“<”或“>”。当弹球放在其中一个格子上时,它会按照以下规则移动:如果弹球位于第\(i\)个格子上且\(s_i\)为'<',则弹球在下一秒会向左移动一个单元格;如......
  • Codeforces Round #956 (Div. 2) and ByteRace 2024
    目录写在前面ABCDEF写在最后写在前面比赛地址:https://codeforces.com/contest/1983孩子们我回来了。这场实在是太对胃口,vp不到1h就4题了之后EF也口出来了,然而赛时睡大觉去了没打真是亏死。感觉自己的文字能力已经很牛逼了,不需要再多练了,以后的题解都会写得简略些。A......
  • P10720 [GESP202406 五级] 小杨的幸运数字 题解
    题意如果一个数的质因子中只有两个不同的数则输出\(1\),否则输出\(0\)。思路从第一个质因子遍历到\(sum\)的话很明显是\(O(nt)\)最大是\(n^{10}\)很明显会炸掉。所以遍历到\(sum\)是不行的,考虑正整数\(n\)最大的质因数是\(\sqrt{n}\)所以遍历到\(\sqrt{n}\)即......
  • JavaAPI练习(1) (2024.7.15)
        Math类packageMathExercise20240715;//Math类所在的是java.lang包,属于核心包,无需导包publicclassMathExercise{publicstaticvoidmain(String[]args){//Math方法为静态的,不需要创建对象,直接类名调用即可//abs返回参数的绝对......
  • 7.15鲜花——2024dl24灯光秀游记
    前言时光的背面有阑珊灯火那红墙绿树由我们诠说不问从前烟火无惧前路宕落我们将扬帆向未来漂泊就算在背对阳光的角落那不凡荣光把我们包裹每一个山长水阔每一条寻常巷陌每一颗心都依然灼热同灯火唱和少年翘首以盼的天晴等来属于盛夏的蜩鸣那些黑板书写的叮咛成了谁的曾经时光的......
  • 2024-07-15 vue组件发布npm后,再使用,样式不见了?==》查看样式是否在dist包里,有的话应
    哎,嗯。。。emmm。。。好,问题就是这样的,最近写了vue组件打算上到npm,然后上是上了,但是样式却没有生效??左上角是组件样式本地调试的截图,可以看到是生效的,右上角的截图是我在别的项目引用了我写的这个库,结果样式却没有生效。我打包后的文件列表如下: 注意:style.css包含了所有的样......
  • 云原生周刊:Score 成为 CNCF 沙箱项目|2024.7.15
    开源项目TridentTrident是由NetApp维护的全面支持的开源项目。它从头开始设计,旨在通过行业标准接口(如容器存储接口CSI)帮助您满足容器化应用程序对持久性存储的需求。MonokleMonokle通过提供用于编写YAML清单、验证策略和管理实时集群的统一可视化工具,简化了创建、分析......
  • 2024-07-15 记录一则vue网站优化的小技巧
    vite+vue+某框架写的网站可以通过配置vite.config.js中的build.rollupOptions.output.manualChunks来手动分割指定的包到指定的文件夹内,然后在网站入口文件按照需求引入比如:build:{rollupOptions:{output:{manualChunks:{antd......