Обзор LCD модуля keypad (LCD1602, 2×16, 5V)

Обзор LCD модуля keypad (LCD1602, 2x16, 5V)

Сегодня расскажу об очень популярном модуле LCD keypad shield, разработанный для Arduino UNO, MEGA и другие аналогов. Модуль включает в себя LCD дисплей (16х2) и шесть кнопок. Для взаимодействия контроллера Arduino и модуля, используются цифровые вывода 4, 5, 6, 7, 8, 9, 10 а для чтения состоянии кнопок используется один аналоговый вывод. Также модуль позволяет регулировать контрастность LCD экран, с помощью подстрочного потенциометра RP1 (10кОм). Данный модель отлично подходит для отладки каких-нибудь проектов, мониторинга и так далее.

Технические параметры

Общие сведения

Большую часть модуля занимает ЖК дисплей, марки LCD 1602 с синей подсветкой, передача данных осуществляется по 4-битному режиму, подробнее в этой статье. На нижней части расположены шесть кнопок, пять из-за которых используются для навигации и одна кнопка дублирует reset. В верхнем левом углу установлен потенциометр, необходимый для регулировки контрастности ЖК дисплея. Так как LCD keypad shield устанавливается на плату Arduino свеху и фактически занимает разъемы, на модуле расположены дополнительные отверстия, для впаивания проводов или разъемов (на отдельную колодку. выведен интерфейс ICSP).
Из принципиальной схемы, можно увидеть, что база транзистора отвечающая за подсведку модуля подключена к выводу 10 платы Arduino, следовательно, можно отключать ее.

Обзор LCD модуля keypad (LCD1602, 2x16, 5V)

Принцип работы кнопок  
Кнопки располагаются в удобном порядке — вверх, вниз, влево, вправо, и SELECT. Все кнопки подключены к одному аналоговому входу «A0» используя цепочку резисторов, которые выдают разное опорное напряжение для «А0» при нажатии любой кнопки. На рисунке показана часть принципиальной схема LCD keypad shield

Схема LCD модуля keypad (LCD1602, 2x16, 5V)

Их принциписальной схемы видно, если кнопки не нажаты напряжение на «A0» через резистор R2 (2кОм) будет 5В. Другие резисторы не влияют на схему, а при чтении аналогового вывода «A0» будет параметр на верхнем приделе 1023 (или приблизительно). Теперь рассмотрим, что произойдет, если будет нажата кнопка «Вниз». На выводе «А0» будет напряжением, которое разделено между резистором R2 (2кОм) которое подтянуто к +5В и резисторами R3 (330ОМ) и R4 (620Ом) общий суммой 950Ом, которые пытаются тянуть его вниз к 0В. Напряжения на «A0» будет составлять порядка 1.61В, это означает, что если выполнить команду analogRead () на A0, будет возвращено значение около 306, что означает нажатие кнопки «Вниз»
Такой же принцип применим и для других кнопок, напряжением и значение analogRead (), можно посмотреть ниже:

Напряжением и значение analogRead
► RIGNT: 0.00В: 0 — 8 bit; 0 — 10 bit
► UP: 0.71В: 36 — 8 bit; 145 — 10 bit
► DOWN: 1.61В: 82 — 8 bit; 306 — 10 bit
► LEFT: 2.47В: 126 — 8 bit; 505 — 10 bit
► SELECT: 3.62В: 185 — 8 bit; 741 — 10 bit

Это позволяет сэкономить целый набор выводов и использовать их для более нужного использования. Принципиальная схема LCD keypad shield, показана на рисунке ниже.

Схема LCD модуля keypad (LCD1602, 2x16, 5V)

Назначение выводов
► A0: Вывод кнопок
► D4: LCD — DB4
► D5: LCD — DB5
► D6: LCD — DB6
► D7: LCD — DB7
► D8: LCD – RS
► D9: LCD Enable
► D10: LCD – отключение подсветки дисплея

Подключение LCD keypad shield к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► LCD модуль keypad (LCD1602, 2×16, 5V)
► Кабель USB 2.0 A-B x 1 шт.

Подключение
Установите модуль на плату Arduino UNO, подключите кабель и закрущите данный скетч.

/* 
  Тестирование производилось на Arduino IDE 1.6.12
  Дата тестирования 06.12.2016г.
*/ 

#include <LiquidCrystal.h>                // Подключяем библиотеку
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );    // Указываем порты         
 
void setup()
{
  lcd.begin(16, 2);                       // Инициализируем LCD 16x2  
  lcd.setCursor(0,0);                     // Установить курсор на первую строку  
  lcd.print("LCD1602");                   // Вывести текст
  lcd.setCursor(0,1);                     // Установить курсор на вторую строку
  lcd.print("www.robotchip.ru");          // Вывести текст
  Serial.begin(9600);                     // Включаем последовательный порт
}

void loop() { 
  int x;                                  // Создаем переменную x
  x = analogRead (0);                     // Задаем номер порта с которого производим считывание 
  lcd.setCursor(10,1);                    // Установить курсор на вторую строку 
  if (x < 100) {                          // Если x меньше 100 перейти на следующею строк
  lcd.print ("Right ");                   // Вывести текст 
  Serial.print("Value A0 ‘Right’ is  :"); // Вывести текст
  Serial.println(x,DEC);                  // Вывести значение переменной x
}
  else if (x < 200) {                     // Если х меньше 200 перейти на следующию строку
  lcd.print ("Up    ");                   // Вывести текст 
  Serial.print("Value A0 ‘UP’ is  :");    // Вывести текст
  Serial.println(x,DEC);                  // Вывести значение переменной x
}
  else if (x < 400){                      // Если х меньше 400 перейти на следующию строку
  lcd.print ("Down  ");                   // Вывести текст
  Serial.print("Value A0 ‘Down’ is  :");  // Вывести текст
  Serial.println(x,DEC);                  // Вывести значение переменной x
}
  else if (x < 600){                      // Если х меньше 600 перейти на следующию строку
  lcd.print ("Left  ");                   // Вывести текст
  Serial.print("Value A0 ‘Left’ is  :");  // Вывести текст
  Serial.println(x,DEC);                  // Вывести значение переменной x
}
  else if (x < 800){                      // Если х меньше 800 перейти на следующию строку
  lcd.print ("Select");                   // Вывести текст
  Serial.print("Value A0 ‘Select’ is  :");// Вывести текст
  Serial.println(x,DEC);                  // Вывести значение переменной x
}
}

  Скачать скетч

После загрузки прошивки, плата перегрузится и отобразится надпись, нажмите любую кнопку и информация о нажатой кнопке отобразится на дисплеи и в мониторинге порта.

Обзор LCD модуля keypad (LCD1602, 2x16, 5V)

Ссылки
  Документация к LCD1602A
  Документация к LCD ZYMC1602
  Документация к HD44780U

Купить на Aliexpress
  Контроллер Arduino UNO R3
  LCD модуля keypad (LCD1602, 2×16, 5V)

Купить в Самаре и области
  Купить контроллер Arduino UNO R3
  Купить LCD модуля keypad (LCD1602, 2×16, 5V)

Читайте также:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *