Как подключить lcd дисплей к ардуино без i2c
Перейти к содержимому

Как подключить lcd дисплей к ардуино без i2c

Работа с символьными ЖК дисплеями 1602,2004.

Для работы с символьными графическими дисплеями предлагаем воспользоваться библиотекой LiquidCrystal которая входит в стандартный набор Arduino IDE и предназначена для работы по 8-битному (4-битному) параллельному интерфейсу. Если Ваш дисплей подключается к Arduino по аппаратной шине I2, то Вам нужно установить библиотеку LiquidCrystal_I2C (большинство функций которой повторяют функции первой библиотеки).

Поддерживаемые дисплеи:

Дисплей Подключение и инициализация
LCD1602 — символьный дисплей (16×02 символов),
с параллельным интерфейсом (синий)
#include <LiquidCrystal.h>
LiquidCrystal lcd( 2 , 3 , 4 , 5 , 6 , 7 [ , 8 , 9 , 10 , 11 ] );
void setup()< lcd.begin( 16 , 2 ); >

// Пояснение:
LiquidCrystal ОБЪЕКТ ( RS , E , D4 , D5 , D6 , D7 );
void setup()

Подключение дисплея LCD1602 к Arduino

// Пояснение:
LiquidCrystal ОБЪЕКТ ( RS , E , D4 , D5 , D6 , D7 );
void setup()

Подключение дисплея LCD2004 к Arduino

#1 Пример

Выводим надпись на дисплей LCD1602 подключённый по шине I2C. Для работы с дисплеем LCD2004 нужно изменить 3 строку на LiquidCrystal_I2C lcd(0x27,20,4);

#2 Пример

Выводим надпись на дисплей LCD1602 подключённый по 4-битной параллельной шине. Для работы с дисплеем LCD2004 нужно изменить 5 строку на lcd.begin(20, 4);

#3 Пример

Выводим надпись «Русский язык» на дисплей LCD1602 подключённый по шине I2C:

#4 Пример

Выводим время прошедшее после старта на дисплей LCD1602 подключённый по шине I2C:

LCD 16×02 i2c подключение дисплея к Ардуино

Подключение lcd 1602 к Arduino i2c

LCD дисплей Arduino позволяет визуально отображать данные с датчиков. Расскажем, как правильно подключить модуль QAPASS LCD к Arduino по I2C и рассмотрим основные команды инициализации и управления LCD 1602. Также рассмотрим различные функции в языке программирования C++, для вывода текстовой информации на дисплее, который часто требуется использовать в проектах Ардуино.

Как подключить к Arduino LCD без I2C

Текстовый экран 16×2 используется для вывода информации с датчиков, отображения меню или подсказок. На экране выводятся черные символы размером 5×8 пикселей. Встроенная подсветка включается подачей питания на пины модуля. Текстовый дисплей 16×2 без модуля IIC подключается к микроконтроллеру через 16 контактов. Распиновка экрана с примером подключения размещена ниже.

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • LCD монитор 1602 i2c;
  • провода «папа-мама».

Схема подключения текстового экрана 16x2 к Ардуино Схема подключения текстового экрана 16×2 к Ардуино

LCD 1602 i2c Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Жидкокристаллический дисплей имеет 2 ряда по 16 символов, отсюда и его название LCD 1602. В память устройства встроено 192 знака, еще 8 знаков может определить сам пользователь. При подключении дисплея без IIC модуля потребуется использовать 6 портов общего назначения у микроконтроллера Arduino, не считая питания. Соберите схему, как на картинке выше и загрузите следующую программу в плату.

Скетч. Ардуино и LCD 1602 без I2C модуля

Пояснения к коду:
  1. для данного примера используется стандартная библиотека LiquidCrystal.h для QAPASS, которая не поддерживает кириллицу;
  2. чтобы упростить схему и не использовать большое количество пинов микроконтроллера, следует использовать дисплей с модулем I2C.

Принцип работы I2C интерфейса Arduino

I2C — последовательная двухпроводная шина для связи интегральных схем внутри электронных приборов, известна, как I²C или IIC (англ. Inter-Integrated Circuit). I²C была разработана фирмой Philips в начале 1980-х годов, как простая 8-битная шина для внутренней связи между схемами в управляющей электронике (например, в компьютерах на материнских платах, в мобильных телефонах и т.д.).

Схема i2c интерфейса для подключения lcd1602

Схема i2c интерфейса для подключения lcd16x2

В простой системе I²C может быть несколько ведомых устройств и одно ведущее устройство, которое инициирует передачу данных и синхронизирует сигнал. К линиям SDA (линия данных) и SCL (линия синхронизации) можно подключить несколько ведомых устройств. Часто ведущим устройством является контроллер Ардуино, а ведомыми устройствами: часы реального времени или LCD Display.

