Особенности библиотеки Keypad или как сделать долгое нажатие

Всем здравствуйте. В наличии пленочная матричная клавиатура 3х4, Arduino Nano и ИК-передатчик (ИК-диод). Сделал из этого всего ИК-пульт. Использую для этого соответственно библиотеки Keypad и IRremote. Все вроде работает, команды отсылаются, но не так как хотелось бы. Нажимаю кнопку на клавиатуре - отправляется команда. Вроде нормально. Но хотелось бы при удержании кнопки, чтобы команда отсылалась постоянно, а этого не происходит. Причем просто с кнопкой всё работает как надо. Подскажите пожалуйста с моим недельным опытом этой темы в чем проблема?
Вот скетч. В нём используется только одна кнопка клавиатуры.

#include <IRremote.h>  // Подключение библиотеки IRremote
#include <Keypad.h>    // Подключение библиотеки Keypad

IRsend irsend;

const int ledPin13 =  13;

unsigned int  rawData08[26] = {480, 800,480, 800,480, 800,480, 800,480, 800,480, 800,480, 800,480, 800,480, 320,960, 800,480, 800,480, 320,960, 800}; //Dawn (08)

const byte ROWS = 4;   // Количество строк 
const byte COLS = 3;   // Количество рядов 

char keys[ROWS][COLS] = 
{
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {10, 4, 8, 6}; // Выводы, подключение к строкам
byte colPins[COLS] = {5, 7, 9}; // Выводы, подключение к столбцам  

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup() {
    pinMode(ledPin13, OUTPUT); //
    Serial.begin(9600); // Открываем последовательную связь на скорости 9600
}   
void loop() {
delay(50);
  	  char key = keypad.getKey();  // Читаем состояние кнопок
	    if (key != 0) {
    digitalWrite(ledPin13, HIGH);
  } else {
    digitalWrite(ledPin13, LOW);
  } 
    if (key){
    Serial.println(key);
   }   
     if (key == '8'){ //Если нажата кнопка "8"
     delay(50);
     irsend.sendRaw(rawData08,26,38); //Отсылаем команду rawData08
     
  }
}

Да, что ж сегодня за поветрие такое-то? Третий уже!

Вот одна “keypad.h”! А вот другая! Вам показать ещё и третью, и четвёртую?

Как прикажете угадывать, которая у Вас? Хрустальный шар в ремонте.

Трудно дать ссылку на библиотеку?

Ещё наверное стоит рассказать, а чем управляете? Приемник вашего ИК-сигнала кто?
Одно дело - самодельное устройство, а другое - готовое устройство с одним из стандартных протоколов. Там непрерывная посылка кода может специальным символом кодироваться.

Библиотека версии 3.1.

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

Вы дали два ответа и оба абсолютно не в тему.
Евгению дайте ссылку на используемую Вами библиотеку, а не версию неизвестной библиотеки.
Я спрашивал не о передатчике (пульте), а о приёмнике. Это тоже что-то самодельное? Тогда стоит привести и его скетч. Может Вы приём как-то неправильно организовали.

Это особенность библиотеки. Она возвращает нажатую клавишу при вызове getKey только один раз после нажатия.
Есть getState(), но как “красиво” отслеживать долгое нажатие не знаю, не делал.

Библиотека.
https://downloads.arduino.cc/libraries/github.com/Chris–A/Keypad-3.1.1.zip
О программе приёмника мне ничего не известно.

Значит, как я и предполагал, ссылку дать трудно. Ну, тогда воюйте с нею сами.

А ссылкы выше не подходит что-ли?

Она не выше, а ниже. После поста c номером версии, я потерял интерес к теме.

Я ведь с самого начала попросил у Вас ссылку, так? Вы не дали, видимо секретная, ну или Вам настолько “сильно нужна” помощь, что лень было искать ссылку. Значит, не судьба - лимит моего времени на эту тему исчерпан :frowning:

:laughing: И на том спасибо.