Как изменить переменную при нажатии кнопки, подключенной к контакту 2
Привет, я пишу код, в котором я должен переключать переменную, называемую toggle, с 0 на 1 и на 0.... каждый раз, когда нажимается кнопка (кнопка находится на 2-контактном разъеме). Я немного растерялся, так как я новичок в arduino, мне нужна помощь. Спасибо
@user13685, 👍0
2 ответа
Перейдите здесь --> Встроенные примеры. Прочтите примеры для кнопок, подавления и подтягивания цифровых входов. На мой взгляд, Digital Input Pullup — лучший из этих трех, но прочитайте их все.
Эти 3 являются ключевыми.
Кроме того, я написал библиотеку buttonReader (для устранения дребезга) здесь.
Похоже, вы новичок, поэтому ознакомьтесь с учебными пособиями Adafruit здесь.
И, наконец, я собрал ссылки на все свои знания внизу статьи здесь.
Вам нужно обнаружить переход. То есть либо:
- Он был закрыт, а теперь открыт.
Или:
- Он был открыт, а теперь закрыт.
Для этого вам нужно "запомнить" предыдущее состояние переключателя и обнаружить изменение, например:
const byte switchPin = 8;
byte oldSwitchState = HIGH; // предположим, что переключатель разомкнут из-за подтягивающего резистора
bool toggle;
void setup ()
{
pinMode (switchPin, INPUT_PULLUP);
} // конец настройки
void loop ()
{
// смотрим, разомкнут или замкнут переключатель
byte switchState = digitalRead (switchPin);
// изменилось ли оно с прошлого раза?
if (switchState != oldSwitchState)
{
oldSwitchState = switchState; // запомнить на следующий раз
toggle = !toggle; // переключаем переменную
delay (10); // отменить дребезг
} // конец изменения состояния
// другой код здесь ...
} // конец цикла
Для получения дополнительной информации см. мой пост о переключателях.
- Акцептант векселей ИКТ
- Почему эта программа на C++ не может прочитать Serial.write() моего arduino?
- Команда strtok() с Serial связью
- Ошибка переменной does not name a type!
- Использование YS-IRTM с Arduino Uno
- IRRemote отправлять и получать тем же Arduino
- Объявленная переменная внутри void setup не видится в void loop
- Как программно обнаружить последовательный порт Arduino на разных платформах?
Возможно, вы захотите сделать свой ответ немного более содержательным, чем просто включить ссылки на сайты, которые могут существовать или не существовать к тому времени, когда кто-то другой просматривает вопрос., @ILMostro_7