Как подключить LCD 1602 I2C к Arduino

Жидкокристаллический дисплей 1602 с I2C модулем подключается к плате Ардуино всего 4 проводами — 2 провода данных и 2 провода питания. Подключение QAPASS 1602a к Arduino проводится стандартно для шины I2C: вывод SDA подключается к порту A4, вывод SCL – к порту A5. Питание LCD дисплея осуществляется от порта +5V. Смотрите подробнее схему подключения жк монитора 1602 на фото ниже.

Подключение LCD 1602 к Arduino UNO через I²C

Подключение модуля LCD 16×2 к Arduino UNO через I²C

После подключения LCD монитора к Ардуино через I2C вам потребуется установить библиотеку LiquidCrystal_I2C.h для работы с LCD дисплеем по интерфейсу I2C и библиотека Wire.h (имеется в стандартной программе Arduino IDE). Скачать рабочую библиотеку LiquidCrystal_I2C.h для LCD 1602 с модулем I2C можно на странице Библиотеки для Ардуино на нашем сайте по прямой ссылке с Google Drive.

Скетч для жк дисплея QAPASS 1602 I2C

Пояснения к коду:
  1. перед выводом информации на дисплей, необходимо задать положение курсора командой setCursor(0,1) , где 0 — номер символа в строке, 1 — номер строки;
  2. в отличии от clear() — команда noDisplay() не удаляет надпись, а отключает ее вывод на дисплее и ее можно снова показать.

Подключение двух дисплеев по I2C

По умолчанию у всех дисплеев 1602 с модулем I2C адрес — «0x27», но можно изменить адрес текстового экрана и узнать его через сканер iic шины. Таким образом, если у вас есть необходимость подключить к одному микроконтроллеру несколько дисплеев 1602, то следует изменить адреса устройств, что бы не было совпадений. Давайте рассмотрим, каким образом изменить IIC адрес жидкокристаллического дисплея.

Текстовый дисплей 1602 с модулем I2C

Текстовый дисплей 16×2 с модулем I2C

Если перевернуть дисплей и посмотреть на IIC модуль (смотри фото выше), то там можно заметить контакты, обозначенные, как «A0», «A1» и «A2». Если по умолчанию LCD имеет адрес «0x27» на шине IIC, то замкнув перемычку «A0», адрес дисплея сменится на «0x26». Таким образом, к одной шине можно подключить несколько дисплеев, не забыв указать их адреса в скетче — смотри следующий пример кода.

Скетч. Подключение нескольких LCD 1602 к шине i2c

Подключение двух дисплеев 1602 I2C к Ардуино

Подключение к Ардуино двух дисплеев 16×2 по I2C

Перед загрузкой следующего скетча, сначала соберите схему с двумя дисплеями и просканируйте шину IIC. Это необходимо сделать, чтобы убедится в том, что плата Arduino «видит» оба устройства на шине. А также перепроверить правильность адресов. После этого можно загружать следующий код, который позволит управлять сразу двумя дисплеями с модулями IIC от одного микроконтроллера Arduino Uno.

Пояснения к коду:
  1. в программе у каждого дисплея имя должно быть уникальным.

Библиотека LiquidCrystal_I2C.h для LCD дисплея

В следующем примере разберем сразу несколько возможностей, которая дает библиотека LiquidCrystal_I2C Arduino (на самом деле мы взяли команды из стандартной библиотеки). Продемонстрируем вывод мигающего курсора, как убрать надпись с экрана на некоторое время без удаления и, как управлять подсветкой дисплея из кода программы. Для этого загрузите в Ардуино следующий код программы.

Скетч. Описание библиотеки LiquidCrystal_I2C.h

Пояснения к коду:
  1. библиотека LiquidCrystal_I2C.h содержит встроенные команды для управления LCD дисплея по шине I²C и позволяет значительно упростить скетч.
  2. читайте также про возможность авто прокрутки строки на дисплее Ардуино.

Заключение: Используя программы Ардуино для lcd 1602a из этой записи и схему подключения lcd 1602 к Ардуино по i2c вы сможете применять данный дисплей в проектах Ардуино с LCD и в различных примерах. Если у вас остались вопросы по использованию монитора 1602 i2c Arduino — оставляйте их в комментариях на этой странице. Возможно, то что вы ищете уже решено и есть в ответах.

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

Модуль дисплея LCD 1602 — очень популярен в последнее время ввиду простоты его работы и способа подключения. Используется во множестве проектов где требуется вывод информации на дисплей. О том как подключить и настройка LCD модуля 1602 к Arduino и пойдет речь в этом посте.

При помощи модуля LCD 1602 можно без труда вывести на кран какую либо информацию — будь это текстовое сообщение, значение температуры, количество оборотов, давление и любые другие параметры.

