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

Підключення символьного дисплея до Arduino шині I2C, схема та програмний код для роботи з LCD 1602, LCD 2004.

LCD1602 рідкокристалічний Liquid Crystal Display символьний дисплей на 16 символів в два рядки. Кожен символ складається з матриці 5х8. Побудований на чіпсеті HD44780, або сумісного з ним.

Схема підключення
Arduino UnoLCD1602 I2C (2004)
5V5V
GNDGND
A4 (SCL)SCL
A5 (SDA)SDA
Код для Arduino Uno

У PlatformIO створюєм новий проект, обираєм мікроконтролер Arduino Uno, та копіюєм наступний код у файл main.cpp в папці src.

Для того щоб додати бібліотеку LiquidCrystal_I2C до вашого проекту, в кінець файлу platformio.ini додайте наступний рядок.

lib_deps = marcoschwartz/LiquidCrystal_I2C@^1.1.4

Рядок який потрібно додати

[env:uno]
platform = atmelavr
board = uno
framework = arduino

lib_deps = marcoschwartz/LiquidCrystal_I2C@^1.1.4

Загальний вигляд

Також бібліотеку можна підключити через меню. Перейдіть PIO Home > Libraries > Registry, у пошуку введіть назву бібліотеки у нашому випадку LiquidCrystal_I2C. Виберіть бібліотеку перейшовши в неї, натисніть Add to Project , виберіть проект до якого слід додати цю бібліотеку та натисніть Add.

#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>         // Бібліотека для роботи з LCD по I2C.   

LiquidCrystal_I2C lcd(0x27, 16, 2);    // I2c адреса дисплея, колонки, рядки. 
//LiquidCrystal_I2C lcd(0x27, 20, 4);  // Для диплея LCD 2004

int count = 0;                         // Змінна для лічильника.

void setup()
{
  lcd.init();                      // Ініціалізуємо дисплей.
  lcd.backlight();                 // Вмикаємо підсвітку.  
  lcd.setCursor(0, 0);             // Курсор на першу колонку, перший рядок.
  lcd.print("I2C display");        // Виводимо текст.
  lcd.setCursor(5, 1);             // Курсор на 6 колонку, 2 рядок.
  lcd.print("Qazf.com.ua");        // Виводимо текст.
  delay(2000);                     // Спимо 2 секунди.
  lcd.clear();                     // Очищаємо весь дисплей.
  lcd.setCursor(0, 0);             // Курсор на першу колонку, перший рядок.
  lcd.print("Counter");            // Виводимо текст.
}



void loop()
{
lcd.setCursor(0, 1);               // Курсор на першу колонку, другий рядок.
lcd.print(count);                  // Виводимо лічильник.
count++;                           // Збільшуєм лічильник на одиницю.
delay(1000);                       // Спимо 1 секунду.
}

Підключаємо USB кабель, компілюємо та завантажуєм у мікроконтролер.

Номерація рядків та колонок починається з 0, тобто пеший рядок під номером 0, другий підномер 1, третій під номером 2 . . .

0123456789101112131415
0123456789101112131415
LCD1602
Можливі проблеми та їх вирішення

Якщо на дисплеї символи не відображаються або відображаються не чітко відрегулюйте контраст, регулювальний резистор позначено на фото нжче.

LCD1602 I2C

Перевірте правильність підключення SCL та SDA.

Також I2C адреса дисплею може бути не 0х27, для пошуку підключених пристроїв скористайтесь статтею Адреси пристоїв на шині I2C, та замініть в коді вище вашою якщо вона відрізняється.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *