georgich
@georgich

Работа с тактовой кнопкой на Arduino

Приветствую.
Подключаю кнопку для работы к проекту. Воспользовался библиотекой Bounce версии 2 для предотвращения дребезга. Вот код:
#define BUTTON_ENTER 13
Bounce buttonEnter = Bounce();

void setup()
{
  pinMode(BUTTON_ENTER, INPUT);
  buttonEnter.attach(BUTTON_ENTER);
  buttonEnter.interval(5);
}

void loop()
{
  switch(mainMenu)
  {
    case(1):

    break;

    case(2):

    break;

    case(3):
    display_lcd(0,0,"Ololo");
    delay (1000);
    lcd.clear();
    mainMenu = 0;
    break;

  default:
     if (buttonEnter.update())
    {
      if (buttonEnter.read() == HIGH) {
         mainMenu = 3;
       }
    }
    break;
  }
}

Подключил, как видно по коду, к 13 пину, на котором сидит и светодиод, расположенный по дефолту на плате Ардуино Уно. Кнопка подключена по этой схеме: arduino.ru/tutorials/button через резистор на 10 кОм. При нажатии на кнопку, светодиод, который расположен на плате, загорается сразу, а вот надпись на экране появляется, примерно, через 2 секунды удержания кнопки. Хотелось бы, чтобы надпись появлялась быстрее. Что я делаю не так?
Спасибо.
  • Вопрос задан
  • 4779 просмотров
Решения вопроса 1
georgich
@georgich Автор вопроса
Вот ответ на мой вопрос: www.youtube.com/watch?v=_LCCGFSMOr4
Больше не надо гадать, ребят!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vanyamba-electronics
Видимо, ошибка в схеме. Надо резистор не к D13, а к соседнему GND.
Example_button_scheme-350x300.png
Ответ написан
Комментировать
@andjel
Лучше всего отказаться от delay () в коде, а использовать этот метод.
Вероятнее всего он и влияет на работу библиотеки Bounce.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы