Lekce 6

I²C LCD displej

Šestá lekce Arduino kurzu pro začátečníky: připojíte I²C LCD displej 1602 a necháte ho zobrazit vlastní text. Ukážeme si zapojení po sběrnici I²C, knihovnu LiquidCrystal_I2C i kód do Arduino IDE – stačí čtyři vodiče a na displeji se rozběhne nápis, který si sami zvolíte.

🧩Co budeš potřebovat
Arduino I²C LCD displej 1602 USB kabel Kabely Dupont (samec-samice)
🔌Zapojení
Schéma zapojení Arduino – I2C LCD 1602 displej připojený přes SDA na A4 a SCL na A5

Popisek obrázku: LCD displej s I²C převodníkem připojíte čtyřmi vodiči. GND na GND, VCC na 5 V, datový vodič SDA na pin A4 a hodinový SCL na pin A5. Stejné vedení použijete i v dalších lekcích s I²C.

🔗Připojení pinů
I²C LCD 1602Arduino UnoArduino Mega
GNDGNDGND
VCC5V5V
SDAA420
SCLA521
💡Jak to funguje

Obyčejný LCD displej by zabral mnoho pinů Arduina, kterých je jen omezený počet. Proto se na něj připájí malý I²C převodník, díky kterému stačí ke komunikaci pouze dva datové piny – SDA a SCL. O zbytek se stará knihovna LiquidCrystal_I2C: stačí jí říct adresu displeje (obvykle 0x27) a počet znaků a řádků. Pak už jen funkcí lcd.print vypisujete text a třeba ho posouváte po displeji. Malým potenciometrem na zadní straně převodníku se navíc nastavuje kontrast.

Postup
  1. Zapojte displej podle tabulky výše – SDA na A4 a SCL na A5.
  2. Do Arduino IDE doinstalujte knihovnu LiquidCrystal_I2C (přes Správce knihoven nebo rozbalením staženého souboru do složky Libraries).
  3. Zkopírujte kód, zkompilujte ho a nahrajte do Arduina.
</>Kód
lekce06_i2c_lcd_displej.ino
// I2C LCD displej
// Na displeji uvidíte běžící text: "Laskarduino" a "Zdravím bastlíře!".
// Email: podpora@laskakit.cz · Web: laskakit.cz

// připoj knihovny
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

char array1[] = "  Laskarduino       ";   // první řádek displeje (26 znaků)
char array2[] = "  Zdravím bastlíře! ";   // druhý řádek displeje (26 znaků)
int tim = 500;                          // délka pauzy

// inicializace knihovny displeje – adresa 0x27 pro 1602
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();                          // inicializace LCD
  lcd.backlight();                     // zapnout podsvícení
}

void loop() {
  lcd.setCursor(15, 0);              // kurzor na sloupec 15, řádek 0
  for (int i = 0; i < 26; i++) {
    lcd.scrollDisplayLeft();          // posunout text zprava doleva
    lcd.print(array1[i]);              // vypsat znak na displej
    delay(tim);                        // počkat 500 ms
  }
  lcd.clear();                         // vyčistit displej

  lcd.setCursor(15, 1);              // kurzor na sloupec 15, řádek 1
  for (int i = 0; i < 26; i++) {
    lcd.scrollDisplayLeft();          // posunout text zprava doleva
    lcd.print(array2[i]);              // vypsat znak na displej
    delay(tim);                        // počkat 500 ms
  }
  lcd.clear();                         // vyčistit displej
}
Výsledek
💡
Po nahrání uvidíte na displeji běžící text – nejprve „Laskarduino", potom „Zdravím bastlíře!". Pokud na displeji nic nevidíte, otočte malým potenciometrem na zadní straně převodníku a nastavte kontrast tak, aby byl nápis dobře čitelný.
Časté chyby
?Kontrolní otázka

QProč se k LCD displeji připojuje I²C převodník?