INPUT и INPUT_PULLUP
Узнайте, почему плавающий контакт даёт неверные показания и как это исправляют подтягивающие резисторы
«INPUT и INPUT_PULLUP» — бесплатный урок Arduino & IoT Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Arduino & IoT Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Arduino & IoT Academy содержит 4 уроков всего.
Выводы умеют и слушать
До сих пор Ваши выводы отправляли сигналы. Теперь Вы настроите вывод на приём, чтобы плата могла обнаруживать нажатие кнопки и реагировать на него.
Настройте вывод как INPUT
Чтобы считывать состояние кнопки, сначала сообщите выводу, что он должен принимать сигнал. Для этого установите ему режим INPUT внутри setup().
void setup() {
pinMode(2, INPUT);
}Плавающий вывод обманывает
Вывод INPUT, к которому ничего не подключено для задания уровня, называют плавающим. Он улавливает случайные помехи и сам переключается между HIGH и LOW.
Чем вреден плавающий вывод
Плавающий вывод выдаёт случайные, неверные показания кнопки. Ваша программа думает, что кнопка нажата, хотя к ней никто не прикасался. ⚡
Подтягивающие резисторы решают проблему
Подтягивающий резистор мягко связывает вывод с известным напряжением. Поэтому до нажатия кнопки вывод выдаёт стабильное значение по умолчанию.
Подтяжка к питанию и к земле
Подтяжка к питанию по умолчанию удерживает вывод в состоянии HIGH, а подтяжка к земле — в LOW. В Arduino подтягивающие резисторы к питанию уже встроены в микросхему.
Используйте INPUT_PULLUP
Дополнительный резистор не нужен: установите режим INPUT_PULLUP, и плата автоматически включит внутреннюю подтяжку к питанию.
void setup() {
pinMode(2, INPUT_PULLUP);
}Логика инвертируется
При INPUT_PULLUP вывод считывает HIGH, когда кнопка отпущена, и LOW, когда она нажата. Логика намеренно инвертирована.
Подключите к земле
Поскольку внутренняя подтяжка удерживает вывод в состоянии HIGH, подключите кнопку между выводом и GND. При нажатии она понижает состояние вывода до LOW.
Меньше соединений — меньше ошибок
INPUT_PULLUP означает на один резистор меньше на макетной плате и отсутствие плавающего вывода. Для большинства кнопок в учебных проектах это просто самый простой выбор.
Выберите правильный режим
Используйте обычный INPUT, только если Ваша схема уже содержит собственный подтягивающий резистор. В остальных случаях INPUT_PULLUP делает подключение безопасным и простым.
Быстрая проверка
Подумайте, как INPUT_PULLUP ведёт себя, когда кнопка бездействует.
Итоги
Вы узнали, что вывод INPUT может плавать и выдавать неверные значения, а INPUT_PULLUP решает эту проблему: HIGH при отпущенной кнопке и LOW при нажатой. Далее Вы действительно считаете это значение. 👍
Изучай C++ с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «INPUT и INPUT_PULLUP» бесплатный?
Да — полный текст урока «INPUT и INPUT_PULLUP» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Arduino & IoT Academy, подпишись на CoddyKit PRO. Курс Arduino & IoT Academy содержит 4 уроков всего.
Чему я научусь в уроке «INPUT и INPUT_PULLUP»?
Узнайте, почему плавающий контакт даёт неверные показания и как это исправляют подтягивающие резисторы Ты практикуешь Arduino & IoT Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Arduino & IoT Academy?
Предыдущий опыт не требуется. Arduino & IoT Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «INPUT и INPUT_PULLUP»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Arduino & IoT Academy?
Да. Каждый урок Arduino & IoT Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- INPUT и INPUT_PULLUP
- Чтение состояния кнопки
- if/else: LED следует за кнопкой
- Подключение кнопки на макетной плате