Lekce 6
Š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.
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.
| I²C LCD 1602 | Arduino Uno | Arduino Mega |
|---|---|---|
| GND | GND | GND |
| VCC | 5V | 5V |
| SDA | A4 | 20 |
| SCL | A5 | 21 |
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.
LiquidCrystal_I2C (přes Správce knihoven nebo rozbalením staženého souboru do složky Libraries).// 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
}
LiquidCrystal_I2C lcd(...). Adresu zjistíte skenerem z lekce 5.LiquidCrystal_I2C. Doinstalujte ji přes Správce knihoven v Arduino IDE.QProč se k LCD displeji připojuje I²C převodník?