NodeMCU ESP8266 点亮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
这两个函数? - 如果要实现其他的功能又该用什么函数?
- 去哪里找这些函数的接口和使用说明?
这是因为底层做了封装,下面我们会进一步介绍。
由于作者能力有限,文章中难免存在错误和纰漏,请大胆指正,如果对于文章中存在疑惑或者问题,欢迎在评论区进行留言。文章来源:https://www.toymoban.com/news/detail-742997.html
如果文章帮到了你,请帮忙点赞,三连支持👍👍👍。文章来源地址https://www.toymoban.com/news/detail-742997.html
到了这里,关于NodeMCU ESP8266 点亮LED灯手把手教程(图文并茂+超级详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!