Một phương pháp tôi đã sử dụng tận dụng tính chất điện dung của các đầu vào CMOS.
mô phỏng mạch này - Sơ đồ được tạo bằng CircuitLab
Trong mạch phía trên công tắc, khi đóng, cho phép điện trở kéo xuống sạc / xả điện dung đầu vào của GPIO xuống mặt đất.
Thủ thuật với mạch này là sử dụng tính chất hai chiều của GPIO để giữ đầu vào được sạc ở mức logic cao khi công tắc mở.
Thói quen kiểm soát định kỳ biến pin ra ở mức cao hoặc ngắn gọn cho phép kéo lên, đủ lâu để duy trì sạc pin. Pin đầu vào sau đó hoạt động như một bit bộ nhớ động và, với hầu hết các thiết bị, sẽ giữ điện tích đó trong một khoảng thời gian đáng kể và có thể sử dụng được.
Khi được cấu hình đúng cách, nếu nhấn nút, sạc trên chân sẽ xả nhanh hơn tốc độ làm mới. Điều kiện đó sau đó có thể được phát hiện như một phần của thuật toán làm mới dưới dạng đọc trước khi thao tác làm mới hoặc được sử dụng để điều khiển ngắt.
Nguồn được sử dụng trong thời gian ngắn trong xung làm mới, cả hai để sạc lại các tụ điện và thông qua điện trở và công tắc nếu nó được đóng lại. Tuy nhiên, độ dài của xung làm mới là ngắn và tần số bỏ phiếu dẫn đến dòng làm mới tương đối không đáng kể.
Rõ ràng phương pháp này là một hoạt động. Nếu micro được đưa vào chế độ ngủ, trạng thái của công tắc sẽ không xác định khi thức dậy. Chu kỳ làm mới đầu tiên sau khi thức dậy phải bỏ qua việc đọc mã pin. Ngoài ra, phương pháp này không nên được sử dụng để đánh thức vi mô. Trước khi đi ngủ, cũng nên khôn ngoan cho phép pin là đầu ra thấp để đỗ ở trạng thái hiện tại bằng không.
Để đọc thêm các công tắc tĩnh, như thiết bị chuyển mạch nhúng thiết lập, một thói quen chuyên dụng có thể được sử dụng thay vì chu trình làm mới liên tục. Sau khi đọc, các chân GPIO nên được "đỗ" ở trạng thái đầu ra thấp hoạt động (dòng không) để tránh sự cố đầu vào nổi.
LƯU Ý: Kỹ thuật này chịu một chút từ độ nhạy nhiễu nếu độ dài dấu vết dài và đi qua khu vực ồn ào. Vì vậy, R1 phải gần với pin đầu vào. Tuy nhiên, tôi sẽ không đề xuất nó cho việc kết nối một công tắc ở khoảng cách xa trên bảng điều khiển phía trước ở đâu đó trừ khi bạn thêm điện dung gần với pin.