Skip to content

11 Giới Thiệu Nguyên Lý Nút Nhấn Nhả

Kiến Thức Cơ Bản Về Nút Nhấn Nhả

Cấu Tạo Của Nút Nhấn Nhả

Nút nhấn nhả thực chất là một công tắc nhấn không tự giữ (tức là nhả ra sẽ tự động ngắt), gồm hai tiếp điểm trái – phải. Khi nhấn xuống, hai tiếp điểm được nối lại (đóng mạch), khi thả ra thì tiếp điểm hở ra (ngắt mạch).

Nguyên Lý Hoạt Động

Vi điều khiển (MCU) xác định việc nhấn nút thông qua sự thay đổi mức điện áp (cao/thấp) trên chân IO được kết nối với nút nhấn. Thông qua chương trình, có thể thiết lập các chức năng tương ứng khi nút được nhấn.

Tuy nhiên, do tính chất cơ học, khi nhấn hoặc nhả nút, tiếp điểm thường bị rung (chattering) trong một khoảng thời gian ngắn (khoảng 5–10ms), dẫn đến tín hiệu không ổn định. Nếu đọc trạng thái nút trong thời gian này, có thể xảy ra lỗi nhận dạng. Do đó, cần có biện pháp chống rung (debounce).

Biện Pháp Chống Rung (Chống Nảy)

  • Chống rung bằng phần cứng: Gắn tụ điện song song với nút để hấp thụ dao động tần số cao khi nhấn.
  • Chống rung bằng phần mềm: Sử dụng hàm delay. Khi phát hiện có tín hiệu nhấn, không xử lý ngay mà chờ một khoảng ngắn, sau đó mới kiểm tra lại tín hiệu để xác nhận.

Nguyên Lý Điều Khiển Nút Nhấn

Nút nhấn được kết nối trực tiếp với một chân IO của vi điều khiển. MCU sẽ đọc mức điện áp trên chân đó để xác định nút có đang được nhấn hay không.

Sơ Đồ Nguyên Lý Nút Nhấn

Trên bo mạch phát triển có 3 nút nhấn: nút Reset, BOOT0 và nút KEY.

  • Nút ResetBOOT0 là các nút đặc biệt để cấu hình và reset MCU → không dùng để lập trình làm nút nhấn thông thường.
  • Chỉ có nút KEY là dùng làm nút nhấn người dùng.

Hình dưới là sơ đồ nguyên lý kết nối nút KEY:

img

Quy Trình Điều Khiển Nút Nhấn

Từ sơ đồ nguyên lý trên, ta thấy:

  • Nút KEY được kết nối với chân PA0 của vi điều khiển.
  • Một đầu nút nối với nguồn 3.3V, đầu còn lại nối đất qua điện trở 10kΩ.
  • Khi nút không nhấn, chân PA0 ở mức thấp (0V).
  • Khi nút được nhấn, PA0 được kéo lên mức cao (3.3V).

Cách xử lý trong chương trình

  1. Bật clock cho GPIOA
  2. Cấu hình PA0 làm input
  3. Định kỳ đọc trạng thái chân PA0.
  4. Nếu mức logic là cao (HIGH) → nút đang được nhấn.
  5. Nếu phát hiện nút được nhấn → thực hiện hành động tương ứng.