Ардуино lcd шильд

Arduino – LCD Keypad Shield

This tutorial is to explain how to use a 16×2 character LCD Keypad Shield on Arduino board.

1. Introduction:

The 16X2 LCD Keypad Shield build for Arduino UNO, MEGA, Leonardo and other microcontrollers. This shield is fully compatible with Arduino 4-bit “LiquidCrystal” library.

It includes 16X2 LCD display with 6 push Buttons, among which 5 are connected with A0 analog input through resistor to give different voltage for each buttons and saving on input/output pins. And Pins 4, 5, 6, 7, 8, 9 and 10 are used to interface with the LCD.

1.1: Specification:

  • Operating Voltage:5V
  • 5 Push buttons.
  • RST button to reset arduino program.
  • Integrate a potentiometer for adjusting the backlight.
  • Expanded available I/O pins.
  • Blue light with white characters.

1.2 Buttons functionality:

5 buttons Select, Up, Down, Left and Right are connected with Analog input A0 with a series of Resistance.

If no button is pressed the voltage on A0 will be pulled up to 5V by the 2K resistor called R1. In that situation none of the other resistors have any effect at all, and the analog reading on A0 will be hard on the upper limit of 1023.

When the “UP” button will be pressed, the 2K resistor that is trying to pull it up to 5V, and the 330R that are trying to pull it down to 0V. The voltage presented to A0 in that case is about 0.71V, So if you read a value about 145 from A0 you know the “UP” button is being pressed.

When “Down” button is pressed, (Series Resistor 330R+620R) 950 are trying to pull it down to 0V. then A0 presents 1.61V, value about 329.

2. Required Hardware:

S.No. Item Quantity
1. Arduino 1
2. LCD Keypad Shield module 1
3. Male to Female Jumper Wires 12

3. Building Circuit

Do not changed digital pin 10. This pin is used to control the back light of the LCD.

4. Library File

Following library will be required to run this sketch. Download the zip file extract the same and copy this to your Arduino library folder.

This library file should be placed at the install folder of Arduino. I have a 64 bit Win7 OS and my arduino library folder address is located at

C:\Program Files (x86)\Arduino\libraries

5. Programming:

Once the circuit part is done, Arduino is needed to be programmed. Here is the code to get display on LCD.

6. Output

After Uploading the code, LCD will display the text as shown in above image. If you press Right Push button, Right text will display on LCD.

7. Troubleshooting

If you have trouble with display, try rotating the on-board preset.

Still you have trouble, then try attaching a power supply of around 7 to 9Vdc to the 2.1mm DC jack on the Arduino.

Источник

Arduino Keypad Shield или Знакосинтезирующий ЖКИ

Добрый день (опционально вечер/ночь).

Сегодня расскажу Вам о китайском ЖКИ. Брался в качестве баловства, возможно создания какого-либо проекта, получения навыков работы с ЖКИ, прошу под кат:

ПРЕДИСЛОВИЕ

Данный шилд лежит уже очень давно, все баловался с ним, подключал разную аппаратуру, датчики, писал меню и списки, порядка 1.5 лет прошло, как он участвует в моих разнообразных тестах и проектах.

Размер дисплея: 80 мм х 58 мм;
Рабочее напряжение: 4.5-5В;
Дисплей: 16х2;
Совместимость HD44780;
Подсветка: синий фон, белые символы;
Имеется переменный резистор, для регулировки яркости;
Русского языка нет.

Вообще исходя из цены, дисплей стоит там крайне бюджетный, такие в целом продаются за 80-100р. на али.

Фотографии специально делались на ардуине, что бы можно было оценить, то как дисплей устанавливается в разъемы. (попадались шилды, которые из-за совсем кривой пайки вставали с перекосом).

Пайка у дисплея нормальная (не плохая и не отличная, конкретно — нормальная, сойдет).
Подсветка дисплея осуществляется одним светодиодом с рефлектором, установленным с торца матрицы.

В качестве тестирования был взят старый скетч:

Каков был функционал, такой и получил. Все работает исправно, кнопки все нажимаются, регулировка яркости работает в полном объеме:

Минимальная:

Средняя:

Максимальная:

Видео тест шилда с запущенной игрой:

Учитывая его стоимость, а так же то что он проработал у меня под разными издевательствами уже 1.5 года, недостатков нет.

За скетчем сюда:

#include

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

