Sử dụng chuyển đổi SPST làm đầu vào kỹ thuật số?


10

Tôi chưa quen với "kỹ thuật điện" và tôi đang thực hiện một dự án arduino nhỏ. Tôi muốn có một công tắc SPST được sử dụng làm đầu vào kỹ thuật số trên bảng.

Tôi có một trong những công tắc dẫn được kết nối với tích cực và cái còn lại được kết nối với đầu vào kỹ thuật số. Vấn đề với điều này là khi tắt nó đi, tôi không thể chắc chắn đầu vào sẽ được nối đất. Làm thế nào tôi có thể chắc chắn rằng đầu vào được nối đất khi tắt công tắc?

Nó có hoạt động không nếu tôi kết nối đầu vào kỹ thuật số với một điện trở được kết nối với mặt đất để khi tắt công tắc, nó sẽ được nối đất, nhưng khi bật công tắc thì nó sẽ không bị tắt - điều đó có hiệu quả không?

Câu trả lời:


9

Giải pháp thông thường nhất là kết nối một bên của công tắc với mặt đất. Kết nối đầu kia với đầu vào kỹ thuật số, và cũng với điện trở trong khoảng từ 1 đến 10 K ohms đến nguồn cung cấp tích cực.

Đi theo một cách khác, với một điện trở kéo xuống như Bruno mô tả, có thể nhưng ít được ưa thích hơn. Nhiều đầu vào đã có một mức độ kéo lên ngầm định và sẽ đọc "1" nếu không được kết nối, mặc dù không hoàn toàn đáng tin cậy. Nhưng nếu công tắc của bạn đã được kết nối với đường ray dương, thì kéo xuống là một giải pháp ổn, mặc dù nhiều người thích sử dụng điện trở nhỏ khi kết nối đầu vào logic với đường ray dương.

Nhiều bộ vi điều khiển cũng có pullup bên trong và / hoặc kéo xuống điện trở trên các chân GPIO có thể được kích hoạt bằng cách ghi vào thanh ghi cấu hình. Nếu bạn đang lái một đầu vào của một vi điều khiển như vậy, bạn có thể không cần một điện trở kéo lên / xuống bên ngoài, mặc dù không phải mọi vi điều khiển đều có những điều này.


4
Ngoài ra, nếu bạn đang sử dụng uC có tích hợp kéo lên hoặc kéo xuống, cách tốt nhất là bật chúng trên các chân không được sử dụng để giữ chúng ở trạng thái đã biết.
Matt Young

Nó thực sự dễ dàng hơn, cho dự án của tôi để kết nối công tắc với mặt đất. Vì vậy, tôi sẽ thử sử dụng một điện trở kéo lên. Cảm ơn!
Bọt biển Bob

2
Tuyệt quá! Hãy quay lại khi bạn muốn hỏi chúng tôi về "chuyển đổi nảy" :)
gbarry

Hóa ra Arduino sẽ tự động pullup. Tôi không chắc bằng cách nào, nhưng trong mã có một chữ "INPUT_PULLUP" kỹ thuật số và tôi thậm chí không cần một điện trở. Điều đó thật dễ dàng. Ngoài ra, về độ nảy của công tắc, tôi nhận thấy nó khi tôi đang theo dõi đầu ra nối tiếp. Vì vậy, tôi chỉ thêm một độ trễ 3ms trong mã. Nó tiết kiệm cho tôi một chuyến đi khác đến cửa hàng. :)
Sponge Bob

Nếu bạn lội qua bảng dữ liệu ATMEGA, bạn sẽ thấy có một bit có thể được ghi trong một thanh ghi cấu hình để kích hoạt pullup. Các thư viện Arduino chỉ làm cho nó thuận tiện hơn. Đối với việc thoát, bỏ qua (đó) đầu vào trong một thời gian là một khóa học thông thường, mặc dù 3ms có thể hơi ngắn. Nếu độ trễ chặn toàn bộ hệ thống của bạn, bạn có thể cần phải giữ nó ngắn, nếu nó chỉ bỏ qua đầu vào đó hơn bạn có thể làm cho nó lâu hơn một chút vì kích hoạt lại có chủ ý sẽ vẫn chậm hơn.
Chris Stratton

9

Vâng, nó sẽ làm việc như bạn mô tả. Điều đó được gọi là điện trở kéo xuống bởi vì nó đảm bảo rằng khi tiếp điểm mở, đầu vào kỹ thuật số ở trạng thái logic 0 (thấp). Thông thường bạn có thể sử dụng điện trở 10 KΩ cho mục đích này.


2

Điều đó sẽ hoạt động và sẽ cung cấp cho bạn logic tích cực: mức cao (logic "1") khi đóng công tắc.

Nhưng giống như Chris nói rằng điều ngược lại là phổ biến hơn: công tắc được kết nối với mặt đất và điện trở kéo lên (thay vì kéo xuống) với nguồn điện. Logic của bạn sẽ được đảo ngược: logic "1" sẽ tương ứng với một công tắc mở.

Một lý do chính đáng cho phiên bản kéo lên là hầu hết các bộ vi điều khiển đều tích hợp chúng và bạn có thể bật / tắt chúng tùy theo nhu cầu của mình. Một số bộ vi điều khiển cũng có các cấu hình kéo xuống, nhưng những thứ này ít phổ biến hơn.

Nếu bạn muốn kéo lên 10 kΩ bên ngoài có thể là một giá trị tốt. Đầu vào của vi điều khiển có thể có dòng rò lên tới 1 PhaA, và sau đó 10 kΩ sẽ giảm 10 mV không đáng kể. Giá trị thấp hơn là chắc chắn có thể, nhưng hãy nhớ rằng chúng sẽ có dòng điện lớn hơn để tiếp đất khi đóng công tắc. Một điện trở 1 kΩ sẽ hút 5 mA ở nguồn cung cấp 5 V, thật sự lãng phí điện năng. Trong 10 kΩ, chỉ 500 500A. Đối với các ứng dụng năng lượng rất thấp, bạn có thể tăng giá trị lên 100 kΩ, nhưng hãy nhớ dòng điện rò rỉ; 1 PhaA sẽ giảm 100 mV!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.