NodeMCU ESP8266 点亮LED灯详细教程(图文并茂)

NodeMCU ESP8266 点亮LED灯手把手教程(图文并茂+超级详细)

文章目录

  • NodeMCU ESP8266 点亮LED灯手把手教程(图文并茂+超级详细)
  • 前言
  • 硬件原理
  • 什么是LED?
  • DIP
  • SMD
  • LED工作原理
  • ESP-12E 原理图
  • 示例代码
  • 点亮LED
  • 间隔两秒闪烁
  • 自带历程
  • 结论

  • 前言

    大家如果学过编程,那么Hello World往往是大家写下的第一个程序,在C语言中,看着控制台输出hello world,也就意味着我们敲开了编程的大门。同样的,点亮一个LED灯可以说是嵌入式里的hello world

    NodeMCU ESP8266是一款基于ESP8266芯片的开发板。之前我们有做过介绍,这个开发板使用的模组是ESP-12E,模组上板载了一个蓝色的LED,我们可以使用这个LED作为实验的对象,可以点亮LED,或者闪烁。

    硬件原理

    什么是LED?

    LED,全称为“Light Emitting Diode”(发光二极管),是一种半导体器件,具有电能转换为可见光或红外光的能力。

    通常用下面这个电气符号来表示LED,具体如下图所示;
    LED电气符号
    常见的封装有DIP直插和SMD贴片;

    DIP

    DIP(Dual In-line Package)封装: 这是一种传统的LED封装类型,通常用于LED指示灯、信号灯、数字显示屏等应用中。DIP封装的LED有两个引脚,通常是直插式的。


    图片来自网络

    LED具有极性,只允许电流在一个方向上流动,通常从正极(称为阳极)流向负极(称为阴极)。

    SMD

    SMD(Surface Mount Device)封装: SMD LED通常采用表面贴装技术,可以直接焊接在印刷电路板(PCB)上,因此在电子产品中广泛使用。

    SMD封装有各种尺寸和形状,如SMD 2835、SMD 5050等,具体如下所示;

    实际的尺寸大小

    LED工作原理

    LED包含一个PN结,因为本质上它还是一个二极管,所以LED具有单向导通的特点,只允许电流在一个方向上流动。
    这种单向导通特性是LED的一个重要优点,因为它使得LED在电路中能够用作二极管来控制电流流向,同时也有助于防止电流反向流入LED,保护LED不受损坏。

    当正极施加一个较高的电压,而负极施加一个较低的电压时,LED就会导通。

    当反向电压施加到LED上时,LED将不会导通。

    常见的连接方式

    注意:

    1. LED的正负极不要连接出错,否则会导致LED无法发光,必须保证正向导通电压大于二极管的导通电压;
    2. 需要增加限流电阻,要保证LED的正向导通电流,否则会导致LED烧毁;

    ESP-12E 原理图

    通过查询ESP-12E的原理图,我们可以发现,模块上的蓝色LED的负极接到了GPIO2,LED的正极接到电压3.3V上了;

    这里我们只要保证LED有足够的正向导通电压,才能点亮LED,具体如下所示;

    示例代码

    点亮LED

    void setup() {
      // put your setup code here, to run once:
      pinMode(2, OUTPUT);
      digitalWrite(2,LOW);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    }
    

    注意:
    pinMode(2, OUTPUT); //这一句是将GPIO2引脚作为输出脚,即可以输出高电平(3.3V),也可以输出低电平(0V);
    digitalWrite(2,LOW);这一句是让GPIO2输出低电平;这样LED就可以亮起来;

    间隔两秒闪烁

    void setup() {
      // put your setup code here, to run once:
      pinMode(2, OUTPUT);
      digitalWrite(2,LOW);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      delay(2000);
      digitalWrite(2,LOW);
      delay(2000);
      digitalWrite(2,HIGH);
    }
    

    自带历程

    下面是ESP库里自带的点灯例程,因为做了比较好的封装,这里的LED_BUILTIN是一个宏定义,其实是数字2,具体程序如下;

    /*
      ESP8266 Blink by Simon Peter
      Blink the blue LED on the ESP-01 module
      This example code is in the public domain
    
      The blue LED on the ESP-01 module is connected to GPIO1
      (which is also the TXD pin; so we cannot use Serial.print() at the same time)
    
      Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
    */
    
    void setup() {
      pinMode(LED_BUILTIN, OUTPUT);  // Initialize the LED_BUILTIN pin as an output
    }
    
    // the loop function runs over and over again forever
    void loop() {
      digitalWrite(LED_BUILTIN, LOW);  // Turn the LED on (Note that LOW is the voltage level
      // but actually the LED is on; this is because
      // it is active low on the ESP-01)
      delay(1000);                      // Wait for a second
      digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
      delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
    }
    
    

    结论

    本文简单介绍了用NodeMCU ESP8266进行点灯的教程,在点灯的程序里,可能我们会产生一些疑问;

  • 为什么就是用pinModedigitalWrite这两个函数?
  • 如果要实现其他的功能又该用什么函数?
  • 去哪里找这些函数的接口和使用说明?
  • 这是因为底层做了封装,下面我们会进一步介绍。

    由于作者能力有限,文章中难免存在错误和纰漏,请大胆指正,如果对于文章中存在疑惑或者问题,欢迎在评论区进行留言。

    如果文章帮到了你,请帮忙点赞,三连支持👍👍👍。

    物联沃分享整理
    物联沃-IOTWORD物联网 » NodeMCU ESP8266 点亮LED灯详细教程(图文并茂)

    发表评论