Основи апаратного забезпечення: як працюють висувні та підтягуючі резистори

Якщо ви коли-небудь підключали кнопку до Arduino, ви натрапили на цю схему:

Спочатку це може заплутати. Мої перші думки: «Навіщо мені резистор? Я просто хочу, щоб він сказав мені, чи натискається кнопка ».

Після багатого читання не було простого пояснення.

Що тут відбувається

У цій кнопці - АКА перемикач - дроти мають форму «Н». Але середина не підключена - або схема не підключена - поки ми не натиснемо кнопку.

Насправді ми хочемо прочитати з Arduino a, 0коли нічого не підключено, і a, 1коли натискається кнопка.

На Arduino це називається вихідним входом загального призначення (GPIO).

Отже, ми можемо зробити щось подібне:

Ми підключаємо позитивний (5 В, 3,3 В або VCC) до лівої частини схеми.

Тепер, коли кнопка натиснута, GPIO прочитає a 1, і все добре.

Ну ні. Давайте ще раз подивимося на Діаграму 2:

Ми хотіли, 0коли нічого не пов’язано, але як ви можете це гарантувати? В даний час неможливо гарантувати наявність GPIO 0.

У повітрі також є електромагнітні частоти, які можуть привернути ваш GPIO до 0або 1. Це може навіть коливатися між ними! Таким чином, ми не можемо бути впевненими, що це 0(я так погано розбираюся в каламбурах). Це також відомо як логічне 0.

Один із способів отримати логіку 0- це прив’язати штифт до землі:

Ага! Отже, це гарантований логічний нуль. Поки натискає кнопку, це буде 1зараз. Правда?

Ну ні.

Ви щойно створили коротке замикання. ?

Тут входить резистор. Щоб уникнути короткого замикання, нам потрібно додати опір нашому ланцюгу. Резистор тримає речі під контролем.

Електроенергія піде шляхом найменшого опору. Тепер ваш GPIO зареєструє 1при натисканні кнопки. Подобається так:

Ву Ху! Зараз ми з чимось працюємо.

А тепер давайте подивимось на протилежне: підтягувальні резистори. Це те саме, але навпаки. Поки кнопка не натиснута, GPIO зареєструє a 1. Після натискання кнопки GPIO буде 0.

Поки не натиснуто, ми маємо GPIO, підключений до позитивного (VCC). Отже, будь-який струм, який є там, буде підтягнутий, щоб GPIO реєстрував логічне 1.

Тут важливо зазначити, що електроенергія завжди хоче йти на землю. Отже, коли ми натискаємо кнопку, струм, що протікає, буде надходити до землі. Таким чином, будь-який струм, який би йшов до GPIO, поєднується з цим, залишаючи GPIO логічним 0.

? Кінець.

Чому я це написав?

Я приєднався до Losant у вересні 2016 року, не маючи жодного досвіду роботи з обладнанням. Кожен апаратний стартовий комплект дає вам кнопку без пояснення цієї концепції. Сподіваємось, це допомагає і вашій лампочці згаснути. ?

Це лише подряпало поверхню. Якщо ви хочете копати глибше, перегляньте ці ресурси:

Підтягуючі резистори - learn.sparkfun.com

Інша річ, на яку слід звернути увагу, полягає в тому, що чим більший опір підтягуванню, тим повільніше штифт реагує на… learn.sparkfun.com

Я люблю відгуки. Тож, будь ласка, дайте мені знати, чи можна це покращити. Якщо я повністю пропустив м'яч на цьому, дайте мені знати! Я хотів би зробити це кращим для інших.