Добрый вечер! Возник вопрос, как изобразить Код (C++): KB.read(); в виде переменной? Пытаюсь данные,которые вводятся с клавиатуры преобразовать в переменную, которая будет выводиться на дисплей. Пробовал обозначить входные данные как-то так: Код (C++): unsigned char key[] = { '1','2','3','A', '4','5','6','B', '7','8','9','C', '*','0','#','D' }; И выводить: Код (C++): u8g.print(key); // или u8g.print(key[]); Но даже с точки зрения логики понимаю, что это неправильно. Буду благодарен за любую помощь и конструктивную критику!
Теперь компилятор выдает:" 'void x' has incomplete type ". Что ли косяк кроется в остальной части моей программы? Код (C++): #include <U8glib.h> // Подключаем библиотеку для LCD дисплея #include <AmperkaKB.h> // Подключаем библиотеку для клавиатуры AmperkaKB KB(7, 6, 5, 4, 3, 2, 1, 0); // указывая номера arduino подключенные к шлейфу клавиатуры U8GLIB_ST7920_128X64 u8g(10, 11, 12, U8G_PIN_NONE); // настройка пинов unsigned char key[] = { '1','2','3','A', '4','5','6','B', '7','8','9','C', '*','0','#','D' }; void setup(){ KB.begin(KB4x4); u8g.setFont(u8g_font_6x10); // Выбор шрифта auto x = KB.read(); } void draw(void) { u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 20); u8g.print(x); } void loop() { u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); }
В отсутствии моего понимания, как это наиболее оптимально реализовать. Иначе получается Код (C++): if(KB.read()=1) { u8g.print(1); } Не так ли?
Код (C++): byte k = KB.read(); Serial.print(key[k]); Читаем демо-пример, там уже все есть, и номер кнопки и ее символ: https://github.com/amperka/AmperkaKB/blob/master/example/KB_4x4/KB_4x4.ino
К счастью, вы не слепой) На данный момент, действительно, массив k больше нигде не используется, но в дальнейшем предполагается его использование.