Arduino thực chiến: BÀI 2 – NÚT NHẤN ĐIỀU KHIỂN LED - Lập trình tự động hóa - A-Kinh nghiem hay

Giới thiệu

Ở Bài 1, chúng ta đã điều khiển LED bằng chương trình Arduino. LED tự động bật và tắt theo những lệnh mà chúng ta lập trình.


Trong bài này, chúng ta sẽ đưa thêm một nút nhấn vào mạch.

Arduino sẽ phải:

Nhận tín hiệu từ nút nhấn → xử lý tín hiệu → điều khiển LED.

Đây là một bước rất quan trọng trong quá trình học lập trình Arduino, bởi trong các hệ thống tự động hóa thực tế, Arduino không chỉ tự thực hiện chương trình mà còn phải nhận tín hiệu từ người dùng hoặc cảm biến để đưa ra quyết định.

Mô hình hoạt động

       🔘 NÚT NHẤN

             │

             ↓

          ARDUINO

             │

             ↓

          💡 LED

Khi nhấn nút:

🔘 NHẤN

  ↓

Arduino nhận tín hiệu

  ↓

💡 LED SÁNG

Khi thả nút:

🔘 THẢ

  ↓

Arduino nhận tín hiệu

  ↓

⚫ LED TẮT

1.🎯 Mục tiêu bài học

Sau khi hoàn thành bài học, người học có thể:

  • Hiểu nguyên lý hoạt động của nút nhấn.
  • Biết sử dụng chân Digital để đọc tín hiệu đầu vào.
  • Biết sử dụng digitalRead().
  • Hiểu sự khác nhau giữa INPUTOUTPUT.
  • Biết sử dụng câu lệnh if.
  • Điều khiển LED dựa trên trạng thái của nút nhấn.
  • Bước đầu hình thành tư duy:

Đọc tín hiệu → Kiểm tra điều kiện → Thực hiện hành động.

Đây là nền tảng để sau này lập trình:

cảm biến → Arduino → relay → quạt → máy bơm → đèn → còi → cửa tự động...

2.🧰 Chuẩn bị

Linh kiện đã có từ Bài 1

  • Arduino Uno
  • Breadboard
  • LED
  • Điện trở 220Ω–330Ω
  • Dây jumper
  • Cáp USB

Linh kiện bổ sung cho Bài 2

  • 🔘 1 nút nhấn 4 chân
  • 1 điện trở 10kΩ


💡 Nếu sử dụng INPUT_PULLUP của Arduino, chúng ta có thể không cần điện trở 10kΩ bên ngoài. Tuy nhiên, trong bài này tôi đề nghị cho người học thực hành với điện trở 10kΩ, để hiểu rõ nguyên lý mạch kéo xuống (pull-down).

3. 🔌 Nguyên lý mạch

Ta sử dụng:

             +5V

              │

              │

            [NÚT]

              │

              ├────────── D2

              │

            [10kΩ]

              │

             GND

Khi không nhấn nút

+5V
 │
Nút hở
 │
D2 ───────→ LOW
 │
10kΩ
 │
GND

Arduino đọc:

D2 = LOW

→ LED tắt.

Khi nhấn nút

+5V
 │
Nút đóng
 │
D2 ───────→ HIGH
 │
10kΩ
 │
GND

4. Đấu dây

LED

Giữ nguyên LED từ Bài 1:

Arduino D8

    │

  220Ω

    │

 LED chân dài (+)

 LED chân ngắn (-)

    │

   GND

Nút nhấn

Arduino 5V

    │

    │

  Nút nhấn

    │

    ├──────── Arduino D2

    │

   10kΩ

    │

   GND

Sơ đồ tổng thể

                    ARDUINO UNO

                  ┌───────────────┐

                  │               │

        5V ───────┤               │

                  │               │

                  │    D2 ◄───────┼──── NÚT NHẤN

                  │               │       │

                  │               │      10kΩ

                  │               │       │

                  │    D8 ────────┼──220Ω─LED

                  │               │       │

        GND ──────┤               ├───────┘

                  │               │

                  └───────────────┘

5.💻 Code Arduino
Arduino C++
const int BUTTON_PIN = 2;
const int LED_PIN = 8;

void setup()
{
    pinMode(BUTTON_PIN, INPUT);
    pinMode(LED_PIN, OUTPUT);
}

void loop()
{
    int buttonState = digitalRead(BUTTON_PIN);

    if (buttonState == HIGH)
    {
        digitalWrite(LED_PIN, HIGH);
    }
    else
    {
        digitalWrite(LED_PIN, LOW);
    }
}

Đây là chương trình đầu tiên:

const int BUTTON_PIN = 2;

const int LED_PIN = 8;

void setup()

{

    pinMode(BUTTON_PIN, INPUT);

    pinMode(LED_PIN, OUTPUT);

}

void loop()

