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

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.rhkb.cn/news/165482.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java封装:面向对象的三大特性之一

👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、封装的概念二、访问修饰限定符三、包1、包的概念2、导入包中的类3、常见的包 嗨!前面我们简单的认识了一下什么…

常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法

文章目录 🌟 如何优雅地写出高质量的Java代码🍊 设计模式🎉 单例模式🎉 工厂模式🎉 观察者模式 🍊 操作Redis🎉 连接Redis🎉 存储数据🎉 获取数据🎉 删除数据…

Java注解处理器APT

注解处理器介绍 什么是APT? 在JDK6的时候引入了JSR269的标准,即APT(Annotation Processing Tool),用于在编译时处理源代码中的注解,从而生成额外的代码、配置文件或其他资源。与传统的运行时反射相比&…

深入探索Sharding JDBC:分库分表的利器

随着互联网应用的不断发展和用户量的不断增加,传统的数据库在应对高并发和大数据量的场景下面临着巨大的挑战。为了解决这一问题,分库分表成为了一个非常流行的方案。分库分表主流的技术包括MyCat和Sharding JDBC。我们来通过一张图来了解这两者有什么区…

C语言——二周目——程序的翻译与执行环境

一、程序环境 对于一个C语言程序的实现,整个过程一般存在两个不同的环境,分别是翻译环境与执行环境。在翻译环境中,我们所写的源代码经过一系列处理被转换成为可执行的机器指令;在执行环境中,会实际执行代码。 整个程序…

Open3D(C++) 最小二乘拟合平面(拉格朗日乘子法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。 一、算法原理 设拟合出的平面方程为: a x + b y + c

手写redux的connect方法, 使用了subscribe获取最新数据

一. 公共方法文件 1. connect文件 import React, { useState } from "react"; import MyContext from "./MyContext"; import _ from "lodash";// 模拟react-redux的 connect高阶函数 const connect (mapStateToProps, mapDispatchToProps) &…

数学建模——最优连接(基于最小支撑树)

一、概念 1、图的生成树 由图G(V,E)的生成子图G1(V,E1)(E1是E的子集)是一棵树,则称该树为图G的生成树(支撑树),简称G的树。图G有支撑树的充分必要条件为图G连通。 2、最小生成树问题 连通图G(V,E),每条边…

STM32串口

前言 提示:这里可以添加本文要记录的大概内容: 目前已经学习了GPIO的输入输出,但是没有完整的显示信息,最便宜的显示就是串口。 000 -111 AVR单片机 已经学会过了, 提示:以下是本篇文章正文内容&#x…

Servlet的生命周期

2023.10.18 WEB容器创建的Servlet对象,这些Servlet对象都会被放到一个集合当中(HashMap),这个集合当中存储了Servlet对象和请求路径之间的关系 。只有放到这个HashMap集合中的Servlet才能够被WEB容器管理,自己new的Ser…

《视觉 SLAM 十四讲》V2 第 10 讲 后端优化2 简化BA 【位姿图】

文章目录 第10讲 后端210.1 滑动窗口滤波 和 优化10.1.2 滑动窗口法 10.2 位姿图10.3 实践: 位姿图优化本讲 CMakeLists.txt 10.3.1 g2o 原生位姿图 【Code】10.3.2 李代数上的位姿优化 【Code】 习题10题1 【没推完】 LaTex 第10讲 后端2 滑动窗口优化 位姿图优化…

最新!两步 永久禁止谷歌浏览器 Google Chrome 自动更新

先放效果图: CSDN这个问题最火的大哥的用了没用 像他这样连浏览器都打不开 为什么要禁止chrome自动更新 看到很多搞笑的大哥,说为啥要禁止; 我觉得最大的原因就是chromedriver跟不上chrome的自动更新,导致我们做selenium爬虫的…

CentOS 7 安装 MySQL 8

一、卸载MariaDB MariaDB是MySQL 的一个分支,完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 1、查看版本(如果有就卸载) rpm -qa|grep mariadbrpm -e --nodeps 文件名 二、下载mysql 1、进入 /usr/…

中枢听觉处理障碍的行为干预方法

作者:听觉健康 在数十年前,中枢听觉处理障碍(CAPD)的研究已经引起了多学科的关注。1937年,Samuel Orton提出某些儿童的学习障碍与不能有效利用听觉有关。Myklebust是提出“中枢性听力障碍”引起儿童语言学习障碍的先驱者之一。二十世纪五十年…

C# Winform编程(7)文件处理技术

文件处理技术 System.IO命名空间System.IO命名空间常用的类System.IO命名空间常用的枚举 File类的常用方法FileInfo类的常用方法File类和FileInfo类的区别文件夹类Directory的常用方法 System.IO命名空间 System.IO命名空间常用的类 类说明File提供用于创建,复制&…

【数之道 08】走进“卷积神经网络“,了解图像识别背后的原理

卷积神经网络 CNN模型的架构Cnn 的流程第一步 提取图片特征提取特征的计算规则 第二步 最大池化第三步 扁平化处理第四步 数据条录入全连接隐藏层 b站视频 CNN模型的架构 图片由像素点组成,最终成像效果由背后像素的颜色数值所决定的 有这样的一个66的区域&#x…

YOLOv5改进实战 | 更换主干网络Backbone(三)之轻量化模型Shufflenetv2

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

2023年中国纸箱机械优点、市场规模及发展前景分析[图]

纸箱机械行业是指涉及纸箱生产和加工的机械设备制造、销售和相关服务的产业。这个行业的主要任务是设计、制造和提供用于生产各种类型和规格纸箱的机械设备,以满足包装行业对纸箱的不同需求。 纸箱机械行业优点 资料来源:共研产业咨询(共研网…

SpringBoot + MyBatis 在 jar 中可以启动但是 Idea中无法启动的原因

现象 在idea中启动始终卡住,查看线程堆栈发现一直在mybatis的处理过程中,细究了一下堆栈发现mybatis有使用远程方式加载类的情况,并且此时cpu会飙升, 在命令行中使用java -jar 的形式可以正常启动,但是在idea中启动始…

在 Visual Studio Code (VS Code) 中设置

在 Visual Studio Code (VS Code) 中设置代理服务器的详细教程如下: 打开 Visual Studio Code。 在顶部菜单栏中,点击 "File"(文件) > "Preferences"(首选项) > "Settings…