NodeMCU ESP8266 读取按键外部输入信号详解(图文并茂)

news2024/11/19 10:34:06

NodeMCU ESP8266 读取按键外部输入信号教程(图文并茂)


文章目录

  • NodeMCU ESP8266 读取按键外部输入信号教程(图文并茂)
    • 前言
    • 按键输入
    • 常用接口
      • pinMode
      • digitalRead
    • 示例代码
    • 结论

前言

ESP8266如何检测外部信号的输入,通常可以检测到TTL电平的高电平和低电平。

TTL(Transistor-Transistor Logic)电平是一种常用的数字电平标准,通常用于数字电路和逻辑电路中。TTL电平具有以下特征和定义:

  • 输出状态
    • L:低于 0.8V
    • H:高于 2.4V
  • 输入状态:
    • L:低于 1.2V
    • H:高于 2.0V

下面我们需要通过构造外围的硬件电路来做外部信号输入的测试。

按键输入

通常我们可以使用外部按键作为信号输入的元器件,这里接一个上拉电阻之后连接一个按键,我们可以通过面包板来构建电路,具体电路图如下所示;

常用接口

pinMode

这里我们需要将D2引脚作为输入,具体接口使用如下所示;

pinMode(2, INPUT); 

digitalRead

这里需要使用接口digitalRead来获取GPIO输入的信号状态,可以读取高电平和低电平,

int buttonState = 0;            // 存储按钮状态,0表示未按下,1表示按下
buttonState = digitalRead(2);   // 读取按钮状态

示例代码

这段代码会将D2配置为输入引脚,D4配置为输出引脚。当按下按钮时(D2引脚为高电平),LED(D4引脚)会亮起,当释放按钮时(D2引脚为低电平),LED会熄灭。

const int buttonPin = D2;
const int ledPin = D4;

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

结论

本文简单介绍了NodeMCU ESP8266获取外部信号的方法,并给出相应的实验,通过按键控制LED灯的亮和灭。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10kV-35kV交联电缆油杯终端

武汉凯迪正大油杯产品简介 KDZD-10 /KDZD-35 油杯终端是我公司在总结了大量的现场经验的基础上,自行开发、设计的一种 10~35kV 以下交联电缆和工频耐压试验的简易试验终端,该油杯操作简便,使用可靠。 目前电缆厂均拥有多条 XLPE 生产线&…

【Git】升级MacOS系统,git命令无法使用

终端执行git命令报错 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun安装这个东东,?需要42小时 最终解决: 下载安装 https…

C语言进阶第七课-----------自定义类型的讲解(结构体枚举联合)

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

2023CRM排行:深度对比16款CRM

客户关系管理系统(CRM)作为数字化转型的重要载体,选择一个优秀的CRM系统将为企业未来健康增长保障。市场上CRM软件众多,但很难分清哪个适合自己,最近赶在公司选型,我对市场所有软件进行了一个调研&#xff…

postgresql(openGauss)模糊匹配参数

被pg系这个show要求精准匹配参数恶心的不轻。 原理是用.psqlrc(openGauss用.gsqlrc)文件set一个select常量进去,需要用:调用这个常量。理论上也可以增强其他的各种功能。 我在openGauss做的一个例子 .gsqlrc(.psqlrc…

容灾备份——容灾系统介绍

目录 基本概述 容灾关键技术 容灾系统的级别 容灾主要技术 基本概述 容灾与备份的区别 容灾备份——备份技术系统架构与备份网络方案-CSDN博客https://blog.csdn.net/m0_49864110/article/details/123969802?ops_request_misc%257B%2522request%255Fid%2522%253A%252216…

【Java 进阶篇】JavaScript 表单验证详解

JavaScript 表单验证是网页开发中不可或缺的一部分。它允许您确保用户在提交表单数据之前输入了有效的信息。无论您是一个初学者还是一个有经验的开发人员,本文将为您详细介绍如何使用 JavaScript 来进行表单验证。我们将从基础知识开始,逐步深入&#x…

ubuntu20.04运用startup application开机自启动python程序

运用startup application开机自启动python程序。在终端中输入gnome-session-properties,如果显示没有则先进行安装,sudo apt-get update 和sudo apt install StartupApplications(根据显示提示安装)。在显示程序中搜索startup,打开应用程序。 在程序目录…

LeetCode 1595. 连通两组点的最小成本【记忆化搜索,状压DP】2537

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

环形链表的约瑟夫问题

前言: 据说著名犹太历史学家Josephus有过如下故事: 在罗马人占领乔塔帕特后,39个犹太人和Josephus及他的朋友躲进一个洞里,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个…

24、Flink 的table api与sql之Catalogs(java api操作分区与函数、表)-4

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Unity3D 关于过大的UI帧动画如何处理详解

Unity3D是一款流行的游戏开发引擎,它可以用来创建各种类型的游戏,包括2D和3D游戏。在游戏中,UI帧动画是一个常见的元素,它可以增加游戏的交互性和视觉效果。然而,当UI帧动画过大时,可能会导致游戏的性能下降…

linux安装新版本git2、配置github-ssh。(centos、aws)

一、安装Git 1、yum默认版本git #1.安装git sudo yum install git -y #2.确认Git已经安装成功 git --version如果要安装较新版本,可以安装一个repo ,但是我这第一次尝试失败了,执行完提示找不到git2u,ius repo也连不上。而且每次…

02HTML功能元素

1.功能元素 1.1.列表标签 ​ 列表标签的作用: 给一堆数据添加列表语义, 也就是告诉搜索引擎告诉浏览器这一堆数据是一个整体 - HTML中列表标签的分类 ​ 无序列表(最多)(unordered list) ​ 有序列表(最少)(ordered list) ​ 定义列表(其次)(definition list) 1.1.1.无序列…

解析Apache Kafka中的事务机制

这篇博客文章并不是关于使用事务细节的教程,我们也不会深入讨论设计细节。相反,我们将在适当的地方链接到JavaDocs或设计文档,以供希望深入研究的读者使用。 为什么交易? 我们在Kafka中设计的事务主要用于那些显示“读-进程-写”模式的应用…

基于SSM的传统文化网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

Spring frame :基于 jdk 动态代理实现连接池复用

前言 在数据库开发中,连接池是一种重要的技术手段,它可以提高数据库连接的复用性和性能。连接池的原理是在应用启动时创建一定数量的数据库连接,并将这些连接保存在一个池中,应用程序需要数据库连接时,从连接池中获取…

静态路由与双线BFD热备份

✍ 路由具体是什么概念? ✍ 路由表和路由协议有什么关系? ✍ 电信联通双线如何做路由热备份? ---- 什么叫路由? ---- 路由器 - 网络设备 - 转发数据 - 要有一张地图 - 路由表 ---- 路由表 - 指明要到达某个目…

.NET开源且免费的Windows远程桌面管理软件

前言 今天要给大家推荐一款由.NET开源且免费的远程桌面管理软件:1Remote。 1Remote官方项目介绍 1Remote是一款现代的远程会话管理和启动器,它让你能够在任何时候快速开启一个远程会话。目前1Remote已支持 微软远程桌面(RDP)、VNC、SSH、Telnet、SFTP、…

Unity3D 游戏框架搭建的过程是什么详解

Unity3D 是一款广泛使用的游戏开发引擎,它提供了丰富的功能和工具,使得开发者可以轻松地创建高质量的游戏。在开始开发一个新的游戏项目之前,我们需要搭建一个游戏框架,这个框架将提供一些基本的功能和结构,为后续的开…