Arduino LED Nhấp nháy

Trong hướng dẫn này, chúng ta học cách điều khiển LED bằng Arduino, cách lập trình cho Arduino để bật/tắt LED, và cách nhấp nháy LED.

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

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×breadboard
1×dây jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

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

Về LED

Sơ đồ chân

LED bao gồm hai chân:

  • Chân Cathode(-): cần được kết nối với GND (0V)
  • Chân Anode(+): được dùng để điều khiển trạng thái của đèn LED
bố trí chân LED

Cách hoạt động

Sau khi nối cực âm(-) với GND:

  • Nếu nối GND tới anode(+), LED tắt.
  • Nếu nối VCC tới anode(+), LED sáng.
cách LED hoạt động

Ngoài ra, nếu phát tín hiệu PWM cho anốt (+), độ sáng của LED sẽ thay đổi theo giá trị PWM (được mô tả chi tiết trong Arduino - LED - Mờ dần).

※ Lưu ý:

  • Đối với hầu hết LED, chúng ta cần sử dụng một điện trở. Điện trở có thể được đặt giữa anode (+) và VCC hoặc giữa cathode (-) và GND. Giá trị của điện trở phụ thuộc vào thông số của LED.
  • Một số loại LED có điện trở tích hợp sẵn. Chúng ta có thể không cần sử dụng điện trở cho những loại LED đó.

Arduino - Đèn LED

Khi một chân của Arduino được cấu hình làm đầu ra kỹ thuật số, điện áp trên chân đó có thể được thiết lập bằng chương trình thành giá trị GND hoặc VCC.

Bằng cách kết nối chân của Arduino tới chân anode (+) của LED (thông qua một điện trở), chúng ta có thể điều khiển trạng thái của LED một cách lập trình.

Sơ đồ đấu dây

Chúng ta sẽ đi qua hai ví dụ:

  • Mã ví dụ điều khiển đèn LED tích hợp trên Arduino/Genuino UNO.
  • Việc chỉnh sửa mã Arduino điều khiển đèn LED bên ngoài.
sơ đồ mạch LED Arduino

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình

  • Cấu hình một chân của Arduino ở chế độ đầu ra số bằng cách sử dụng hàm pinMode(). Ví dụ, chân 9:
pinMode(9, OUTPUT);
  • Lập trình chân về GND để tắt LED bằng cách sử dụng hàm digitalWrite().
digitalWrite(9, LOW);
  • Lập trình chân để cấp nguồn VCC để Bật LED bằng cách sử dụng hàm digitalWrite():
digitalWrite(9, HIGH);

Mã Arduino

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

  • Kết nối Arduino với máy tính bằng cáp USB
  • Mở Arduino IDE, chọn board và cổng đúng
  • Sao chép đoạn mã dưới đây và dán vào Arduino IDE
/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-led-blink */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
  • Nhấn nút Upload trên Arduino IDE để nạp mã lên Arduino
Arduino ide - cách tải mã lên
  • Xem kết quả: Đèn LED tích hợp sẽ nhấp nháy giữa BẬT và TẮT mỗi giây.

Giải thích mã nguồn

Bạn có thể tìm lời giải thích trong dòng chú thích của mã Arduino ở trên.

※ Lưu ý:

Đoạn mã ở trên sử dụng delay().

Hàm này khiến Arduino không thể thực hiện các tác vụ khác trong thời gian trì hoãn.

Nếu dự án của bạn cần thực hiện một số tác vụ, hãy tránh để Arduino bị chặn bằng cách sử dụng Arduino - LED - Nháy LED không có độ trễ.

Chỉnh sửa mã Arduino

Chỉnh sửa mã để điều khiển LED bên ngoài.

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

  • Kết nối LED với Arduino theo sơ đồ đấu dây ở trên.
  • Thay đổi mã:
    • Thay đổi LED_BUILTIN thành 9
    • Thay đổi độ trễ từ 1000 ms thành 500 ms
    /* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-led-blink */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 9 as an output. pinMode(9, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(9, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for 500 milliseconds digitalWrite(9, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for 500 milliseconds }
    • Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên Arduino
    • Xem kết quả: LED chuyển giữa BẬT và TẮT theo chu kỳ. LED nhấp nháy nhanh hơn.

    ※ Lưu ý:

    Hướng dẫn này cung cấp kiến thức chuyên sâu giúp bạn hiểu nguyên lý hoạt động. Để dễ dàng hơn, bạn có thể sử dụng Arduino - 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.

Thách thức bản thân

  • Kết nối đèn LED với một chân khác của Arduino và thay đổi thời gian nhấp nháy.
  • Bật/tắt đèn LED bằng nút nhấn. Gợi ý: Tham khảo Arduino - Nút nhấn.

Kiến thức bổ sung

Các chân nào trên Arduino UNO có thể được dùng làm chân đầu ra để điều khiển LED?

  • Pin 0 đến Pin 13
  • Pin A0 đến Pin A5

※ Lưu ý:

Tại một thời điểm, một pin chỉ có thể đảm nhận một tác vụ. Nếu bạn đã sử dụng một pin cho một tác vụ khác (ví dụ, đầu vào kỹ thuật số, đầu vào analog, PWM, UART...), bạn KHÔNG NÊN sử dụng nó làm đầu ra kỹ thuật số để điều khiển LED. Ví dụ, nếu chúng ta sử dụng hàm Serial.println(), chúng ta KHÔNG NÊN sử dụng pin 0 và 1 cho bất kỳ mục đích nào khác vì các pin này được dùng cho Serial.

Khả năng mở rộng

Hướng dẫn này cho thấy cách sử dụng chân đầu ra của Arduino để điều khiển một đèn LED. Chúng ta có thể áp dụng đoạn mã này để điều khiển bật/tắt bất kỳ thiết bị nào, thậm chí cả những máy móc lớn.

※ Lưu ý:

đối với các thiết bị/máy móc sử dụng nguồn cấp có điện áp lớn (> 5V) và/hoặc tiêu thụ dòng điện cao, chúng ta cần sử dụng một rơ-le giữa chân đầu ra và các thiết bị/máy móc - xem Arduino - rơ-le.

Tham khảo hàm