{

    int buttonState = digitalRead(BUTTON_PIN);


    if (buttonState == HIGH)

    {

        digitalWrite(LED_PIN, HIGH);

    }

    else

    {

        digitalWrite(LED_PIN, LOW);

    }

}

6.🧠 Giải thích chương trình

Khai báo chân

const int BUTTON_PIN = 2;
const int LED_PIN = 8;

Ta quy định:

D2 → nút nhấn

D8 → LED

Cấu hình nút nhấn

pinMode(BUTTON_PIN, INPUT);

INPUT nghĩa là:

Arduino sử dụng chân D2 để nhận tín hiệu.

Trong khi:

pinMode(LED_PIN, OUTPUT);

nghĩa là:

Arduino sử dụng D8 để xuất tín hiệu điều khiển LED.

7. 📥 Đọc trạng thái nút nhấn

int buttonState = digitalRead(BUTTON_PIN);

Arduino đọc D2 và lưu kết quả vào biến:

buttonState

Có hai khả năng:

HIGH → đang nhấn nút

LOW  → không nhấn nút

8.🤔 Arduino ra quyết định

if (buttonState == HIGH)
{
    digitalWrite(LED_PIN, HIGH);
}

Hiểu đơn giản:

Nếu nút được nhấn → bật LED.

Ngược lại:

else
{
    digitalWrite(LED_PIN, LOW);
}

Nếu nút không được nhấn → tắt LED.

9. 🧪 Thực hành

Sau khi nạp chương trình:

Không nhấn

🔘 Nút: KHÔNG NHẤN
        ↓
Arduino đọc LOW
        ↓
💡 LED TẮT

Nhấn nút

🔘 Nút: NHẤN
        ↓
Arduino đọc HIGH
        ↓
💡 LED SÁNG

10. ⭐ Bài tập nâng cấp 2A

Bây giờ hãy thay đổi yêu cầu:

Nhấn nút → LED sáng trong 1 giây → sau đó tự tắt.

Sơ đồ logic:

Nhấn nút
   ↓
LED sáng
   ↓
Chờ 1 giây
   ↓
LED tắt

11. ⭐⭐ Bài tập nâng cấp 2B

Tiếp tục nâng cấp:

Nhấn nút → LED đổi trạng thái.

Tức là:

Lần 1 nhấn
    ↓
LED ON

Lần 2 nhấn
    ↓
LED OFF

Lần 3 nhấn
    ↓
LED ON

Lần 4 nhấn
    ↓
LED OFF

Đây là bài tập rất quan trọng.

Bởi từ đây người học bắt đầu làm quen với:

TRẠNG THÁI – STATE

Sau này cùng nguyên lý này chúng ta có thể lập trình:

Nhấn nút
   ↓
Bật máy bơm

Nhấn lần nữa
   ↓
Tắt máy bơm

hoặc:

MODE AUTO
    ↕
MODE MANUAL

12. ⭐⭐⭐ Thử thách Bài 2

Không xem code mẫu, hãy tự viết chương trình:

Nhấn nút 1 lần → LED bật.
Nhấn lần thứ 2 → LED tắt.
Tiếp tục như vậy.

Điều kiện quan trọng:

Mỗi lần nhấn chỉ được đổi trạng thái LED một lần.

Đây là lúc chúng ta bắt đầu học một kỹ thuật rất quan trọng trong lập trình Arduino:

phát hiện sự kiện nhấn nút (button press event) thay vì chỉ đọc nút đang HIGH/LOW.

13. 🛒 Bộ linh kiện nâng cấp Bài 2

Người học không cần mua lại bộ Bài 1.

Chỉ cần bổ sung:

🔘 1 nút nhấn 4 chân
🔧 1 điện trở 10kΩ

Kiến thức chúng ta đã có sau 2 bài

BÀI 1 Arduino ↓ Xuất tín hiệu ↓ LED

BÀI 2 Nút nhấn ↓ Nhập tín hiệu ↓ Arduino ↓ Xử lý điều kiện ↓ LED

Đây chính là nền móng của cả chuỗi: INPUT → PROCESS → OUTPUT 

🛒 BỘ LINH KIỆN NÂNG CẤP – BÀI 2

Bạn đã có bộ Arduino thực hành Bài 1?

Chỉ cần bổ sung một vài linh kiện nhỏ là có thể tiếp tục bài học mới:

  • 🔘 Nút nhấn (Push Button)
  • 🔧 Điện trở 10kΩ
👉 Học đến đâu – lắp mạch đến đó – thấy kết quả ngay trên bàn thực hành!
💬 ĐẶT BỘ LINH KIỆN BÀI 2 QUA ZALO

0 nhận xét Blogger 0 Facebook

 

 
A-Kinh nghiem hay ©Email: Inluon@gmail.com. Powered by >Template sưu tầm trên Internet
Link:|Fanpage||Website|Zalo|Telegram
Top
// //