Всем здравствуйте. В наличии пленочная матричная клавиатура 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
}
}