Arduino UNO R4 Fade LED

Hướng dẫn này sẽ chỉ bạn cách lập trình Arduino UNO R4 để fade và điều chỉnh độ sáng LED. Cụ thể, chúng ta sẽ học:

Arduino UNO R4 fade LED

Linh Kiện Cần Thiết

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 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

Pinout

LED có hai chân:

  • Chân Cathode(-): nên được kết nối với GND (0V)
  • Chân Anode(+): được sử dụng để điều khiển trạng thái của LED
LED sơ đồ chân

Cách Thức Hoạt Động

Sau khi kết nối chân âm (cathode) với đất (GND):

  • Nếu bạn kết nối đất (GND) với chân dương (anode) của LED, nó sẽ tắt.
  • Nếu bạn kết nối nguồn điện (VCC) với chân dương (anode) của LED, nó sẽ sáng.
  • Nếu bạn gửi tín hiệu Điều Chế Độ Rộng Xung (PWM) đến chân dương (anode) của LED, bạn có thể thay đổi độ sáng. Giá trị PWM có thể từ 0 đến 255. Giá trị PWM cao hơn làm LED sáng hơn, và giá trị PWM thấp hơn làm nó mờ hơn.
    • Nếu giá trị PWM là 0, nó hoạt động như kết nối với GND, vì vậy LED tắt.
    • Nếu giá trị PWM là 255, nó hoạt động như kết nối với VCC, vì vậy LED sáng hoàn toàn.
    how LED works

    ※ Lưu ý:

    Đối với hầu hết các LED, bạn cần kết nối một điện trở giữa chân dương (anode) và nguồn điện (VCC). Giá trị điện trở thay đổi tùy thuộc vào thông số kỹ thuật của LED.

    Arduino UNO R4 - fade LED

    Chúng ta có thể làm cho LED fade/mờ sáng bằng cách sử dụng một số chân của Arduino UNO R4 có thể tạo tín hiệu PWM. Đầu tiên, kết nối chân dương (+) của LED với một trong các chân của Arduino UNO R4. Sau đó, kết nối chân âm (-) của LED với đất (GND). Bạn có thể thiết lập chân Arduino đã chọn để tạo tín hiệu PWM.

Sơ Đồ Kết Nối

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

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình

  • Thiết lập chế độ chân của Arduino UNO R4 thành digital output sử dụng hàm pinMode(). Ví dụ, cho chân 9:
pinMode(9, OUTPUT);
  • Điều chỉnh độ sáng LED bằng cách sử dụng hàm analogWrite() để tạo tín hiệu PWM phù hợp.
analogWrite(9, brightness);

Độ sáng có thể từ 0 đến 255.

Code Arduino UNO R4 - Ví Dụ Fade từ Arduino IDE

/* * 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-fade-led */ #define LED_PIN 9 // The Arduino UNO R4 pin connected to the LED int brightness = 0; // how bright the LED is int fade_step = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fade_step; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // wait for 30 milliseconds to see the dimming effect delay(30); }

Các Bước Nhanh

Thực hiện theo các hướng dẫn từng bước 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 LED với Arduino Uno R4 theo sơ đồ được cung cấp.
  • Kết nối board 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 board Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Copy đoạn code trên và paste vào Arduino IDE.
  • Click nút Upload trong Arduino IDE để gửi code đến Arduino UNO R4.
tải mã lên Arduino IDE
  • Quan sát độ sáng của LED.

Giải Thích Code

Giải thích được ghi trong các comment của Arduino code ở trên.

※ Lưu ý:

Trong ví dụ trên, chúng ta sử dụng hàm delay() để từ từ làm cho đèn sáng hơn và mờ hơn. Tuy nhiên, việc sử dụng delay() làm cho đèn thay đổi ít mượt mà hơn và ngăn các phần khác của chương trình hoạt động trong khi nó chờ đợi. Trong phần tiếp theo, chúng ta sẽ học cách làm cho đèn thay đổi mượt mà mà không dừng phần còn lại của chương trình bằng cách sử dụng hàm millis().

Cách fade-out LED trong một khoảng thời gian mà không sử dụng delay()

/* * 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-fade-led */ #define LED_PIN 9 // The Arduino UNO R4 pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fade_start_ms; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fade_start_ms = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fade_start_ms; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fade_start_ms = millis(); // restart fade again } }

Cách fade-in LED trong một khoảng thời gian mà không sử dụng delay()

/* * 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-fade-led */ #define LED_PIN 9 // The Arduino UNO R4 pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fade_start_ms; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fade_start_ms = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fade_start_ms; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fade_start_ms = millis(); // restart fade again } }

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.

Bình Luận