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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/799509.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

涨知识了!AI绘画变现的几个思路!

风口!风口!风口! 终于不用再抱怨 “我们这代人啊,什么也没赶上” 因为我们现在正处于风口之上! 在当今数字化的时代 AI 绘画正以惊人的速度崛起 并向各行各业渗透 既然阻止不了时代的变化 那就让它为我们所用 …

STM32MP135裸机编程:烧录程序到EMMC的方法

0 前言 STM32MP135支持多种启动方式,包括SD卡、NAND Flash、EMMC等,基于STM32MP135裸机的SD卡烧录操作方法我们之前已经介绍过,现在介绍的STM32MP135烧录到EMMC的方法又和前面烧录到SD卡的操作有所不同。本文将介绍基于STM32MP135&#xff0…

职称论文发表的注意事项有哪些

职称论文发表的注意事项有哪些 其实职称论文并不难,但是对于很多之前没有接触过的朋友来说,如何选择合适期刊,如何投稿以及版面费多少等一概不知。所以我今天就总结下我个人的经验,分享给大家。 一、弄清单位的要求 评职称论文首先…

系统架构师考点--软件工程(上)

大家好。今天我来总结一下软件工程的相关考点。这部分是考试的重点。在上午场客观题、下午场案例题以及下午场论文都有可能考到,在上午场客观题中大约占12-15分左右。 一、软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过…

致良知,是一场自我革命、教育、成长

82天 【此亦须你自家求】人言不如自悔之真;致良知就是致自己,是一场自我革命、自我教育、自我成长;真诚的力量,诚于己、信于人、明于事 人言不如自悔之真,生活中我们都希望能够得到高人的指点,但&#xf…

Jmeter常用组件及执行顺序

一 常用组件 1.线程组 Thread Group 线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。 在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等…

git链接远程仓库

【 一 】ssh链接远程仓库 删除git仓库 【 1 】初步使用方法 1、之前把本地代码,以https形式,提交到了远程仓库 # - git remote add origin https://gitee.com/bai-zhitao/lufy.git- 输入用户名密码2、ssh认证,只需要配置一次&#xff…

ARM体系结构和接口技术(四)LED灯实验---②

文章目录 一、特殊功能控制寄存器(一)GPIOx_MODER寄存器(二)GPIOx_OTYPER寄存器(三)GPIOx_OSPEEDR寄存器(四)GPIOx_PUPDR寄存器(五)GPIOx_IDR寄存器&#xff…

在互联网供应链系统可能是永远不会过时的系统

一、前言 在互联网在到人工智能,从基本的门户网站,社交网站,到移动互联网,视频网站,再到现在比较火爆短视频直播和人工智能AI,大模型。互联网的迭代,出现了无数的系统。但是有些系统一直久经不…

第八课:NAT地址转换(NAPT模式)

如何连接互联网? 如何远程管理网络设备? 1.路由怎么写? ip route 0.0.0.0 0.0.0.0 下一跳 0.0.0.0 0.0.0.0代表去往所有目的 2.NAT网络地址转换 PC,手机,在内网,用私网地址(不要钱&#x…

c#中的特性

在C#中,特性(Attributes)是一种向程序元素(如类、方法、属性等)添加元数据的方式。特性可以用来提供关于程序元素的附加信息,这些信息可以在编译时和运行时被访问。 特性主要有以下几个用途: 提…

力扣第九题

回文数 提示: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 代码展示&#…

<Rust>egui部件学习:如何在egui窗口中添加按钮button以及标签label部件?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:egui、eframe 概述 本文是本专栏的第二篇博…

Zookeeper源码学习

源码下载:https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7.tar.gz 1、持久化源码: Leader和Follower中的数据会在内存和磁盘中各保存一份。所以需要将内存中的数据持久化到磁盘中。 在zookeeper-server\org.apach…

计组_微程序

2024.06.26:计算机组成原理微程序学习笔记 第19节 控制器 9.1 硬布线控制器(408基本不考)9.2 微程序控制器(好好学)9.2.1 微程序(1) 基本概念(2) 控制器的组成(3) 控制器的工作过程 9.2.2 微指令(1) 编码方式&#xff…

验证服务插件:单据保存或审核时进行验证

提交审核的时候,校验 using Kingdee.BOS; using Kingdee.BOS.Core; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Validation; using Kingdee.BOS.Util; using System; using System.ComponentModel;…

【LeetCode:721. 账户合并 + 哈希表 + DFS】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Linux--线程池(包含日志的解释)

线程系列: Linux–线程的认识(一) Linux–线程的分离、线程库的地址关系的理解、线程的简单封装(二) 线程的互斥:临界资源只能在同一时间被一个线程使用 生产消费模型 信号量 线程池 线程池(Thread Pool)是…

CSS实现超链接标签:鼠标光标为手形、取消下划线、当鼠标悬停时显示下划线

1、鼠标光标为手形 cursor: pointer; 2、显示/取消下划线 text-decoration: none; /* 文本取消下划线 */ text-decoration: underline; /* 文本添加下划线 */ 3、伪类选择器 伪类选择器是 CSS 中已经定义好的选择器,因此程序员不能随意命令。伪类选择器…

【BUG】已解决:ModuleNotFoundError: No module named ‘cv2’

已解决:ModuleNotFoundError: No module named ‘cv2’ 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开…