Подключение текстового LCD дисплея к Arduino

Существует множество модификаций подобных текстовых дисплеев, все они базирующихся на контроллере HD44780 или совместимым с ним, самые популярные двухстрочные дисплеи с 16 символами в строке. Хотя бывают и другие, но все они подключаются и работают по одному принципу.



Подключение к Arduino:

Распиновка:

Колодка на дисплее может быть двух типов, линейная, обычно встречается на экранах 1602 или 2004.

или шахматная, обычно встречается на экранах 0802, но это зависит от модели дисплея, такое можно встретить и на 1602.

Пин Обозначение Описание
1

VSS

Масса
2

VDD

Питание 5 вольт
3

VO

Питание LCD экрана (установка контрастности)
4

RS

Выбор регистра, команды или данные, (подключается на любой свободный выход arduino)
5

R\W

Выбор чтение или запись, (подключается к массе, ибо читать с экрана не нужно)
6

E

Сигнал разрешения, (подключается на любой свободный выход arduino)
7 — 10

DB0 — DB3

Младшие биты параллельного интерфейса, (в нашем случаи не используются)
11 — 14

DB4 — DB7

Старшие биты интерфейса, (подключается на любые свободные выход arduino)
15

A

Анод светодиода подсветки (подключается к питанию 5 вольт)
16

K

Катод светодиода подсветки (подключается к массе)

Схема подключения:

Стоит отдельно сказать про настройку контрастности, контрастность зависит от напряжения на 3 ноге экрана (VO). Выход подключается к переменному резистору, который включается между питанием и массой, по схеме делителя напряжения.

Если подать на дисплей питание, дисплей отображает строку инициализации. Так ведет себя любой дисплей на контроллере HD44780, но чтобы её увидеть нужно настроить контрастность. Перед тем как начать работать с дисплеем, нужно добиться видимости этой строки.

В случаи недостатка контрастности, отображаемый текст не видим на дисплее.

Избыток контраста, тоже мешает отображению текста.

Софт:

Всё для работы текстовым дисплеем есть в комплекте со средой разработки, дополнительно устанавливать библиотеку не нужно.

Открываем пример HelloWorld.ino из библиотеки LiquidCrystal и загружаем его в arduino.

На LCD видим текст HelloWorld и счетчик к которому прибавляется единица каждую секунду.

Пример HelloWorld.ino с русскими комментариями.
/*
  LiquidCrystal Library - Hello World

 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.

 This sketch prints "Hello World!" to the LCD
 and shows the time.

  The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

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

// инициализация библиотеки и указание к каким пинам подключен LCD
// RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // настройка количества строк и столбцов LCD, в данном случаи 1602
  lcd.begin(16, 2);
  // Отправляем на LCD, hello, world!
  lcd.print("hello, world!");
}

void loop() {
  // Устанавливаем курсор на 1 линию и 0 символ
  // отсчет начинается от 0
  lcd.setCursor(0, 1);
  // Отправляем количество секунд работы arduino
  lcd.print(millis() / 1000);
}


 

Видео: