ESP8266 Nhấp nháy nhiều đèn LED

Hướng dẫn này chỉ cho bạn cách lập trình ESP8266 để nháy nhiều LED đồng thời, mỗi LED nháy ở một tần số khác nhau, mà không dựa vào hàm delay. Chúng ta sẽ dùng ba LED làm ví dụ, nhưng bạn có thể điều chỉnh mã để xử lý nhiều LED hơn một cách dễ dàng.

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×breadboard
1×dây jumper
1×(Tùy chọn) DC Power Jack
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về LED

Chúng tôi có một hướng dẫn cụ thể về LED. Hướng dẫn này chứa thông tin chi tiết và các chỉ dẫn từng bước về sơ đồ chân phần cứng, nguyên lý hoạt động, cách kết nối với ESP8266, mã ESP8266... Tìm hiểu thêm về chúng tại liên kết sau:

Sơ đồ đấu dây

sơ đồ nối dây cho nhiều đèn LED ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

Mã ESP8266 - Nhấp nháy nhiều đèn LED

Để làm nhấp nháy nhiều LED, chúng ta không thể sử dụng hàm delay(). Thay vào đó, chúng ta cần sử dụng hàm millis() và quản lý các mốc thời gian.

Quản lý dấu thời gian khi nháy nhiều đèn LED có thể là thách thức đối với người mới bắt đầu. May mắn thay, thư viện ezLED đơn giản hóa quá trình nháy nhiều đèn LED bằng cách quản lý dấu thời gian ở bên trong. Điều này loại bỏ nhu cầu người dùng phải quản lý dấu thời gian khi sử dụng thư viện này. Thêm vào đó, bạn có thể cải thiện tính rõ ràng và ngắn gọn của mã bằng cách sử dụng một mảng các đèn LED.

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/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 }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Hãy xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Kết nối các linh kiện theo sơ đồ được cung cấp.
  • Kết nối bảng ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn ESP8266) bảng và cổng COM tương ứng của nó.
  • Nhấp vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “ezLED”, sau đó tìm thư viện ezLED do ArduinoGetStarted cung cấp.
  • Nhấp nút Install để cài đặt thư viện ezLED.
thư viện LED cho ESP8266 NodeMCU
  • Sao chép mã ở trên và dán vào Arduino IDE.
  • Biên dịch và tải mã lên bo mạch ESP8266 bằng cách nhấp vào nút Tải lên trên Arduino IDE
cách tải mã ESP8266 NodeMCU lên Arduino ide
  • Kiểm tra trạng thái của đèn LED

ESP8266 Mã nguồn - Nhấp nháy nhiều đèn LED bằng cách sử dụng mảng

Chúng ta có thể tối ưu hóa mã ở trên bằng cách sử dụng một mảng các đèn LED. Mã dưới đây sử dụng mảng để quản lý các đối tượng LED.

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/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 }

Đối với nhấp nháy linh hoạt, vui lòng tham khảo các chức năng khác của thư viện ezLED.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.