LCD Keypad Shield 1602

Осталось14 дней Завершается 28 мая в 16:46:14
0
0
№ 5036787639Новое состояние
19,00 бел. руб. 5,88$5,47540,85руб. Справочно по курсу НБРБ
шт.
Я согласен с правилами аукционов и покупаю 1 единицу за 19,00 бел. руб.
19,00 бел. руб. за 1 единицу
Возможен торг
Описание лота
Состояние Новое

LCD Keypad Shield  –  одна из самых популярных плат расширения для ардуино. Она может существенно упростить работу с жидкокристаллическими экранами, позволяя разработчику сосредоточиться на других задачах.

Описание шилда LCD Keypad Shield

Рассматриваемый шилд представляет собой плату с встроенными модулями индикации и управления. Индикация осуществляется с помощью LCD-дисплея TC1602, управление – через встроенные кнопки. Есть возможность регулировки яркости дисплея прямо на плате с помощью подстроечного резистора. Плата снабжена разъемами, в которые могут быть подключены другие устройства, например, датчики. Для работы с экраном используются пины 4-10, для определения нажатия кнопок – только один аналоговый пин A0. Свободными являются цифровые пины 0-3, 11-13 и аналоговые пины A1-A5.

Основные области применения шилда: создание управляющих модулей, реализующих настройки устройства с помощью интерфейса меню. Экран шилда можно использовать для вывода информации, получаемой с датчиков, с возможностью выполнения пользователем каких-либо действий путем нажатия на встроенные кнопки. Естественно, можно найти и другие способы использования платы: например, реализовать игру типа тетрис.

Технические характеристики

  • Тип дисплея: LCD 1602, символьный, 4-х битный режим.
  • Разрешение: 16×2 (две строки по 16 символов каждая). Знакоместо 5×8 точек.
  • Цвет дисплея: синий (возможны варианты с желтым и зеленым цветом). Буквы белого цвета.
  • Технология: STN, Transflective, Positive.
  • Контроллер дисплея: HD44780U.
  • Предельная частота обновления экрана: 5Гц
  • Питание дисплея: 5 Вольт
  • Кнопки: 6 кнопок (5 кнопок управления и Reset).
  • Дополнительные элементы: регулировка яркости подсветки (потенциометр).
  • Рабочая температура экрана: от -20 °С до +70 °С;
  • Температура хранения экрана: от -30 °С до +80 °С.

Распиновка LCD shield для подключения к ArduinoКонтакт дисплея LCD 1602ОписаниеКонтакт на LCD ShieldПины LCD экрана  GNDЗемля

VDDПитание 5В

ContrastУправление контрастомПотенциометрRSКоманды/Данные8R/WЧтение/Запись

EnableВключение (активирование)9DB0Не используется

DB1Не используется

DB2Не используется

DB3Не используется

DB4Дата 14DB5Дата 25DB6Дата 36DB7Дата 47Back LED +Включение подсветки10Back LED –Питание подсветки

Пины для кнопок

Кнопка UPУправляющая кнопкаA0Кнопка DOWNУправляющая кнопкаA0Кнопка LEFTУправляющая кнопкаA0Кнопка RIGHTУправляющая кнопкаA0Кнопка SELECTУправляющая кнопкаA0ResetПерезагрузка платыResetICSPICSP для перепрошивки встроенного микроконтроллера HD44780U

UARTКонтакты для UART соединения0, 1Дополнительные элементы шилда

  • Индикаторный светодиод (включается при подключении питания к плате).
  • Контактные площадки для подключения аналоговых устройств (GND, VSS, пин данных).
  • Потенциометр для регулирования контрастностью экрана.

Подключение платы LCD Shield к Arduino

Подключение шилда очень простое – нужно попасть ножками в соответствующие разъемы платы ардуино и аккуратно совместить их. Ничего дополнительно подсоединять или припаивать не надо. Нужно помнить и учитывать тот факт, что часть пинов зарезервированы для управления дисплеем и кнопками и не может быть использована для других нужд! Для удобства подключения дополнительного оборудования на плате выведены дополнительные разъемы 5В и GND к каждой контактной площадке аналоговых пинов. Это, безусловно, упрощает работу с датчиками. Также можно подключать цифровые устройства через свободные пины 0-3 и 11-13. Подключив шилд, мы можем работать с экраном и кнопками на нем так же, как с отдельными устройствами, учитывая только номера пинов, к которым припаяны соответствующие контакты.

Скетч для экрана на Arduino LCD shield

Для работы с LCD экранами обычно используют популярную библиотеку LiquidCrystal . На этапе инициализации создается объект класса LiquidCrystal, в конструкторе которого мы указываем пины с подключенными контактами экрана. Для нашего шилда требуется использовать такой вариант: LiquidCrystal lcd(8, 9, 4, 5, 6, 7); Последовательность аргументов конструктора:

  • RS (8)
  • Enable (9)
  • data(4)
  • data(5)
  • data(6)
  • data(7)

Ничего сложного в работе с объектом нет. В setup() мы инициализируем объект, указывая ему количество символов и строк:

lcd.begin(16, 2);

Для вывода информации на дисплей используем метод print():

lcd.print (“Arduino Master!”);

Текст выведется в место текущего нахождения курсора (в начале работы скетча это первая строка и первый символ). Для указания произвольного положения курсора можно использовать функцию setCursor(<столбец>, <строка>):

