Chống rung phím


Chống rung phím
Rung phím là hiện tượng tín hiệu bị nhiễu (không dứt khoát) khi nhấn phím. Hiện tượng này xảy ra do tiếp điểm vật lý trong nút nhấn tiếp xúc không tốt, dẫn đến có thể trong 1 lần nhấn phím nhưng gây ra nhiều xung tín hiệu như trong hình trên.
Có nhiều giải pháp để khắc phục hiện tượng này.

Chống rung phím bằng phần mềm

Chúng ta sẽ thêm vào những đoạn mã giúp MCU bỏ qua những tín hiệu không mong muốn bằng cách thêm vào những khoảng thời gian Delay sau khi nhấn phím, hệ thống sẽ chờ đến khi tín hiệu ổn định rồi mới lấy và xử lý tín hiệu.
Có một vài cách thêm vào như sau:
if(Button_pressed?)
{
  Delay(TimeDebounce); //This value about (ms)
  Pressed_State;
}
else Not_Pressed;
Giải thích: Sau khi kiểm tra có tín hiệu nhấn phím, chúng ta để cho hệ thống Delay 1 khoảng thời gian (Tạm dừng chưa lấy tín hiệu). Khoảng thời gian này khá lớn (Cỡ vài chục ms).
Đặc điểm: Khi bạn nhấn phím lâu hơn thời gian Delay thì hệ thống sẽ lại thực thi 1 hoặc nhiều lần nữa. Khiến cho hàm trong mệnh đề IF sẽ được thực hiện hơn 1 lần.
Chúng ta có thể ứng dụng việc này vào việc tăng hoặc giảm giá trị nào đó chẳng hạn….
if(Button_pressed?)
{
  While(Button_pressed?) Delay(TimeDebounce); //This value about (ns)
  Pressed;
}
else Not_Pressed;
Giải thích: Sau khi hệ thống kiểm tra có tín hiệu nhấn phím hay không, nếu có thì hệ thống sẽ nhảy vào trong mệnh đề IF, tại đây hệ thống sẽ kiểm tra tiếp xem phím có đang được nhấn hay không tại mệnh đề WHILE, nếu có thì sẽ Delay 1 khoảng thời gian. (Giá trị Delay này bạn có thể đặt cỡ vài chục ns - Ít hơn nhiều so với cách phía trên)
Đặc điểm: phương pháp này sẽ Delay liên tục cho đến khi phím được nhả ra thì mới thực thi chương trình xử lý. Tiết kiệm thời gian hơn so với phương pháp trước.
VD trên Arduino
#

Chống rung phím bằng phần cứng

Dạng sóng tín hiệu từ nút nhấn khi chưa có chống rung
Phương pháp này sẽ thêm vào mạch của bạn 1 vài linh kiện như Tụ điện, Điện trở, Cổng Logic… nhằm ổn định tín hiệu từ nút nhấn.
Một số mạch chống rung có thể tham khảo:
Thêm tụ để chống rung
Active High or Low
Ví dụ chống rung phím bằng tụ và điện trở
Tín hiệu sau khi lắp thêm tụ vào như sau:
Debounced Edge
Giải pháp: Ngoài trở treo, chúng ta cần thêm 1 tụ cỡ nhỏ nữa để có thể san những gợn tín hiệu không mong muốn.
Nhược điểm: Tín hiệu đầu ra không thực sự tốt, do có thời gian nạp cho tụ điện nên tín hiệu sẽ có dạng đường cong.
Sử dụng cổng NAND để chống rung
Chống rung với chuyển mạch Trigger NOT 74HC14
Sử dụng 4093, 40106 lấy ra 2 trạng thái
Giải pháp: Thêm linh kiện NAND 4093 hoặc 74HC14 vào để đưa ra tín hiệu xung vuông hoàn chỉnh.
Sử dụng 2 cổng NAND IC74LS00 để chống rung
Giải pháp: Cũng đưa ra tín hiệu xung vuông hoàn chỉnh, và có thể lấy ra tín hiệu đảo tại chân Q
Chống rung với IC MAX812
Chống rung với IC MAX6818
Có thể sử dụng các IC chuyên dùng để giải quyết vấn đề chống rung phím một cách nhanh chóng, mạch điện đỡ phức tạp.
Tùy vào mục đích, yêu cầu bài toán đặt ra mà bạn sử dụng các phương pháp Cứng - Mềm kết hợp lẫn nhau.
Nhãn: ,

Đăng nhận xét

[blogger][facebook]

Author Name

{picture#YOUR_PROFILE_PICTURE_URL} YOUR_PROFILE_DESCRIPTION {facebook#https://www.facebook.com/RAI.EDU.VN/} {youtube#https://www.youtube.com/channel/UCpxWS5h_Pv8VWKIo9-N4nHw}

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.