ESP8266 - Piscar vários LEDs

Este tutorial ensina você a programar o ESP8266 para piscar vários LEDs simultaneamente, cada um piscando em uma frequência diferente, sem depender da função delay. Vamos usar três LEDs como exemplo, mas você pode ajustar o código para controlar mais LEDs com facilidade.

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×LED Kit
1×LED (red)
1×LED Module
1×(Alternativa) Button and LED Kit
1×220Ω Resistor
1×Protoboard
1×Fios Jumper
1×(Opcional) Conector de Alimentação DC
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Sobre o LED

Temos um tutorial específico sobre LED. O tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação ao ESP8266, o código ESP8266... Saiba mais sobre eles no link a seguir:

Diagrama de Ligação

Diagrama de ligação de vários LEDs com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Código ESP8266 - Piscar Vários LEDs

Para piscar vários LEDs, não podemos usar a função delay(). Em vez disso, precisamos usar a função millis() e gerenciar os timestamps .

Gerenciar timestamps ao piscar vários LEDs pode ser difícil para iniciantes. Felizmente, a biblioteca ezLED simplifica o processo de piscar vários LEDs, gerenciando os timestamps internamente. Isso elimina a necessidade de o usuário cuidar do gerenciamento de timestamps ao usar essa biblioteca. Além disso, você pode deixar o código mais claro e curto usando um array de LEDs.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-blink-multiple-led */ #include <ezLED.h> // ezLED library #define PIN_LED_1 D5 // The ESP8266 pin connected to LED 1 #define PIN_LED_2 D6 // The ESP8266 pin connected to LED 2 #define PIN_LED_3 D7 // The ESP8266 pin connected to LED 3 ezLED led1(PIN_LED_1); // create ezLED object that attach to pin PIN_LED_1 ezLED led2(PIN_LED_2); // create ezLED object that attach to pin PIN_LED_2 ezLED led3(PIN_LED_3); // create ezLED object that attach to pin PIN_LED_3 void setup() { Serial.begin(9600); led1.blink(500, 500); // 500ms ON, 500ms OFF, blink immediately led2.blink(200, 800); // 200ms ON, 800ms OFF, blink immediately led3.blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { led1.loop(); // MUST call the led1.loop() function in loop() led2.loop(); // MUST call the led2.loop() function in loop() led3.loop(); // MUST call the led3.loop() function in loop() // DO SOMETHING HERE }

Passos Rápidos

Para começar com o ESP8266 na Arduino IDE, siga estes passos:

  • Veja o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes de acordo com o diagrama fornecido.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa ESP8266) e a porta COM correspondente.
  • Clique no ícone Libraries na barra à esquerda da Arduino IDE.
  • Pesquise “ezLED”, depois encontre a biblioteca de LED do ArduinoGetStarted
  • Clique no botão Install para instalar a biblioteca ezLED.
Biblioteca de LED para ESP8266 NodeMCU
  • Copie o código acima e cole na Arduino IDE.
  • Compile e faça o upload do código para a placa ESP8266 clicando no botão Upload na Arduino IDE
Como fazer upload do código ESP8266 NodeMCU na Arduino IDE
  • Confira o estado do LED

Código ESP8266 - Piscar Vários LEDs usando array

Podemos otimizar o código acima usando um array de LEDs. O código abaixo usa o array para gerenciar os objetos LED.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-blink-multiple-led */ #include <ezLED.h> // ezLED library #define NUM_LED 3 // three LEDs #define PIN_LED_1 D5 // The ESP8266 pin connected to LED 1 #define PIN_LED_2 D6 // The ESP8266 pin connected to LED 2 #define PIN_LED_3 D7 // The ESP8266 pin connected to LED 3 ezLED ledArray[NUM_LED] = { ezLED(PIN_LED_1), // create ezLED object that attach to pin PIN_LED_1 ezLED(PIN_LED_2), // create ezLED object that attach to pin PIN_LED_2 ezLED(PIN_LED_3) // create ezLED object that attach to pin PIN_LED_3 }; void setup() { Serial.begin(9600); ledArray[0].blink(500, 500); // 500ms ON, 500ms OFF, blink immediately ledArray[1].blink(200, 800); // 200ms ON, 800ms OFF, blink immediately ledArray[2].blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // MUST call the led.loop() function in loop() // DO SOMETHING HERE }

Para um piscar flexível, consulte as outras funções da biblioteca ezLED

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!