Khi một nút được kết nối trong cấu hình đó, đầu vào là cái được gọi là nổi , nghĩa là không phải là 0 hoặc 1. Khi nhấn nút, nó được kết nối với mặt đất, vì vậy đó chắc chắn là 0, nhưng khi nó không được nhấn xuống, chúng tôi không biết giá trị của pin.
Kéo điện trở lên
Chúng ta cần bao gồm những gì được gọi là điện trở "kéo lên" để kéo tín hiệu lên mức logic 1 khi không nhấn nút.
Hình ảnh từ Sparkfun
Điều này có nghĩa là khi nút không được nhấn, Arduino đọc logic 1. Khi nhấn nút, dòng điện chạy qua điện trở xuống đất và Arduino đọc logic 0.
Điện trở kéo lên bên trong
Arduino cũng có điện trở kéo lên bên trong, do đó bạn không nhất thiết phải thêm một thành phần phụ vào mạch của mình. Có một vài cách để sử dụng này.
Bạn đã từng phải làm điều đó như thế này:
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Bây giờ chúng ta có thể làm điều đó chỉ trong một dòng:
pinMode(pin, INPUT_PULLUP);
Điều này cho phép điện trở kéo lên 20k trên pin đó. Đầu vào sẽ không còn nổi khi nhấn nút này.
Lưu ý: Điều này chỉ hoạt động khi đầu kia được kết nối với mặt đất.