Обсуждаем контроллеры компании Atmel.
Ответить

Помощь по ардуино

Пт апр 20, 2018 17:37:46

Добрый вечер, появилось свободное время, решил по колупаться в ардуино, заказанный набор уже вторую неделю висит в статусе вылетел в страну назначения. Нашел онлайн сервис на котором тренируюсь, пока летит живой набор.
В общем, это была лирика.
Собрал схемку из самой ардуинки. Для отображения прикрутил 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);
}}


графическая часть
Вложения
ардуино.jpg
(152.99 KiB) Скачиваний: 302
Ответить