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

文章目录

NodeMCU ESP8266 点亮LED灯手把手教程(图文并茂+超级详细)前言硬件原理什么是LED?DIPSMD

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,具体如下图所示; 常见的封装有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将不会导通。

注意:

LED的正负极不要连接出错,否则会导致LED无法发光,必须保证正向导通电压大于二极管的导通电压;需要增加限流电阻,要保证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进行点灯的教程,在点灯的程序里,可能我们会产生一些疑问;

为什么就是用pinMode和digitalWrite这两个函数?如果要实现其他的功能又该用什么函数?去哪里找这些函数的接口和使用说明?

这是因为底层做了封装,下面我们会进一步介绍。

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

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

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: