3.9. Перемикачі та підтягуючі резистори¶
GPIO-вихід керує зовнішнім обладнанням. GPIO-вхід – протилежне: камера зчитує напругу на виводі та повідомляє її як 0 або 1. Найпростішим пристроєм введення є перемикач – і для надійного читання потрібен один електронний компонент на додаток до самого перемикача.
3.9.1. Перемикачі та «висячі» входи¶
Перемикач – це механічний контакт: два шматки металу, що торкаються, коли перемикач замкнутий, і розходяться, коли він розімкнутий. Електрично – це весь пристрій. Усередині немає джерела напруги; перемикач сам по собі забезпечує лише «з’єднано» або «роз’єднано».
Підключення перемикача безпосередньо між GPIO-виводом та землею означає, що вивід:
На рівні 0 В, коли перемикач замкнутий (тепер підключений до землі).
Висить у повітрі, коли перемикач розімкнутий (ні до чого не підключений).
«Висячий» вивід не має визначеної напруги. Вхід зчитує все, що трапляється поблизу, – перехідні завади від сусідніх сигналів, шум живлення, навіть статичний заряд від пальця поблизу дроту. value() повертає непередбачувану суміш 0 і 1 багато разів на секунду.
3.9.2. Підтягуючі та підтискаючі резистори¶
Рішення – підтягуючий резистор: резистор з великим номіналом (зазвичай від 10 кОм до 100 кОм), який утримує вхід на відомому рівні, коли перемикач розімкнутий.
Конфігурації з підтяжкою (ліворуч) та зі спуском (праворуч) для входу перемикача.¶
Підтяжка. Резистор утримує вхід на рівні шини живлення. Коли перемикач розімкнутий, через резистор протікає лише невеликий струм, і вивід читається як HIGH. Коли перемикач замкнутий, він коротить вивід на землю; вивід читається як LOW. Резистор обмежує струм, який інакше протікав би від живлення до землі через замкнутий перемикач.
Спуск. Дзеркальне відображення: резистор утримує вхід на рівні землі, а перемикач підключений до живлення. Розімкнутий – LOW, замкнутий – HIGH.
Підтяжка є більш поширеною угодою – кнопки «активний LOW». Сам мікроконтролер надає вбудовані підтягуючі та підтискаючі резистори, які можна ввімкнути за допомогою Pin.PULL_UP або Pin.PULL_DOWN, повністю усуваючи зовнішній резистор.