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