Đố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.

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

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