lcd.setCursor(0, 0); // Первый символ первой строки lcd.setCursor(0, 1); // Первый символ второй строки lcd.setCursor(2, 1); // Третий символ второй строки Кнопки LCD Keypad Shield

На плате присутствуют пять управляющих кнопок, работа с которыми ведется через один аналоговый пин A0. В шилде использован достаточно распространенный способ простого кодирования сигнала, при котором каждая кнопка формирует определенное значение напряжения, которое после АЦП преобразуется в соответствующее значение от 0 до 1023. Таким образом, мы можем передавать информацию о нажатии разных кнопок через один пин, считывая его при помощи функции analogRead();

Значения уровня сигнала на пине A0 в зависимости от выбранной кнопки:

Нажатие кнопкиЗначение на аналоговом пинеRIGHT0-100UP100-200DOWN200-400LEFT400-600SELECT600-800Клавиша не нажата800-1023

Пример скетча работы с кнопками LCD Keypad Shield:

int keyAnalog = analogRead(A0); if (keyAnalog < 100) { // Значение меньше 100 – нажата кнопка right // Выполняем какое-то действие для кнопки вправо. } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP // Выполняем какое-то действие для кнопки вверх } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN // Выполняем действие для кнопки вниз } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT // Выполняем действие для кнопки влево } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT // Выполняем действие для кнопки выбора пункта меню } else { // Все остальные значения (до 1023) будут означать, что нажатий не было }

В выбранном методе кодирования есть два главных недостатка:

  • Нельзя отслеживать одновременное нажатие нескольких кнопок;
  • Возможные искажения сигнала могут привести к ложным срабатываниям.

Нужно учитывать эти ограничения, выбирая этот шлд в своих проектах, если вы планируете использовать устройство в системах с большим количеством помех, которые могут искажать сигнал на входе A0, из-за чего АЦП может сформировать ошибочное значение и скетч в результате выполнит другие инструкции.

Пример скетча для работы с экраном и кнопками меню

В данном примере мы определяем текущую нажатую кнопку и выводим ее название на экран. Обратите внимание, что для удобства мы выделили операцию определения кнопки в отдельную функцию. Также в скетче мы выделили отдельный метод для вывода текста на экран. В ней мы показываем сообщение (параметр message) и очищаем его через секунду. Нужно помнить, что в течение этой секунды нажатия кнопок не обрабатываются

#include LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define BTN_UP 1 #define BTN_DOWN 2 #define BTN_LEFT 3 #define BTN_RIGHT 4 #define BTN_SELECT 5 #define BTN_NONE 10 int detectButton() { int keyAnalog = analogRead(A0); if (keyAnalog < 100) { // Значение меньше 100 – нажата кнопка right return BTN_RIGHT; } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP return BTN_UP; } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN return BTN_DOWN; } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT return BTN_LEFT; } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT return BTN_SELECT; } else { // Все остальные значения (до 1023) будут означать, что нажатий не было return BTN_NONE; } } void clearLine(int line){ lcd.setCursor(0, 1); lcd.print(" "); } void printDisplay(String message){ Serial.println(message); lcd.setCursor(0, 1); lcd.print(message); delay(1000); clearLine(1); } void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("Arduino Master"); delay(3000); lcd.setCursor(0, 0); lcd.print("Arduino Master"); } void loop() { int button = detectButton(); switch (button) { case BTN_UP: printDisplay("UP"); break; case BTN_DOWN: printDisplay("DOWN"); break; case BTN_LEFT: printDisplay("LEFT"); break; case BTN_RIGHT: printDisplay("RIGHT"); break; case BTN_SELECT: printDisplay("SELECT"); break; default: //printDisplay("Press any key"); break; } } Краткие выводы по плате расширения LCD keypad shield

Плата расширения LCD Keypad достаточно популярная, она проста и удобна для использования в проектах Arduino. Сегодня ее можно легко купить практически в любом интернет-магазине.

Плюсы LCD Shield:

  • Упрощает подключение жидкокристаллического экрана.
  • Уменьшает общие размеры устройства, т.к. убирает выступающие провода и монтажные платы.
  • Сокращает количество ошибок, связанных с неправильным монтажом и подключением.
  • Добавляет функциональность кнопочного управления, если на плате установлены кнопки (LCD Keypad shield).
Доставка и оплата
Доставка из города Пинск, Беларусь
Отправка почтой в другой город по стране
Передача лично
Невозможно выслать в другую страну
Наложенный платеж при получении лота на почте
Стоимость доставки: 4,00 бел. руб.

Похожие лоты

Вход

В течение нескольких секунд вам придёт SMS с одноразовым кодом для входа. Если ничего не пришло — отправьте код ещё раз.
Это бесплатно, безопасно и займёт всего несколько секунд
Войдите с помощью своего профиля

Регистрация

Введите номер вашего мобильного телефона:
Войдите с помощью электронной почты или номера телефона
Войдите с помощью своего профиля

Восстановление пароля

Укажите адрес электронной почты, который вы использовали при регистрации
Нужна помощь? Напишите нам

Восстановление пароля

Инструкции по восстановлению пароля высланы на 
Нужна помощь? Напишите нам

Согласие на обработку персональных данных

Согласно Закону Республики Беларусь «О защите персональных данных» и в соответствии с Политикой конфиденциальности, для дальнейшего использования Сайта / Приложения вам необходимо подтвердить своё согласие на обработку персональных данных.

Отказываюсь
Для обеспечения удобства пользователей сайта используются cookies.