Blink LED dùng hàm định thời millis()

Cái này viết ngắn gọn.

Blink LED dùng hàm định thời millis()

Bật/tắt LED và hiển thị trạng thái của LED qua màn hình monitor của Arduino bằng cách sử dụng hàm millis().

Chuẩn bị

Giới thiệu chức năng linh kiện chính

  • Board UnoX:

    • Xuất tín hiệu điều khiển LED.
  • LED (Light-Emitting Diode):

    • Phát ra ánh sáng.
    • LED Sáng hoặc tắt được điều khiển bởi board UnoX.
    • Board UnoX có 2 LED built-in là: LED D2 nối với chân số 13 và D6 nối với chân số 3.

Lưu ý

Lưu ý Nếu không muốn dùng LED built-in của board UnoX, có thể dùng LED bên ngoài bằng cách đấu nối như hình và chỉnh sửa source code #define pinLed 13 thành #define pinLed A0

Đấu nối Unox với LED bên ngoài

  • Chân dài hơn của LED (chân +) kết nối với UnoX thông qua điện trở 330 Ohm.
  • Chân ngắn hơn của LED (chân -) nối với GND của UnoX.

Khi dùng LED bên ngoài nên sử dụng điện trở giúp hạn chế dòng điện cho LED, để LED hoạt động bình thường

Mô tả nội dung Source Code

  • Chớp nháy LED D2 trên board UnoX bằng sử dụng chân 13 tín hiệu điều khiển.
  • Hiển thị trạng thái LED ON/OFF trên màn hình monitor trên trình biên dịch Arduino-IDE.
#define pinLed 13     // Định nghĩa pinLed là chân số 13

int ledState = LOW;               // khai báo biến lưu trạng thái của LED
unsigned long previousMillis = 0; // Khai báo biến previousMillis = 0
const long interval = 1000;       // Khái báo biến interval = 1000 mili giây = 1s

void setup()
{
  Serial.begin(9600);
  pinMode(pinLed, OUTPUT);
}

void loop()
{
  unsigned long currentMillis = millis();

  // Nếu hàm millis() đếm được 1000 milli giây = 1s thì sẽ thay đổi trạng thái LED
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    if(ledState == LOW) {
      ledState = HIGH;            // Đổi trạng thái
      Serial.println("LED ON");   // Hiển thị trạng thái "LED ON" trên monitor
  } else {
      ledState = LOW;             // Đổi trạng thái
      Serial.println("LED OFF");  // Hiển thị trạng thái "LED OFF" trên monitor
  }
  digitalWrite(pinLed, ledState); // Xuất tín hiệu HIGH hoặc LOW để LED sáng hoặc tắt
  }
}

Notes: Chương trình bật tắt cho LED D6 cũng hoàn tương tự, chỉ việc thay #define pinLed 13 thành #define pinLed 3.

Kết quả

LED sáng/tắt và hiển thị trạng thái ON/OFF trên màn hình monitor của trình biên dịch Arduino-IDE.

Notes: Chương trình bật tắt cho LED D6 cũng hoàn tương tự, chỉ việc thay #define pinLed 13 thành #define pinLed 3.