Arduino UNO R4 Nhấp Nháy Nhiều LED

Arduino UNO R4 blinks multiple LED

Hướng dẫn này sẽ chỉ cho bạn cách lập trình Arduino UNO R4 để làm nhiều LED nhấp nháy với tần số khác nhau mà không sử dụng hàm delay(). Chúng tôi cung cấp code theo hai cách:

Chúng ta sẽ demo với ba LED. Bạn có thể dễ dàng điều chỉnh cho hai LED, bốn LED hoặc nhiều hơn.

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

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×LED Kit
1×LED (red)
1×LED Module
1×Điện trở 220 ohm
1×breadboard
1×Dây nối Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về LED

Khám phá hướng dẫn toàn diện của chúng tôi về LED, bao gồm cách kết nối phần cứng, cách chúng hoạt động, cách thiết lập với Arduino UNO R4, và các bước lập trình. Tìm hiểu thêm tại đây:

Sơ Đồ Kết Nối

Arduino UNO R4 multiple LED sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Arduino UNO R4 - Nhấp Nháy Nhiều LED

Để làm nhiều LED nhấp nháy cùng một lúc, chúng ta không nên sử dụng hàm delay(). Hàm này dừng việc chạy code khác, có nghĩa là chúng ta không thể làm các LED khác nhau nhấp nháy cùng nhau. Thay vào đó, chúng ta nên sử dụng hàm millis() để điều khiển thời gian.

Đối với người mới bắt đầu, việc quản lý timestamps khi làm nhiều LED nhấp nháy có thể khó khăn. May mắn thay, thư viện ezLED giúp việc này dễ dàng hơn bằng cách xử lý việc quản lý timestamp bên trong thư viện. Điều này có nghĩa là người dùng không phải lo lắng về việc tự quản lý timestamps khi sử dụng thư viện. Ngoài ra, việc sử dụng một nhóm LED có thể làm code rõ ràng và ngắn gọn hơn.

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-blink-multiple-led */ #include <ezLED.h> // ezLED library by ArduinoGetStarted.com #define PIN_LED_1 7 // The Arduino UNO R4 pin connected to LED 1 #define PIN_LED_2 8 // The Arduino UNO R4 pin connected to LED 2 #define PIN_LED_3 9 // The Arduino UNO R4 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(800, 200); // 800ms ON, 200ms OFF, blink immediately led2.blink(500, 500); // 500ms ON, 500ms OFF, blink immediately led3.blink(500, 500, 500); // 500ms ON, 500ms OFF, blink after 500ms } 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 }

Các Bước Thực Hiện

Thực hiện theo từng bước hướng dẫn sau:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Kết nối Arduino Uno R4 với các LED theo sơ đồ được cung cấp.
  • Kết nối bo mạch Arduino Uno R4 với máy tính của bạn bằng cáp USB.
  • Khởi động Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Nhấp vào biểu tượng Libraries ở phía bên trái của Arduino IDE.
  • Gõ "ezLED" vào hộp tìm kiếm và tìm thư viện LED được tạo bởi Arduino UNO R4GetStarted.
  • Nhấp nút Install để thêm thư viện ezLED.
Arduino UNO R4 LED thư viện
  • Sao chép code được cung cấp và dán vào Arduino IDE.
  • Để tải code lên bo mạch Arduino UNO R4, nhấp nút Upload trong Arduino IDE.
how to upload Arduino UNO R4 code on Arduino ide
  • Quan sát xem LED có sáng hay tắt không.

Code Arduino UNO R4 - Nhấp Nháy Nhiều LED bằng mảng (array)

Chúng ta có thể cải thiện code trên bằng cách sử dụng mảng LED. Code bên dưới sử dụng mảng để quản lý các đối tượng LED.

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-blink-multiple-led */ #include <ezLED.h> // ezLED library by ArduinoGetStarted.com #define NUM_LED 3 // three LEDs #define PIN_LED_1 7 // The Arduino UNO R4 pin connected to LED 1 #define PIN_LED_2 8 // The Arduino UNO R4 pin connected to LED 2 #define PIN_LED_3 9 // The Arduino UNO R4 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(800, 200); // 800ms ON, 200ms OFF, blink immediately ledArray[1].blink(500, 500); // 500ms ON, 500ms OFF, blink immediately ledArray[2].blink(500, 500, 500); // 500ms ON, 500ms OFF, blink after 500ms } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // MUST call the led.loop() function in loop() // DO SOMETHING HERE }

Sử dụng thư viện ezLED, chúng ta có thể linh hoạt điều khiển nhiều LED nhấp nháy như sau:

  • Làm nhiều LED nhấp nháy với tốc độ khác nhau.
  • Làm nhiều LED bắt đầu nhấp nháy tại các thời điểm khác nhau.
  • Làm mỗi LED nhấp nháy trong một khoảng thời gian cụ thể.
  • Làm mỗi LED nhấp nháy một số lần nhất định.

Tham khảo code mẫu trong thư viện.

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.