Сравнение нажатий кнопок для правильной последовательности

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

Сейчас приветственные индикаторы и звук работают нормально, но при запуске последовательности всё происходит так, как будто я нажимаю кнопку , и продолжается метод сбоя индикатора. Думаю, проблема возникает из-за последнего метода, когда я сравниваю нажатие кнопки с последовательностью.

Я буду признателен за любую помощь!

По сути, это моя схема, просто с другими выбранными контактами:

, 👍0


2 ответа


0

Проблема может заключаться в том, что вы не устраняете дребезг кнопок. При нажатии кнопки существует некое состояние между полностью нажатым и ненажатым (или отжатым назад), в котором кнопка «дребезжит», то есть происходит множество переходов между состояниями, в результате чего кнопка нажимается дважды или много раз, а не один раз.

См. пример устранения дребезга в стандартном руководстве по Arduino.

,

1

Я обнаружил, что мне не нужны подтягивающие резисторы для каждой кнопки, поскольку я объявил режим работы каждой кнопки INPUT_PULLUP. Поэтому вместо схемы выше я убрал резисторы для кнопок и подключил одну сторону кнопок к земле.

,