Сравнение нажатий кнопок для правильной последовательности
Я создаю игру на развитие памяти с помощью Arduino. У неё четыре кнопки, каждая из которых отвечает за светодиод разного цвета. Светодиоды будут мигать в случайной последовательности и либо гаснуть, либо загораться в следующей последовательности, если пользователь нажмёт правильные кнопки. Я также подключил ЖК-экран для подсчёта очков.
Сейчас приветственные индикаторы и звук работают нормально, но при запуске последовательности всё происходит так, как будто я нажимаю кнопку , и продолжается метод сбоя индикатора. Думаю, проблема возникает из-за последнего метода, когда я сравниваю нажатие кнопки с последовательностью.
Я буду признателен за любую помощь!
По сути, это моя схема, просто с другими выбранными контактами:

@Katie, 👍0
2 ответа
Проблема может заключаться в том, что вы не устраняете дребезг кнопок. При нажатии кнопки существует некое состояние между полностью нажатым и ненажатым (или отжатым назад), в котором кнопка «дребезжит», то есть происходит множество переходов между состояниями, в результате чего кнопка нажимается дважды или много раз, а не один раз.
См. пример устранения дребезга в стандартном руководстве по Arduino.
Я обнаружил, что мне не нужны подтягивающие резисторы для каждой кнопки, поскольку я объявил режим работы каждой кнопки INPUT_PULLUP. Поэтому вместо схемы выше я убрал резисторы для кнопок и подключил одну сторону кнопок к земле.
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
- Светодиод с кнопочным управлением Arduino со сборкой AVR
- Как повторить другое действие внутри цикла?
- Изменение состояния светодиода с помощью кнопки приводит к нестабильному результату
- Кнопка переключения переключает между операторами обращения с разблокированием кнопки