Використовуючи перемикач SPST як цифровий вхід?


10

Я новачок в "електротехніці" і працюю над невеликим проектом ардуїно. Я хочу, щоб перемикач SPST використовувався як цифровий вхід на платі.

У мене один з проводів комутатора підключений до позитивного, а інший підключений до цифрового входу. Проблема в тому, що коли вимкнути його, я не можу бути впевнений, що вхід буде заземлений. Як я можу переконатися, що вхід заземлений, коли вимикач вимкнено?

Буде працювати, якби я підключив цифровий вхід до резистора, який підключений до землі, тож коли вимикач вимкнений, він буде заземлений, але коли перемикач на ньому не замикається - чи буде це працювати?

Відповіді:


9

Найбільш звичайним рішенням буде підключення однієї сторони вимикача до землі. Інший підключіть до цифрового входу, а також до резистора від 1 до 10 К Ом, що йде на позитивне живлення.

Йти іншим шляхом, з резистором, що знищується, як описує Бруно, можливо, але менш бажано. Багато входів вже мають ступінь неявного підтягування, і вони будуть читати «1», якщо вони не підключені, хоча і не зовсім надійно. Але якщо ваш перемикач вже підключений до позитивної рейки, то пониження - це нормальне рішення, хоча багато хто вважає за краще використовувати невеликий резистор при підключенні логічних входів до позитивної рейки.

Багато мікроконтролерів також мають внутрішні резистори підключення та / або витягування на штифтах GPIO, які можна ввімкнути, записавши в регістр конфігурації. Якщо ви керуєте входом такого мікроконтролера, можливо, вам взагалі не знадобиться зовнішній резистор підтягування / вниз, хоча не кожен мікроконтроллер має такі функції.


4
Крім того, якщо ви використовуєте ЦК із вбудованими підтяжками або пониженнями, добре застосовувати їх на штифтах, які не використовуються для збереження їх у відомому стані.
Метт Янг

Насправді для мого проекту простіше підключити вимикач до землі. Тому я спробую використовувати підтягуючий резистор. Дякую!
Губка Боб

2
Чудово! Повертайтеся, коли ви хочете запитати нас про "відмов від переключення" :)
gbarry

Виявляється, Arduino зробить підтягування автоматично. Я не впевнений, як, але в коді є цифровий "INPUT_PULLUP", і мені навіть резистор не потрібен. Це було легко. Крім того, про відмов вимикача я помітив це, коли я контролював серійний вихід. Тож я щойно додав код затримки 3 мс. Це врятувало мене ще одну поїздку в магазин. :)
Губка Боб

Якщо ви проходите через аркуш даних ATMEGA, ви побачите, що в регістр конфігурації можна записати біт, щоб активувати підключення. Бібліотеки Arduino просто роблять це зручніше. Для відмов, ігнорування (того) введення на деякий час - звичайний курс, хоча 3 мс може бути трохи коротшим. Якщо затримка блокує всю вашу систему, можливо, вам знадобиться тримати її короткою, якщо вона лише ігнорує цей вхід, ніж ви можете зробити його трохи довше, оскільки навмисні повторні активації будуть ще повільнішими.
Кріс Страттон

9

Так, це діятиме так, як ви описали. Це називається висувним резистором, оскільки він запевняє, що при контакті цифровий вхід знаходиться в логічному стані 0 (низький). Зазвичай для цього можна використовувати резистор 10 КОм.


2

Це спрацює і дасть вам позитивну логіку: високий рівень (логіка "1"), коли перемикач закритий.

Але, як каже Кріс, перевернута річ зустрічається частіше: перемикач, підключений до землі, і резистор, що піднімається (замість висувного), до джерела живлення. Ваша логіка буде перевернута: логіка "1" буде відповідати відкритим комутатором.

Хороша причина для версії, що підключається, полягає в тому, що більшість мікроконтролерів мають їх інтегровані, і ви можете вмикати / вимикати їх залежно від ваших потреб. У деяких мікроконтролерів також є налаштовані спади, але вони рідше.

Якщо ви хочете, щоб зовнішня підтяжка 10 кОм може бути корисною. Вхід мікроконтролера може мати струм витоку до 1 мкА, і тоді 10 кОм знизить незначні 10 мВ. Більш низькі значення, безумовно, можливі, але майте на увазі, що вони матимуть більший струм до землі, коли перемикач буде закрито. Резистор 1 кОм притягне 5 мА при напрузі 5 В, що насправді є витратою енергії. Для 10 кОм це всього 500 мкА. Для програм з низькою потужністю ви можете збільшити значення до 100 кОм, але пам’ятайте струм витоку; 1 мкА дасть 100 мВ падіння!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.