2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Когда у вас работает кнопка, вам часто нужно выполнить какое-то действие в зависимости от того, сколько раз была нажата кнопка. Для этого вам нужно знать, когда кнопка меняет состояние с выключенного на включенное, и подсчитывать, сколько раз происходит это изменение состояния. Это называется обнаружением изменения состояния или обнаружением края. В этом руководстве мы узнаем, как проверить изменение состояния, мы отправляем сообщение в Serial Monitor с соответствующей информацией и подсчитываем четыре изменения состояния для включения и выключения светодиода.
Шаг 1: Необходимые компоненты:
1. Arduino UNO
2. Макетная плата
3. Кнопка
4. Резистор
5. Перемычки.
Шаг 2: Принципиальная схема:
Подключите к плате три провода. Первый идет от одной ножки кнопки через понижающий резистор (здесь 10 кОм) на землю. Второй идет от соответствующей ножки кнопки к источнику питания 5 В. Третий подключается к выводу цифрового ввода / вывода (здесь вывод 2), который считывает состояние кнопки.
Когда кнопка разомкнута (не нажата), нет связи между двумя ножками кнопки, поэтому контакт подключен к земле (через понижающий резистор), и мы читаем НИЗКИЙ. Когда кнопка закрыта (нажата), она устанавливает соединение между двумя ногами, подключая контакт к напряжению, так что мы читаем HIGH. (Контакт по-прежнему подключен к земле, но резистор сопротивляется протеканию тока, поэтому путь наименьшего сопротивления - до + 5В.) Если вы отсоедините контакт цифрового ввода-вывода от всего, светодиод может беспорядочно мигать. Это потому, что вход «плавающий», то есть не подключен ни к напряжению, ни к земле. Он будет более или менее случайным образом возвращать HIGH или LOW. Вот почему вам нужен понижающий резистор в цепи.
Шаг 3: Код:
Для более интересных проектов свяжитесь со мной на: Youtube:
Страница Facebook:
Instagram:
int button = 2;
int a, я = 0; void setup () {Serial.begin (9600); pinMode (кнопка, ВВОД); } void loop () {a = digitalRead (кнопка); если (а == 1) {я = я + 1; Serial.print ("Счетчик ="); Serial.println (i); } else {я = 0; }}