Заставьте одну кнопку печатать разные предложения на ЖК-дисплее

Я новичок в Arduino и долго ломал голову над тем, как заставить одну кнопку распечатать три разных предложения. Когда я нажимаю ее в первый раз, должно появиться «Я», когда я нажимаю во второй раз «очень», а затем в третий раз «поздно». Я не могу иметь три разные кнопки, потому что за этой кнопкой также следует звуковой сигнал.

, 👍0

Обсуждение

Вы можете начать с https://www.arduino.cc/en/Tutorial/StateChangeDetection и попытаться сосчитать до трёх и использовать этот счёт для отображения различных сообщений., @Jot

но как мне это сделать с текстом?, @Chase

Когда счетчик увеличивается, вы можете выполнить несколько операторов if, чтобы отобразить текст в соответствии со значением счетчика., @Jot

@chase, если вы хотите, чтобы я подробно рассказал об этом в ответе, опубликуйте дополнительную заметку под моим ответом ниже. Но независимо от того, как вы это назовете, в конечном итоге вы создадите конечный автомат. Если код красивый и чистый, его будет легко поддерживать и дополнять. Если вы будете делать это постепенно, то справиться с этим может оказаться сложно. Не забывайте начинать с простого, тестировать, а затем добавлять новые функции. Не пытайтесь сделать все сразу. Вот почему я сказал создать машину с тремя состояниями без сообщений, которые проходят первые., @st2000

Я понятия не имею, с чего начать., @Chase


1 ответ


1

Рассмотрим возможность использования того, что в программировании обычно называют автоматом конечных состояний. Переход к следующему состоянию при каждом нажатии кнопки. Начните с трех состояний и переходите к следующему после нажатия кнопки. Многим вам нужно удвоить количество состояний после добавления сообщения в программу. Это связано с тем, что вам нужно нажать кнопку и распечатать сообщение только один раз, а затем перейти в новое состояние, в котором все, что вам нужно сделать, это дождаться следующего нажатия кнопки.

Обратите внимание: механическое устройство, такое как кнопка, должно быть устранено либо на аппаратном обеспечении или в программном обеспечении. Это связано с тем, что процессор может видеть отдельные прерывания и сбои при закрытии и открытии кнопки, вызывая неожиданный переход к следующему состоянию.

,

Проще говоря: убедитесь, что ваш код реагирует на нажатия кнопок, «устраняет дребезг» при нажатии кнопок. Затем добавьте глобальную переменную pressCount, инициализированную значением 0. В коде, обрабатывающем нажатия кнопок, увеличьте pressCount и используйте ее для отображения соответствующего сообщения. (Тогда вам нужно решить, что делать при 4-м нажатии кнопки. Сбрасываете ли вы на 0 и начинаете заново? Игнорируете ли вы нажатия кнопок после 3-го?), @Duncan C