3.9. Công tắc và điện trở kéo

GPIO output điều khiển phần cứng bên ngoài. GPIO input là điều ngược lại: camera đọc điện áp trên một chân (pin) và báo cáo là 0 hoặc 1. Thiết bị ngõ vào đơn giản nhất là công tắc -- và làm cho nó đọc được một cách đáng tin cậy cần thêm một phần điện tử bên cạnh chính công tắc đó.

3.9.1. Công tắc và ngõ vào nổi

Công tắc là một tiếp điểm cơ học: hai mảnh kim loại chạm nhau khi công tắc đóng và tách ra khi nó mở. Về mặt điện, đó là toàn bộ thiết bị. Không có nguồn điện áp bên trong; một công tắc đơn lẻ chỉ cung cấp "đã kết nối" hoặc "bị ngắt kết nối".

Nối dây công tắc trực tiếp giữa chân (pin) GPIO và đất nghĩa là chân (pin) đó:

  • Ở 0 V khi công tắc đóng (bây giờ được nối với đất).

  • Nổi khi công tắc mở (không nối với gì cả).

Chân (pin) nổi không có điện áp xác định. Ngõ vào đọc bất cứ điều gì xảy ra gần nó -- nhiễu xuyên âm từ các tín hiệu lân cận, nhiễu từ nguồn cung cấp, thậm chí tĩnh điện từ một ngón tay gần dây. value() trả về hỗn hợp không thể đoán trước của 01 nhiều lần mỗi giây.

3.9.2. Điện trở kéo lên và kéo xuống

Giải pháp là một điện trở kéo: một điện trở có giá trị cao (10 kΩ đến 100 kΩ là điển hình) nối ngõ vào với một thanh ray đã biết khi công tắc mở.

Two circuit diagrams side by side. Left: a pull-up circuit with a resistor from the input pin up to the supply and a switch from the input pin down to GND. Right: a pull-down circuit with a resistor from the input pin down to GND and a switch from the input pin up to the supply.

Cấu hình kéo lên (trái) và kéo xuống (phải) cho ngõ vào công tắc.

  • Kéo lên. Điện trở nối ngõ vào với thanh ray nguồn cung cấp. Khi công tắc mở, chỉ một dòng điện nhỏ chảy qua điện trở và chân (pin) đọc cao. Khi công tắc đóng, nó ngắn mạch chân (pin) xuống đất; chân (pin) đọc thấp. Điện trở giới hạn dòng điện mà nếu không sẽ chạy từ nguồn cung cấp xuống đất qua công tắc đóng.

  • Kéo xuống. Hình ảnh gương: điện trở nối ngõ vào với đất, và công tắc kết nối với nguồn cung cấp. Mở đọc thấp, đóng đọc cao.

Kéo lên là quy ước phổ biến hơn -- các nút "tích cực thấp". Bản thân MCU cung cấp các điện trở kéo lên và kéo xuống tích hợp có thể được kích hoạt bằng Pin.PULL_UP hoặc Pin.PULL_DOWN, loại bỏ điện trở bên ngoài hoàn toàn.