Блог о программировании, электронике и рыбалке

Подключение LCD Keypad Shield к Arduino

arduino lcd keypad shieldСегодня я решил описать процесс подключения к контроллеру Arduino платы LCD Keypad Shield и пример работы с ним.

Сам LCD Keypad Shield представляет собой плату с двухстрочным экраном и 6-ю кнопками. Его очень удобно использовать в проектах, так как не надо разводить провода на макетной плате - тут все уже сделали за вас.

Разработчики этого шилда очень грамотно поступили, подключив все кнопки через резисторы разного сопротивления к аналоговому пину. Это позволило сэкономить 5 дискретных пинов для других нужд.

Схема LCD Keypad Shield

arduino lcd keypad shield

Используемые пины

A0 - кнопки (Select, Up, Right, Down, Left)

D4-D10 - подключение экрана

Проверочный скетч для LCD Keypad Shield

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(0,0);
lcd.print("LCD Key Shield");
lcd.setCursor(0,1);
lcd.print("Press Key:");
}

void loop() {
int x;
x = analogRead (0);
lcd.setCursor(10,1);
if (x < 60) {
lcd.print ("Right ");
}
else if (x < 200) {
lcd.print ("Up    ");
}
else if (x < 400){
lcd.print ("Down  ");
}
else if (x < 600){
lcd.print ("Left  ");
}
else if (x < 800){
lcd.print ("Select");
}
}

В данном скетче реализовано отображение названий нажатых клавиш.

Демонстрация:

Ничего не нажато

arduino lcd keypad shield

Нажата кнопка Select

arduino lcd keypad shield

Нажата кнопка Left

arduino lcd keypad shield

Нажата кнопка Up

arduino lcd keypad shield

Нажата кнопка Down

arduino lcd keypad shield

Нажата кнопка Right

arduino lcd keypad shield

Присоединяйтесь к нашей группе в Telegram @GeekElectronics
  • keyboard_arrow_downПодключение LCD Keypad Shield к Arduino
    • Автор:
    • Миниатюра: Подключение LCD Keypad Shield к Arduino
    • Рубрика: Arduino от А до Я
    • Обновлено: 11.03.2021
    • Комментариев: 29
    • Просмотров: 81 544
  • Оцените пожалуйста статью
    1 Star2 Stars3 Stars4 Stars5 Stars
    Загрузка...
  • Поделитесь с друзьями
Geek Electronics

Комментариев: 29

  • Avatar for source
    Денис:

    Спасибо, реально заработал шилд, до этого никак не мог разобраться с назначением кнопок, DOWN постоянно показывал LEFT

    • Avatar for source
      Юра:

      Пришлось подменить значение на 300 у (down) else if (x < 300){
      lcd.print ("Down "); тогда заработало все коректною

  • Avatar for source
    Антоха:

    Ни хера не запустилось, мой шилд проклят китайцами?!!

  • Avatar for source
    Антоха:

    Работает, очень глупая ошибка была, не выставил arduino uno до этого leonardo тестил.

  • Avatar for source
    Александр:

    Спасибо . всё работает// побольше разных примеров бы

  • Avatar for source
    Andrew:

    Такой вопрос: экраном заняты пины D4-D10. Но D10 используется для шины SPI, и я не могу, в частности, подключить датчик GY-BMP280-3.3. Можно ли переназначить пины, занимаемые дисплеем? Например, кинуть перемычку на D3, обрезав пин D10, идущий от экрана к ардуине. Но я не нашел в скетче место, где упоминается D10. Ведь изменения нужно внести и в скетч. Или придется искать другой экран?

      • Avatar for source
        Зина:

        Совсем ку-ку? яркость регулируется подстроечным резистором

        • Avatar for source
          Сергей:

          10 пин используется для шим регулировки яркости подсветки, а подстроечный резистор нужен для регулировки контрастности экрана. Контрастность и яркость разные вещи.

  • Avatar for source
    Aleks:

    Спасибо!
    Оказалось, что нужно было контрастность отрегулировать.
    Все работает!

  • Avatar for source
    J@koW:

    Спасибо. Все работает, но при использовании ацп на соседнем А1 функция analogread(a0) вешала АЦП... После долгих мучений пришол к выводу, что с этим шилдом лучше делать опрос церез АЦП с прерыванием.

  • Avatar for source
    Александр:

    Вы что спецом над начинающими издеваетесь? Где в скетче это? #include

  • Avatar for source
    LVV:

    Подскажите пож., а как подключить к Arduino Nano? В целом всё понятно, но не хочется ошибиться.

  • Avatar for source
    LVV:

    Спасибо конечно, но я хотел бы ответ типа:
    D4 | D4
    D5 | D5
    D6 | D6
    D7 | D7
    D8 | RS
    D9 | E
    A0 | A0

    LiquidCrystall lcd(8,9,4,5,6,7);

    И подключить +5в и GND
    Надеюсь это правильно.
    Но вполне возможно это не всё!!! Нужно ли подключать пины TX и RX и т.п.?
    Ну а подключать ВСЕ контакты LCD Keypad Shield тоже не хочется, многие из них явно не задействованы.

  • Avatar for source
    VVK:

    Добрый день. Возможно ли подключить шилд через I2C контроллер?

Добавить комментарий

arrow_upward