Кнопка на выводе D2 (режим INPUT_PULLUP) управляет светодиодом на D13: пока кнопка не нажата, вход подтянут к +5 В (HIGH) и светодиод погашен; замыкание кнопки на землю даёт LOW и зажигает светодиод. Кнопку в симуляторе переключают кликом.
Эта страница представляет собой утилиту для того чтобы смоделировать управление светодиодом кнопкой (input_pullup) на atmega328p онлайн онлайн при заданных начальных значениях.
В данном примере микроконтроллер ATmega328P демонстрирует работу с цифровым входом и встроенным подтягивающим резистором. Тактовая кнопка подключена к цифровому выводу D2, который работает в режиме INPUT_PULLUP, а светодиод подключён к выводу D13 через токоограничивающий резистор номиналом 220 Ом.
После запуска программы в функции setup() вывод D2 настраивается как вход с внутренней подтяжкой к напряжению питания +5 В с помощью режима INPUT_PULLUP, а вывод D13 — как цифровой выход. Благодаря встроенному подтягивающему резистору использование внешнего резистора не требуется.
В функции loop() микроконтроллер непрерывно считывает состояние кнопки с помощью функции digitalRead(D2). Пока кнопка не нажата, вход D2 остаётся подтянутым к напряжению питания, поэтому считывается логическая единица (HIGH), а светодиод остаётся выключенным. При нажатии кнопки вход замыкается на общий провод (GND), в результате чего на входе появляется логический ноль (LOW). Программа обнаруживает изменение состояния и включает светодиод, подавая высокий логический уровень на вывод D13. После отпускания кнопки вход снова переходит в состояние HIGH, и светодиод гаснет.
В процессе моделирования состояние кнопки можно изменять простым щелчком мыши, что позволяет в реальном времени наблюдать изменение логического уровня на входе микроконтроллера и соответствующую реакцию программы. Данный пример демонстрирует один из наиболее распространённых способов подключения кнопок к микроконтроллерам с использованием внутреннего подтягивающего резистора, исключающего появление неопределённого («плавающего») состояния входа.
Исходный код программы, содержащий стандартные функции setup() и loop(), можно редактировать непосредственно в свойствах микроконтроллера. После внесения изменений скетч автоматически компилируется и загружается в модель ATmega328P, что позволяет изучать различные способы обработки сигналов от кнопок, реализовывать инвертированную логику управления, программное устранение дребезга контактов и другие алгоритмы обработки цифровых входов.









Комментарии