Как вывести нажатие кнопок матричной клавиатуры на lcd tft

#include <Keypad.h>  // подключаем нашу библиотеку
#include <UTFT.h>
UTFT myGLCD(TFT32MEGA_2, 38, 39, 40, 41);
extern uint8_t BigFont[];

const byte ROWS = 4;  //число строк у нашей клавиатуры
const byte COLS = 3;  //число столбцов у нашей клавиатуры
char hexaKeys[ROWS][COLS] = {
  { '1', '2', '3' },
  { '4', '5', '6' },
  { '7', '8', '9' },
  { '*', '0', '#' }
};

byte rowPins[ROWS] = { 7, 8, 9, 10 };  //к каким выводам подключаем управление строками
byte colPins[COLS] = { 13, 12, 11 };   //к каким выводам подключаем управление столбцами
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() {
  Serial.begin(9600);

  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.setFont(BigFont);
}
void loop() {

  char customKey = customKeypad.getKey();
  if (customKey) {
    Serial.println(customKey);
    myGLCD.setColor(VGA_RED);
    myGLCD.print("iarduino.ru", 50, 0);
    //lcd.setCursor(1,4); //устанавливаем курсор
    myGLCD.printNumI(customKey, 100, 50, 0, 0);
  }
}


Это всё? А поговорить?

Например, что Вы понимаете под “вывести нажатие кнопки на LCD”? За этим словами может скрываться всё, что угодно. И вообще, объясните как Вы пытались это сделать, что именно не получилось (что не устраивает в результате).

На Serial.print номера кнопок выводятся нормально ,а на лсд шилд мега выводит двухзначные непонятные числа где прочитать или подскажите разницу вывода на экран.

Двузначные номера типа 31, 32 и тп?

да 49,50,51 и тд видимо эта запись неверная .

myGLCD.printNumI(customKey, 100, 50, 0, 0);

:-)))

@sadman41 попал!

Уважаемый, никто не кроме Вас не знает, что для Вас нормально, а что - нет.

Вы можете скопипастить сюда вывод сериала и привести фото вывода на экран? Скорее всего Вы символы, как числа выводите, но пока Вам лень дать нормальную информацию о проблеме, всё это вилами по воде.

Бывают же в жизни совпадения. Напишешь вот так случайные числа, а потом, оказывается, что 6 из 36 угадал.

1 лайк




LCD текст выводит, и гафические фигуры выводит как надо, а вот как вывести на лсд номер кнопки матричной клавиатуры при нажатии ?

Вы не поняли.

Для монитора порта давайте копипасту текстом.

А фото экрана должно содержать те же числа (из одного вывода). Т.е, нужно видеть что показывает монитор порта и экран при выводе одного и того же числа, а не просто весёлые картинки. Вот Вы что-то выводите. Что показывается “там и там”.

Думаю, что локально проблему может решить, если Вы в строку №33 добавите -‘0’

Но это не точно, т.к. Вы упорно не показываете нам то, что от Вас просят.

цифры на клаве монитор порта лсд
1 1 49
2 2 50
3 3 51
4 4 52
5 5 53
6 6 54

  •                                      *                                         35
    

Извеняюсь за последний пост.

Думаю, что стоит заменить printNumI на что-то, умеющее выводить строку, коли уж customKey - почти строка.

Именно. myGLCD.print

через String?

Проблема в том, что Вы путаете между собой сами числа и их текстовое представление (цифры).
Вот, например, 49 - это код цифры “1”, а 50 - это код цифры “2”. Как видите, число 1 и цифра “1” - это совсем нее одно и то же.

Значит надо перевести код цифры в число соответствующее кнопки?

Это получается код ASCII перевести в десятичную систему как-то?

Или не переводить.

Просто вычитанием, не?