LCD displej je vhodný pro zobrazování údajů a zlepšují tím pádem naši interakci s přístroji. LCD panely se běžně připojují na kontroler, na kterém obsadí několik I/O portů, kterých je omezený počet. Proto byl vyvinut převodník se I2C sběrnicí pro 1602 a 2004 LCD displej, který daný problém vyřešil.
I²C (anglicky Inter-Integrated Circuit, čteme I-squared-C, nesprávně I-two-C) je multi-masterová počítačová sériová sběrnice vyvinutá firmou Philips, která je používána k připojování nízkorychlostních periferií k základní desce, mikrokontroléru, aj.
Praktická identická sběrnice se skrývá i pod zkratkou TWI (Two Wire Interface - dvoudrátové rozhraní), kterou používá firma Atmel a další výrobci, namísto chráněné značky I2C.
Modrý potenciometr na převodníky se používá k nastavení podsvícení. I²C používá pouze dva obousměrné kanály - datový kanál SDA a hodinový signál SCL s pull-up rezistory. Používá se napětí +5 V nebo +3,3 V, povoleny jsou však i systémy s jiným napětím.
Budeme potřebovat
-
Arduino Uno (nebo jinou desku).
-
USB kabel.
-
Nepájivé kontaktní pole.
-
Vodiče
-
I²C zařízení např. I2C LCD displej
Zapojení
Dle obrázku:
| I2C LCD1602 | Arduino UNO |
|---|---|
| GND | GND |
| VCC | 5V |
| SDA | A4 |
| SCL | A5 |
Obrázek 1: Zapojení LCD displaye na Arduino na sběrnici I2C
Obrázek 2: Připojení Arduina na LCD display – Zadní strana
Obrázek 3: LCD disply - Přední strana
Program bude vycházet z předchozího programu na skenování adresy zařízení připojeného ke sběrnici I2C.
Tentokráte necháme zobrazit text na LCD displeji pomocí programování.
Instalace knihoven
Staženou knihovnu „ LiquidCrystal_I2C.zip “ rozbalte do adresáře:
„ C:\Users\uživatelské_jméno\Documents\Arduino\Libraries “ ještě před kompilací programu.
Program
Do Arduino IDE vložíme kód programu a nahrajeme jej do Arduina:
/*
* Progrm LCD panel - tisk textu s posunem
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
char array1[]=" Ahoj Arduino! "; // první řádek displeje (26 znaků!)
char array2[]=" Ahoj ajtaci! "; // druhý řádek displeje (26 znaků!)
int tim = 500; //délka pauzy
// inicializace knihovny displeje
LiquidCrystal_I2C lcd(0x27,16,2); // nastavit adresu displeje na 0x27 pro 1602 displej
void setup() {
lcd.init(); // inicializace lcd
lcd.backlight(); // zapnout podsvícení
}
void loop() {
lcd.setCursor(15,0); // nastavení kurzoru na sloupec 15, řádek 0
for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++) {
lcd.scrollDisplayLeft(); // Protáhnout obsah zprávy na displeji zprava do leva.
lcd.print(array1[positionCounter1]);// Zobrazit zprávu na displeji.
delay(tim); // počkat 500 ms
}
lcd.clear(); // vyčistit displej a přesunout kurzor na začátek.
lcd.setCursor(15,1); // nastavení kurzoru na sloupec 15, řádek 1
for (int positionCounter = 0; positionCounter < 26; positionCounter++) {
lcd.scrollDisplayLeft(); // protáhnout obsah zprávy na displeji zprava do leva.
lcd.print(array2[positionCounter]); // zobrazit zprávu na displeji.
delay(tim); // počkat 500 ms
}
lcd.clear(); // vyčistit displej a přesunout kurzor na začátek.
// vyčistit displej a přesunout kurzor na začátek.
}
Po spuštění programu se na LCD displeji objeví posunující se text.
Pokud nejde na displeji nic vidět, tak je potřeba změnit nastavení odporového trimru (modrý čtverec) na spodní straně displeje.
Obrázek 4: Kontrola podsvícení LCD displeje
Úkol:
Upravte program tak, aby text zobrazovaném na druhém řádku probíhal zleva doprava.
Citace:
Arduino MAXI Starter kit OD BASTLÍŘŮ BASTLÍŘŮM - Lekce 6 Lekce 6 I2C LCD displej