Стоит он не дорого и не нуждается в какой либо тонкой и сложной настройке. Все что нужно для того чтобы начать с ним работать это подключить его к Arduino по схемам ниже. Подключить библиотеку для работы с ним и написать скрипт.

Распиновка LCD модуля 1602

Распиновка выводов модуля lcd 1602

Назначение выводов дисплея 1602

Вывод Обозначение Пин Arduino Uno
1- земля GND; GND GND
2-питание 5 В; VCC 5V
3-установка контрастности монитора; VO GND
4-команда, данные; RS 11
5-записывание и чтение данных; R/W GND
6-enable; E 12
7- линии данных; DB0
8- линии данных; DB1
9- линии данных; DB2
10- линии данных; DB3
11- линии данных; DB4 5
12- линии данных; DB5 4
13- линии данных; DB6 3
14- линии данных; DB7 2
15- плюс подсветки; VCC 5V
16- минус подсветки; GND GND

Основные технические характеристики дисплея 1602

  • наличие светодиодной подсветки;
  • контроллер HD44780;
  • напряжение питания 5 В;
  • размер дисплея 16х2 символов;
  • диапазон рабочей температуры от -20 С до +70 С;
  • угол обзора 180 градусов.

Схема подключения LCD модуля 1602 к Arduino без I2C

Схема подключения LCD модуля 1602 к Arduino без I2C

В данной схеме мы напрямую подключаем Arduino к LCD модулю, при такой схеме подключения много проводов. Что не очень удобно. Как видно из схемы для подключения Arduino напрямую к LCD 1602 понадобится 6 проводов.

Схема подключения LCD модуля 1602 к Arduino при помощи модуля I2C

Схема подключения LCD модуля 1602 к Arduino при помощи модуля I2C

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

Модуль i2c для работы с LCD 1602

Этот интерфейсный модуль позволяет уменьшить количество используемых выводов контроллера, вместо 8 или 4-битного соединения, требуется только 2 вывода (SDA и SCL).

  • поддержка дисплеев: LCD 16×02 / 20×04;
  • дополнительно: регулировка контрастности;
  • напряжение питания. 5 В;
  • интерфейс: I2C;
  • размеры модуля: 54 мм x 19 мм x 15 мм

Схема модуля i2c для работы с LCD 1602

Схема модуля i2c для работы с LCD 1602

Внешний вид интерфейсного модуля i2c

Внешний вид модуль i2c

Для соединения на модуле расположено три группы контактов:

Первая группа:

  • SCL: линия тактирования (Serial CLock)
  • SDA: линия данных (Serial Dфta)
  • VCC: «+» питание
  • GND: «-» питание

Вторая группа:

  • VSS: «-» питание
  • VDD: «+» питание
  • VO: Вывод управления контрастом
  • RS: Выбор регистра
  • RW: Чтение/запись ( режим записи при соединении с землей)
  • E: Еnable (строб по спаду)
  • DB0-DB3: биты интерфейса (младшие )
  • DB4-DB7: биты интерфейса (старшие)
  • A: «+» питания подсветки
  • K: «-» питания подсветки

Третья группа: (по умолчанию установлена перемычка)

  • VCC:
  • A от LCD:

Библиотека для работы с модулем LCD 1602

Для соединения Arduino c LCD 1602 по протоколу I2C потребуются две библиотеки:

  1. Библиотеки Wire.h — стандартная библиотека для работы Arduino c устройствами по протоколу с I2C она уже есть в Arduino IDE;
  2. Библиотека LiquidCrystal.h так же есть в в Arduino IDE используется при прямом подключении Arduino к LCD 1602 (без модуля I2C) ;
  3. Библиотека LiquidCrystal_I2C.h которая предоставляет все необходимые функции для работы с LCD 1602. Скачать вы ее можете в конце статьи.

Примеры скетчев

Описание функций и методов библиотеки LiquidCrystal I2C:

  • home() и clear() – возврат курсора в начало экрана, вторая это очистка экрана курсор после очистки переходи в начало;
  • write(ch) – вывод символа на экран;
  • cursor() и noCursor() – показать/скрыть курсор на экране;
  • blink() и noBlink() – включение/выключение мигание курсора;
  • display() и noDisplay() – подключаем/отключаем дисплей;
  • scrollDisplayLeft() и scrollDisplayRight() – смещаем экран на один символ вправо/влево;
  • autoscroll() и noAutoscroll() – позволяет вкл./выкл. режим автопрокрутки. В этом режиме каждый новый символ записывается в одном и том же месте, вытесняя ранее написанное на экране;
  • leftToRight() и rightToLeft() – направление выводимых символов слева направо или справа налево;
  • createChar(ch, bitmap) – создание символа с кодом ch (0 – 7), для создания черных и белых точек

