风筝
发表于: 2021-4-30 16:10:33 | 显示全部楼层

作为一名电子爱好者,必须首先了解一些基础元件的使用方法,例如使用电阻、LED、二极管、晶体管等组件搭建简单的设备和电路。这对电子组件奠定了坚实的基础,并有助于以后搭建复杂的项目。只要熟悉了基础知识,接下来就可以使用一些传感器和执行器了。通过Arduino、NodeMCU或Raspberry Pi等开发板来制作一些复杂的电子项目,会容易得多。在本文中,我们将介绍NodeMCU的入门级项目。 通过编程ESP8266,实现在七段数码管上显示0到9的数字以及a到f的字母。


NodeMCU ESP8266入门介绍

NodeMCU是爱好者常见的搭建项目的一种低成本、开放源代码的硬件和软件开发平台。它的社区在不断发展,并且拥有庞大的粉丝群。简单来说,NodeMCU是为ESP8266 Wi-Fi芯片开发的开源固件。 ESP8266是由Espressif Systems生产的片上Wi-Fi系统。 ESP8266可以用作支持Wi-Fi的微控制器,也可以用作外部Wi-Fi模块。 ESP8266用作外部Wi-Fi模块,并使用串行UART与微控制器通信时,可使用标准AT指令。或者通过使用提供的SDK进行编程,将其用作支持Wi-Fi的微控制器。


七段数码管介绍

七段数码管(Seven Segment Display ,简称SSD)是一种常用的输出设备,可以显示数字和字母。它主要用于计算器、数字手表等。实际上它是7个LED,排列成“ 8”形以便于显示。每个段都连接到一个引脚,分别称为“ a”、“ b”、“ c”、“ d”、“ e”和“ f”引脚。除此之外,它还有一个称为“ dp”引脚的点。


七段数码管有两种类型:共阴极和共阳极。在共阴极中,LED段的所有阴极引脚连接在一起,并作为SSD的“公共引脚”。该引脚接地,因此,当对任意LED段提供正电压时,电路便会导通,同时LED被点亮。同样,在共阳极中,LED段的所有正极端子都被连接在一起,作为SSD的“公共引脚”,并且该引脚连接到正电压。

Common-Anode-type-SSD.jpg


所需的组件

●    ESP8266开发板

●    七段数码管(本文使用的是共阴极)

●    100欧姆电阻

●    面包板


七段数码管与NodeMCU连接的电路图

由于这是一个初学者级的项目,因此电路非常简单,如下图所示。

Interfacing-Seven-Segment-Display-with-NodeMCU.png


将ESP8266的GND引脚连接到面包板的负极导轨,并将ESP8266的Vin引脚连接到面包板的正极轨。将ESP8266的D8、D7、D6、D5、D4、D3、D2和D1连接到'SSD的g'、'f'、'a'、'b'、'c'、'dp'、'e'和' d'引脚。通过100欧姆电阻将SSD的公共引脚连接到负极导轨。


NodeMCU和七段数码管的电源

通过Micro USB连接器将ESP8266连接到计算机或笔记本电脑时,将为ESP8266供电。板载稳压器产生3.3V输出电源。通过“Vin”引脚为七段数码管供电。

跳转到指定楼层
风筝
发表于: 2021-4-30 16:26:55 | 显示全部楼层

代码

使用Arduino IDE编写了一个简单的代码,以实现控制七段数码管的各个段来显示所需的数字或字母。 ESP8266的GPIO引脚连接到七段数码管的引脚以控制该段。当需要点亮特定的段时,我们需要向该段施加正电压。在进行编写代码之前,请确保安装ESP8266库。


打开Arduino IDE,将七段数码管的引脚(A、B、C等)声明为const int类型数据,并将其分配给ESP8266的GPIO引脚。在void setup()函数中,将七段数码管的引脚声明为“OUTPUT”。在void setup()函数中写入的内容仅执行一次。如所说明的,此部分对于点亮特定的段是必需的,以便多个点亮的段组成一个数字或字母。

  1. const int A = 12;
  2. const int B = 14;
  3. void setup() {               
  4.   pinMode(A, OUTPUT);
  5.   pinMode(B, OUTPUT);
  6.   .
  7.   .
  8.   .
  9. }
复制代码

void loop()函数中,调用要显示的不同函数以及一秒钟的延迟。一秒的延迟是通过delay(1000);现的,这是必要的,因为在没有适当延迟的情况下,人眼很难看到显示的内容。

  1. zero();
  2. delay(1000);
  3. one();
  4. delay(1000);
复制代码

接下来,使用digitalWrite函数声明七段数码管的相关段为高电平,另一些段为低电平。请参阅本节的引脚图。

  1. void zero(){
  2.   digitalWrite(A, HIGH);
  3.   digitalWrite(B, HIGH);
  4.   digitalWrite(C, HIGH);
  5.   digitalWrite(D, HIGH);
  6.   digitalWrite(E, HIGH);
  7.   digitalWrite(F, HIGH);
  8.   digitalWrite(G, LOW);
  9.   digitalWrite(DP, LOW);
  10. }
复制代码

调试NodeMCU与七段数码管的连接

如果您的代码未正确上传到NodeMCU中,请在上传代码时尝试拔下NodeMCU的D8。并在上传后重新连接此引脚。在执行此操作时,您无需对代码进行任何更改。


使用NodeMCU在七段数码管显示

进行电路连接并上传代码后(您可以看到板载LED周期性闪烁),七段显示管应开始显示从0到9的数字,并在之后开始显示从A到F的字母,之后它将循环回到0显示,并且一直持续到断开电源为止。

Seven-Segment-Display-Working.png


通过学习如何将七段数码管与NodeMCU一起使用,我们迈出了搭建复杂项目的第一步。在本文中,概述了七段数码管的基本工作原理,了解了七段数码管的类型,并完成了NodeMCU的编程。如果有任何疑问,请随时在本帖下面进行回复。

回复

使用道具 举报

songzhige
发表于: 2022-5-9 22:26:13 | 显示全部楼层

很好,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 54 | 回复: 107



手机版|

GMT+8, 2024-3-28 21:09 , Processed in 0.108220 second(s), 11 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表