Подтягивающий резистор к земле
Часть раздела Входные сигналы путешествия по Arduino на Coddy. Урок 2 из 22.
Входной контакт, ни к чему не подключённый, находится в плавающем состоянии. Он улавливает электрические помехи из воздуха и от твоей руки, поэтому случайным образом считывает HIGH или LOW. На этой симулируемой плате плавающий контакт считывается как LOW, но на реальной плате его показания скачут. Каждому входу нужно что-то, что удерживает его на известном уровне.
В этой схеме кнопка подключена наоборот: она соединяет контакт 2 с 5V. Резистор сопротивлением 10k ohm соединяет контакт 2 с GND. Этот резистор является подтягивающим к земле: когда кнопка не нажата, он мягко подтягивает контакт к LOW. При нажатии кнопки контакт напрямую соединяется с 5V, что намного сильнее резистора, поэтому на контакте считывается HIGH.
Удержание обеспечивает резистор, поэтому контакт работает как обычный вход:
pinMode(2, INPUT);
if (digitalRead(2) == HIGH) {
// нажата: кнопка соединяет вывод с 5V
}Задание
ЛегкоКнопка соединяет контакт 2 с 5V, а к GND подключен подтягивающий резистор на 10k ohm. Светодиод подключен к контакту 13. Зажигай светодиод, пока кнопка нажата:
- установи для контакта 2 режим
INPUT - когда на контакте 2 считывается
HIGH, включай светодиод, иначе выключай его
Нажми Run, удерживай кнопку, затем нажми Check.
Попробуйте сами
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
// настройте вывод кнопки на INPUT
}
void loop() {
// включайте светодиод, пока вывод 2 имеет значение HIGH
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Входные сигналы
Потренируйтесь самостоятельно: Песочница Arduino