Возможные ошибки при подключении модуля I2C

Если после того загрузили программу в arduino экран никак не реагирует и он не отображается никакого символа, попробуйте выполнить следующие шаги:

Другой причиной не рабочего экрана может стать неправильный i2c адрес, для устранения неисправности попробуйте выполнить следующие шаги:

Liquid Crystal Displays (LCD) with Arduino

This article was revised on 2021/11/18 by Karl Söderby.

The LiquidCrystal library allows you to control 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.

Output of the sketch on a 16x2 LCD

Output of the sketch on a 16×2 LCD

The LCDs have a parallel interface, meaning that the microcontroller has to manipulate several interface pins at once to control the display. The interface consists of the following pins:

  • A register select (RS) pin that controls where in the LCD's memory you're writing data to. You can select either the data register, which holds what goes on the screen, or an instruction register, which is where the LCD's controller looks for instructions on what to do next.
  • A Read/Write (R/W) pin that selects reading mode or writing mode
  • An Enable pin that enables writing to the registers
  • 8 data pins (D0 -D7). The states of these pins (high or low) are the bits that you're writing to a register when you write, or the values you're reading when you read.

There's also a display contrast pin (Vo), power supply pins (+5V and GND) and LED Backlight (Bklt+ and BKlt-) pins that you can use to power the LCD, control the display contrast, and turn on and off the LED backlight, respectively.

The process of controlling the display involves putting the data that form the image of what you want to display into the data registers, then putting instructions in the instruction register. The LiquidCrystal Library simplifies this for you so you don't need to know the low-level instructions.

The Hitachi-compatible LCDs can be controlled in two modes: 4-bit or 8-bit. The 4-bit mode requires seven I/O pins from the Arduino, while the 8-bit mode requires 11 pins. For displaying text on the screen, you can do most everything in 4-bit mode, so example shows how to control a 16×2 LCD in 4-bit mode.

Hardware Required

  • Arduino Board
  • LCD Screen (compatible with Hitachi HD44780 driver)
  • pin headers to solder to the LCD display pins
  • 10k ohm potentiometer
  • 220 ohm resistor
  • hook-up wires
  • breadboard

Circuit

Note that this circuit was originally designed for the Arduino UNO. As the Arduino is communicating with the display using SPI, pin 11 & 12 will change depending on what board you are using. For example, on a MKR WiFi 1010, the SPI bus is attached to pin 8 & 11.

Before wiring the LCD screen to your Arduino board we suggest to solder a pin header strip to the 14 (or 16) pin count connector of the LCD screen, as you can see in the image further up.

To wire your LCD screen to your board, connect the following pins:

  • 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 GND
  • LCD VSS pin to GND
  • LCD VCC pin to 5V
  • LCD LED+ to 5V through a 220 ohm resistor
  • LCD LED- to GND

Additionally, wire a 10k potentiometer to +5V and GND, with it's wiper (output) to LCD screens VO pin (pin3).

The circuit (made using Fritzing).

The circuit (made using Fritzing).

Schematic

The schematic (made using Fritzing).

The schematic (made using Fritzing).

Hello World Example

This example sketch prints to the LCD and shows the time in seconds since the Arduino was reset.

Autoscroll Example

This example sketch shows how to use the and methods to move all the text on the display left or right.

  • moves all the text one space to the left each time a letter is added
  • turns scrolling off

This sketch prints the characters to with autoscroll off, then moves the cursor to the bottom right, turns autoscroll on, and prints them again.

Blink Example

This example sketch shows how to use the and methods to blink a block-style cursor.

Cursor

This example sketch shows how to use the and methods to control an underscore-style cursor.

Display Example

This example sketch shows how to use the and methods to turn on and off the display. The text to be displayed will still be preserved when you use noDisplay() so it's a quick way to blank the display without losing everything on it.

Scroll Example

This example sketch shows how to use the and methods to reverse the direction the text is flowing. It prints "Hello World!", scrolls it offscreen to the left, then offscreen to the right, then back to home.

Serial to Display Example

This example sketch accepts serial input from a host computer and displays it on the LCD. To use it, upload the sketch, then open the Serial Monitor and type some characters and click Send. The text will appear on your LCD.

Set Cursor Example

This example sketch shows how to use the method to reposition the cursor. To move the cursor, just call with a row and column position. For example, for a 2×16 display:

Here is the full example:

Text Direction Example

This example sketch shows how to use the and methods. These methods control which way text flows from the cursor.

  • causes text to flow to the left from the cursor, as if the display is right-justified.
  • causes text to flow to the right from the cursor, as if the display is left-justified.

This sketch prints through right to left, then through left to right, then through right to left again.

Custom Character

This example demonstrates how to add custom characters on an LCD display.

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

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