#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);
Уважаемый, никто не кроме Вас не знает, что для Вас нормально, а что - нет.
Вы можете скопипастить сюда вывод сериала и привести фото вывода на экран? Скорее всего Вы символы, как числа выводите, но пока Вам лень дать нормальную информацию о проблеме, всё это вилами по воде.
Бывают же в жизни совпадения. Напишешь вот так случайные числа, а потом, оказывается, что 6 из 36 угадал.
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 перевести в десятичную систему как-то?
Или не переводить.
Просто вычитанием, не?