Używasz przełącznika SPST jako wejścia cyfrowego?

10

Jestem nowy w elektrotechnice i pracuję nad małym projektem arduino. Chcę, aby przełącznik SPST był używany jako wejście cyfrowe na płycie.

Mam jeden z przewodów przełączających podłączony do dodatniego, a drugi podłączony do wejścia cyfrowego. Problem polega na tym, że po wyłączeniu nie mogę być pewien, czy wejście zostanie uziemione. Jak mogę się upewnić, że wejście jest uziemione, gdy przełącznik jest wyłączony?

Czy to zadziałałoby, jeśli podłączyłem wejście cyfrowe do rezystora, który jest podłączony do uziemienia, więc gdy przełącznik jest wyłączony, zostanie uziemiony, ale gdy przełącznik jest włączony, nie zwarcie - czy to zadziała?

Sponge Bob
źródło

Odpowiedzi:

9

Najbardziej konwencjonalnym rozwiązaniem byłoby połączenie jednej strony przełącznika z uziemieniem. Podłącz drugi do wejścia cyfrowego, a także do rezystora o wartości od 1 do 10 kiloomów przechodzącego do zasilania dodatniego.

Idzie w drugą stronę, z opisywanym przez Bruno opornikiem zwijanym, jest możliwe, ale mniej preferowane. Wiele danych wejściowych ma już pewien stopień domniemanego podciągania i odczytuje „1”, jeśli nie jest połączone, choć nie całkiem niezawodnie. Ale jeśli twój przełącznik jest już podłączony do szyny dodatniej, wówczas obniżenie jest dobrym rozwiązaniem, chociaż wielu woli używać małego rezystora podczas podłączania wejść logicznych do szyny dodatniej.

Wiele mikrokontrolerów ma również wewnętrzne rezystory pull-up i / lub pull-down na pinach GPIO, które można włączyć zapisując do rejestru konfiguracji. Jeśli sterujesz wejściem takiego mikrokontrolera, może nie być w ogóle potrzebny zewnętrzny rezystor podciągający / opadający, chociaż nie każdy mikrokontroler ma je.

Chris Stratton
źródło
4
Ponadto, jeśli używasz komputera z wbudowanym podciąganiem lub opuszczaniem, dobrą praktyką jest włączanie ich na pinach, które nie są używane do utrzymywania ich w znanym stanie.
Matt Young,
Właściwie jest to łatwiejsze dla mojego projektu, aby podłączyć przełącznik do uziemienia. Spróbuję więc użyć rezystora podciągającego. Dzięki!
Sponge Bob
2
Świetny! Wróć, jeśli chcesz nas zapytać o „zmiana odbicia” :)
gbarry
Okazuje się, że Arduino wykona pullup automatycznie. Nie jestem pewien jak, ale w kodzie jest cyfrowy „INPUT_PULLUP” i nawet nie potrzebuję rezystora. To było łatwe. Również o odbiciu przełącznika zauważyłem to, gdy monitorowałem wyjście szeregowe. Właśnie dodałem 3 ms opóźnienie w kodzie. Uratowało mi to kolejną podróż do sklepu. :)
Sponge Bob
Jeśli przejdziesz przez kartę danych ATMEGA, zobaczysz, że w rejestrze konfiguracji można zapisać bit, aby umożliwić pobieranie. Biblioteki Arduino sprawiają, że jest to wygodniejsze. W przypadku odbicia ignorowanie (tego) danych wejściowych przez pewien czas jest normalnym kursem, chociaż 3 ms może być nieco krótkie. Jeśli opóźnienie blokuje cały system, być może będziesz musiał go skrócić, jeśli zignoruje on tylko te dane wejściowe, niż możesz je nieco wydłużyć, ponieważ celowe ponowne aktywacje byłyby nadal wolniejsze.
Chris Stratton,
9

Tak, działałoby to zgodnie z opisem. Nazywa się to rezystorem obniżającym, ponieważ zapewnia, że ​​gdy styk jest otwarty, wejście cyfrowe jest w stanie logicznym 0 (niski). Zwykle do tego celu można użyć rezystora 10 KΩ.

Bruno Ferreira
źródło
2

To zadziała i da ci pozytywną logikę: wysoki poziom (logika „1”), gdy przełącznik jest zamknięty.

Ale, jak mówi Chris, odwrócona rzecz jest bardziej powszechna: przełącznik podłączony do uziemienia i rezystor podciągający (zamiast zwijanego) zasilacza. Twoja logika zostanie odwrócona: logika „1” będzie odpowiadać otwartemu przełącznikowi.

Dobrym powodem dla wersji pull-up jest to, że większość mikrokontrolerów ma je zintegrowane i można je włączać / wyłączać w zależności od potrzeb. Niektóre mikrokontrolery mają również konfigurowalne menu rozwijane, ale są one mniej powszechne.

Jeśli chcesz zewnętrznego podciągania, 10 kΩ może być dobrą wartością. Wejście mikrokontrolera może mieć prąd upływu do 1 µA, a następnie 10 kΩ spadnie pomijalnie 10 mV. Niższe wartości są z pewnością możliwe, ale należy pamiętać, że będą one miały większy prąd do ziemi, gdy przełącznik będzie zamknięty. Rezystor 1 kΩ pobiera 5 mA przy zasilaniu 5 V, co jest stratą mocy. Dla 10 kΩ to tylko 500 µA. W przypadku aplikacji o bardzo niskim poborze mocy możesz zwiększyć wartość do 100 kΩ, ale pamiętaj o prądzie upływu; 1 µA da spadek 100 mV!

stevenvh
źródło