MSP430 – Chống rung phím đơn giản

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.

1. 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:

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….

 

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 MSP430

2. 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

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

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

Sau khi lắp tụ

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

Sử dụng cổng NAND IC4093 để chống rung

Chống rung với chuyển mạch Trigger NOT 74HC14

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

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 MAX812

Chống rung với IC MAX6818

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.

Enjoy!

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz