Tối ưu cách dùng ADC để đọc nhiều nút bấm



Nút bấm là rất cơ bản đối với lập trình Arduino (hoặc vi điều khiển khác). Để đọc nút bấm thì có nhiều cách khác nhau, nhưng căn bản vẫn là 2 phương pháp : digital và analog (dùng điện trở phân áp). Và 2 cách này ai cũng biết.
Đối với cách đọc nút bấm analog chúng ta thường dùng hàm analogRead() , sau đó dùng if () else .. để so sánh giá trị ADC đọc được và suy ra nút bấm. Nhưng có 1 cách khác đơn giản, hiệu quả và cũng dùng hàm chuẩn thông dụng của Arduino framework, đó là hàm map().
Khai báo : output = map(input, Min_in, Max_in, Min_out, Max_out);
chức năng : ánh xạ giá trị input thành output.
Giá trị input được giới hạn bởi Min_in và Max_in.
Giá trị output được giới hạn bởi Max_in và Max_out.
Từ chức năng của hàm như trên, chúng ta ứng dụng để ánh xạ giá trị ADC đọc được thành nút bấm, ví dụ :
Button = map(input, 0, 1023, 0, Max_Button);
1023 : giá trị tối đa của ADC đọc được (mặc định là 10 bit).
Max_Button : khai báo số nút bấm, cũng chính là số các điện áp trên thang chia voltage.
Như vậy, khi có nút bấm => nhận được giá trị điện áp => nút bấm liền mà không cần phải dùng if() else.
Hơn nữa, khi chúng ta thêm/bớt nút bấm đoạn mã trên vẫn sử dụng bình thường mà không cần phải viết lại như khi dùng if() else.

( Nguyên lý + Code chuẩn) Link Mediafire
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download
------------------------------------------------------------------------------------
DV1 - NHẬN VẼ MẠCH - LẬP TRÌNH 8051/ARDUINO/STM LẤY TRONG NGÀY 

BẤM XEM CÁCH ĐẶT HÀNG TẠI ĐÂY




-----------------------------------------------------------------------------------

DV2 - Mua linh kiện về làm mạch nhanh - Miễn phí Ship





DV3 - Kênh youtube chia sẻ kiến thức điện tử thực hành ngay


DV4 - Kênh cộng đồng Facebook Điện Tử ChipKool




CÔNG TY ECHIPKOOL - UY TÍN - CHẤT LƯỢNG - NHANH CHÓNG - BẢO MẬT

Subscribe for our Newsletter

RE-IMAGINING THE WAY
Back to top