Arduino može podatke, npr. rezultate proračuna ili vrijednosti pročitanje sa raznih senzora, prikazivati na LCD display. Izbor LCD display-a ovisi o vrsti i opsegu podataka koji će biti prikazivani. Na slici ispod je primjer 16x2 LCD display-a koji u dva reda može prikazati po 16 znakova.
Na slici ispod je primjer prikaza fiksnog teksta (hardcoded) na 16x2 LCD display ali tako da se pojavljuje znak-po-znak sa lijeva na desno.
Tekst http://amicus.ba je, u ovom primjeru, upisan direktno u sketch i nije ga moguće mijenjati tokom izvršavanja.
Svaki LCD display ima svoj raspored nižica tako da, tokom spajanja, treba obratiti pažnju na oznake napisane na pločici display-a.
Na slici lijevo je LCD display 16x2 sa oznakom 1602A (V2.0).
LCD display ima paralelni interface što znači da mikrokontroler istovremeno mora manipulisati sa više pinova.
To smanjuje broj senzora koji se mogu priključiti na Arduino jer samo LCD display zauzima šest pinova (ulaza/izlaza).
Za prikaz teksta na LCD display-u, prije svega, u sketch je potrebno uključiti biblioteku LiquidCrystal.h
Ispod je kôd sketch-a koji vrši ispis teksta na 16x2 LCD (kopirajte kompletan kôd ispod u Arduino IDE prozor i upload-ujte ga na Arduino) :
/*
* ISPIS TEKSTA SLOVO PO SLOVO NA LCD DISPLAY 16X2
*
* Autor: Samir Gutić
* URL: http://amicus.ba
* Datum: 5. II 2017.
*/
/*
Raspored pinova:
* LCD RS pin na digitalni pin 12
* LCD Enable pin na digitalni pin 11
* LCD D4 pin na digitalni pin 5
* LCD D5 pin na digitalni pin 4
* LCD D6 pin na digitalni pin 3
* LCD D7 pin na digitalni pin 2
* LCD R/W pin na masu
* Brisanje LCD-a, VO pin (pin 3)
*/
//Uključivanje biblioteke za upravljanje LCD-om
#include <LiquidCrystal.h>
//Deklaracija teksta za ispis na LCD
char nizAmicus[17] = {'h','t','t','p',':','/','/','a', 'm', 'i', 'c', 'u', 's','.','b','a'};
int intOdgoda=250;
//Inicijalizacija biblioteke sa brojevima pinova LCD-a
LiquidCrystal lcdDisplay(12, 11, 5, 4, 3, 2);
void setup() {
//Konfigurisanje broja vrsta i kolona LCD-a
lcdDisplay.begin(16, 2);
}
void loop() {
//Postaviti kursor na poziciju (0,0)
lcdDisplay.setCursor(0, 0);
//Printanje teksta slovo po slovo
for (int i = 0; i < 17; i++)
{
lcdDisplay.print(nizAmicus[i]);
delay(intOdgoda);
}
delay(2000);
//Blinkanje teksta tri puta
lcdDisplay.clear();
delay(500);
lcdDisplay.print("http://amicus.ba");
delay(500);
lcdDisplay.clear();
delay(500);
lcdDisplay.print("http://amicus.ba");
delay(500);
lcdDisplay.clear();
delay(500);
lcdDisplay.print("http://amicus.ba");
delay(500);
lcdDisplay.clear();
delay(1000);
}
U sketch-u iznad, tekst http://amicus.ba se sastoji od 16 znakova a niz čiji elementi su znakovi tog teksta je deklarisan sa veličinom 17 zato što je to niz string tipa i jedno mjesto je rezervisano za NULL znak.
Nakon ispisa svih 16 znakova, ispisati tekst će trepnuti tri puta prije nego što ispis krene iz početka.
Šema spoja elemenata kreirana u Fritzing programu je na slici ispod.
Potenciometar na šemi iznad služi za regulaciju osvijetljenosti LCD-a. Šema spajanja LCD-a 16x2 važi za display 16x2 (1602A).
Na šemi iznad su pinovi LCD-a označeni brojevima od 1 do 16 (sa donje strane pločice display-a).
Kao što se vidi sa šeme iznad, pin 1 LCD-a je spojen na GND, pin2 na +5V, pin3 na srednji kontakt potenciometra, pin 4 na Arduino pin 12, pin 5 na Arduino GND, pin 6 na Arduino pin 11, pin 11 na Arduino pin 5, pin 12 na Arduino pin 4, pin 13 na Arduino pin 3, pin 14 na Arduino pin 2, pin 15, preko otpornika od 220Ω na Arduino +5V i pin 16 na Arduino GND.
U tabeli ispod je raspored i funkcije pojedinih pinova LCD display-a.
Rb. |
LCD pin |
Funkcija LCD pina |
1 |
VSS |
Gnd |
2 |
VDD |
+5V |
3 |
VO |
Kontrast |
4 |
RS |
RS (Register Select Pin) |
5 |
RW |
R/W (Read/Write Pin) |
6 |
E |
E (Clock Enable Pin, enable signal) |
7 |
D0 |
Sabirnica za podatke |
8 |
D1 |
Sabirnica za podatke |
9 |
D2 |
Sabirnica za podatke |
10 |
D3 |
Sabirnica za podatke |
11 |
D4 |
Sabirnica za podatke |
12 |
D5 |
Sabirnica za podatke |
13 |
D6 |
Sabirnica za podatke |
14 |
D7 |
Sabirnica za podatke |
15 |
A |
+5V (LED+ za pozadinsku rasvjetu) |
16 |
K |
GND (LED- za pozadinsku rasvjetu) |
Električna šema spoja je na sljedećoj slici.
Ispod je video koji prikazuje kako funkcioniše ispis teksta slovo po slovo na LCD.
Potrebne komponente:
1 x Arduino UNO
1 x Breadboard (mala)
1 x otpornik 220Ω
1 x potenciometar 10KΩ
1 x LCD display 16x2 (1602A)
Žice za spajanje
9V napajanje