Добрый вечер, появилось свободное время, решил по колупаться в ардуино, заказанный набор уже вторую неделю висит в статусе вылетел в страну назначения. Нашел онлайн сервис на котором тренируюсь, пока летит живой набор. В общем, это была лирика. Собрал схемку из самой ардуинки. Для отображения прикрутил LCD1602 и что бы не писать банальное хеловорлд, решил в качестве устройства ввода использовать мембранную клавиатуру 4*4. С нуля код написать не смог бы, собрал из двух разных кодов найденных на просторах сети. И пишет только цифру 1 даже без нажатия на клавиши. Не подскажете в чем дело ? PS Код был взят от клавы 4*3, адаптировал для 4*4, но судя по результату, где то что то не исправил.
Спойлер#include <Keypad.h> #include <LiquidCrystal.h> const byte ROWS = 4; // количество рядов const byte COLS = 4; // количество столбцов char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'#','0','*','D'} }; byte rowPins[ROWS] = {13, 12, 11, 10}; // контакты для рядов: // R1 = D8, R2 = D7, // R3 = D6, R4 = D byte colPins[COLS] = {3, 2, 1, 0}; // контакты для столбцов: // C1 = D4, C2 = D3, C3 = D2 Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { lcd.begin(16, 2); // Инициализирует LCD 16x2 } void loop() { char key = keypad.getKey(); if (key != NO_KEY) { lcd.setCursor(0,0); // Установить курсор на первыю строку lcd.print(key); // Вывести текст lcd.setCursor(0,1); // Установить курсор на вторую строку lcd.print(key); }}
графическая часть
|