const int FIELD_WIDTH = 16;
const float BAR_PROBABILITY = 1;

int button;
const int BUTTON_NONE = 0;
const int BUTTON_RIGHT = 1;
const int BUTTON_UP = 2;
const int BUTTON_DOWN = 3;
const int BUTTON_LEFT = 4;
const int BUTTON_SELECT = 5;

int gameStatus;
const int MAIN_MENU = 0;
const int IN_GAME = 1;
const int PAUSE = 2;
const int ENDING = 3;

char gameFields[32];
const char SPACE = ‘ ‘;
const char BAR = ‘*’;
const char PLAYER = ‘>’;

int gameSpeed;
int SPEED_HIGH = 70;
int SPEED_NORMAL = 300;
int changeSpeed = 5000;

long startGameTime;
long lastMovementTime;
long lastChangeSpeedTime;
long endGameTime;
long bestGameTime;
int topQueue = true;

int getPressedButton()
<
int buttonValue = analogRead(0);
if (buttonValue bestGameTime)
<
bestGameTime = endGameTime;
>
int playerPos = 0;
if (gameFields[FIELD_WIDTH] == PLAYER)
<
playerPos = FIELD_WIDTH;
>
lcd.setCursor(playerPos%FIELD_WIDTH, playerPos/FIELD_WIDTH);
lcd.print(‘x’);
delay(300);
lcd.setCursor(playerPos%FIELD_WIDTH, playerPos/FIELD_WIDTH);
lcd.print(‘X’);
delay(300);
lcd.setCursor(playerPos%FIELD_WIDTH, playerPos/FIELD_WIDTH);
lcd.print(‘x’);
delay(300);
lcd.setCursor(playerPos%FIELD_WIDTH, playerPos/FIELD_WIDTH);
lcd.print(‘X’);
delay(300);
lcd.setCursor(playerPos%FIELD_WIDTH, playerPos/FIELD_WIDTH);
lcd.print(‘x’);
delay(300);
lcd.setCursor(playerPos%FIELD_WIDTH, playerPos/FIELD_WIDTH);
lcd.print(‘X’);
delay(300);
lcd.setCursor(0, 0);
lcd.print(» «);
lcd.setCursor(0, 1);
lcd.print(» «);
lcd.setCursor(0, 0);
lcd.print(«Last time:»);
lcd.print(endGameTime/1000);
lcd.print(» sec»);
lcd.setCursor(0, 1);
lcd.print(«Best time:»);
lcd.print(bestGameTime/1000);
lcd.print(» sec»);
>

void printGameField()
<
for (int i = 0; i gameSpeed)
<
lastMovementTime = millis();
moveGameField();
>
if (millis() — lastChangeSpeedTime > changeSpeed)
<
lastChangeSpeedTime = millis();
SPEED_NORMAL -= 40;
// Предельная скорость
if (SPEED_NORMAL Планирую купить +25 Добавить в избранное Обзор понравился +31 +50

Источник

Подключение модуля LCD Keypad Shield 1602 к Arduino

LCD Keypad Shield — одна из самых популярных плат расширения для ардуино. Она может существенно упростить работу с жидкокристаллическими экранами, позволяя разработчику сосредоточиться на других задачах. В этой статье мы рассмотрим шилд LCD Keypad Shield для дисплея TC 1602 со встроенными 5 управляющими кнопками. Узнаем, как работает эта плата, как ее можно подключить к ардуино, рассмотрим несколько примеров скетчей в реальных проектах.

Рассматриваемый шилд представляет собой плату с встроенными модулями индикации и управления. Индикация осуществляется с помощью 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 Команды/Данные 8
R/W Чтение/Запись
Enable Включение (активирование) 9
DB0 Не используется
DB1 Не используется
DB2 Не используется
DB3 Не используется
DB4 Дата 1 4
DB5 Дата 2 5
DB6 Дата 3 6
DB7 Дата 4 7
Back LED + Включение подсветки 10
Back LED — Питание подсветки
Пины для кнопок
Кнопка UP Управляющая кнопка A0
Кнопка DOWN Управляющая кнопка A0
Кнопка LEFT Управляющая кнопка A0
Кнопка RIGHT Управляющая кнопка A0
Кнопка SELECT Управляющая кнопка A0
Reset Перезагрузка платы Reset
ICSP ICSP для перепрошивки встроенного микроконтроллера 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).

Последовательность аргументов конструктора:

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

Источник

Adblock
detector