#1 2022-05-13 21:58:15

imden10
Учасник
Зареєстрований: 2022-05-02
Повідомлень: 42

GButton + mcp23017

Краткая предистория. Переношу с ардуино на esp32. На ардуино стояла библиотека GButton, которая отлично справлялась с нажатием кнопок, нужны были 2 функции:

  • вкл/выкл одной кнопкой;

  • отловить, что кнопка нажата 2 сек.

На esp32 оказалось мало пинов мне. Прикрутил 2 mcp23017 по i2c. Работает отлично, но не умеет работать с GButton.

Вот проблема.
Нужно что то вроде GButton, которая умеет работать с mcp23017
или
может у кого есть НОРМАЛЬНЫЙ пример для работы с кнопками, что бы выполнять те функции, что описывал сверху.

Неактивний

#2 2022-05-14 10:56:41

г0сть
Гість

Re: GButton + mcp23017

imden10 пише:

нужны были 2 функции:

  • вкл/выкл одной кнопкой;

- см. в соседней теме, студенту давали пример.

  • отловить, что кнопка нажата 2 сек.

- примерно так

long previousMillis = 0;
int val = 0;
byte button = 2;

void setup()
{
  Serial.begin(9600);
  pinMode(button, INPUT_PULLUP);
}

void loop()
{
  if (!digitalRead(button))
  {
    if (millis() - previousMillis >= 500)
    {
      previousMillis = millis();
      val++;
    }
  }
  else val = 0;

  if (val >= 4)
  { Serial.println("2000");
    //выполняем действие
    val = 0;
  }
}

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму