Wstęp
Opisywany wyświetlacz jest jednym z najbardziej rozpowszechnionych i wykorzystywanych alfanumerycznych wyświetlaczy. Posiada on sterownik HD44780.
Wykorzystywany konwerter pozwala na zmniejszenie linii danych z 8 (bądź częściej 4) na zaledwie 2. Oprócz tego nie trzeba dodatkowo podłączać podświetlenie oraz pozostałych pinów wyświetlacza.
Podłączenie
GND - Pin GND Arduino
VCC - Pin 5V Arduino
SDA - Pin Arduino A4
SCL - Pin Arduino A5
Biblioteka
Link do pobrania biblioteki został wklejony w pierwszym akapicie w przykładzie poniżej.
Biblioteka pozwala na obsługę takich komend jak [1]:
- LiquidCrystal() - funkcja odpowiedzialna za inicjalizację całego wyświetlacza;
- begin() - przesyła informacje do programu odnośnie ilości wierszy i kolumn;
- clear() - czyści wyświetlacz;
- home() - umieszcza kursor w prawym górnym rogu wyświetlacza;
- setCursor() - ustawia pozycje kursora
- write() - wyswietla dane na wyswietlaczu
- print() - wyświetla wprowadzony do funkcji tekst;
- cursor() - wyświetla kursor na ekranie
- noCursor() - wyłącza wyświetlanie kursora;
- blink() - włączenie migania kursora;
- noBlink() - wyłączenie migania kursora;
- display() - włącza wyświetlacz po tym jak został wyłączony przy użyciu funkcji noDisplay();
- noDisplay() - wyłącza wyświetlacz;
- scrollDisplayLeft() - przesuwa zawartość wyświetlacza w lewo;
- scrollDisplayRight() - przesuwa zawartość wyświetlacza w prawo;
- autoscroll() - automatyczne przesuwanie tekstu, nie wymazuje tekstu już wpisanego;
- noAutoscroll() - wyłączenie automatycznego przesuwania;
- leftToRight() - ustawia kierunek wpisywanego tekstu od lewej do prawej;
- rightToLeft() - odwrotnie niż funkcja powyżej;
- createChar() - stworzenie tablicy z wyświetlanym znakiem.
Wszystkie dodatkowe informacje odnośnie parametrów każdej z dostępnych funkcji znajdują się na stronie.
Przykład 1
Programy zostały przetestowane w oprogramowaniu Arduino IDE 1.6.5. r5, pobrana biblioteka to Liquid_Crystal_V1.2.1. (Można ją pobrać stąd: LIB).
Po pobraniu biblioteki należy ją wgrać do oprogramowania Arduino poprzez wybranie następującej opcji: Szkic -> Include Library -> Add .ZIP Library....
W przykładzie 1 przedstawię prosty program do obsługi tego wyświetlacza. Będzie on wyświetlał wpisany w programie tekst na ekranie wyświetlacza.
//Dołączenie potrzebnych bibliotek #include <Wire.h> #include <LiquidCrystal_I2C.h> //Ustawienie adresu układu LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { //Rozpoczęcie pracy wyświetlacza lcd.begin(16,2); //Włączenie podświetlania lcd.backlight(); //Ustawienie kursora w pozycji poczatkowej lcd.setCursor(0,0); //Wyswietlenie stalej lcd.print("Hi"); delay(500); //Ustawienie kursora w drugim wierszu lcd.setCursor(0,1); lcd.print("Dziala!"); //Przeskoczenie do 1 linii ale do innej pozycji lcd.setCursor(3,0); lcd.print("Skok"); } void loop() { //Nic nie robi }
Przykład 2
Drugi przykład zawiera prezentację działania wybranych funkcji wyświetlacza. Wszystkie informacje zostały zawarte w komentarzach w programie.
//Dołączenie potrzebnych bibliotek #include <Wire.h> #include <LiquidCrystal_I2C.h> //Ustawienie adresu układu LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); void setup() { //Rozpoczęcie pracy wyświetlacza lcd.begin(16,2); //Włączenie transmisji szeregowej Serial.begin(9600); //Włączenie podświetlania lcd.backlight(); //Ustawienie kursora w pozycji poczatkowej lcd.setCursor(0,0); //Wyswietlenie stalej lcd.print("Hi"); delay(2000); //Wylaczenie podświetlania lcd.noBacklight(); delay(2000); lcd.backlight(); //Czyszczenie ekranu lcd.clear(); //Wyświetlenie kursora lcd.cursor(); //Zmiana położenia kursora lcd.setCursor(6,1); delay(2000); //Wyłączenie kursora lcd.noCursor(); delay(2000); //Miganie kursora lcd.blink(); lcd.setCursor(0,0); delay(2000); lcd.noBlink(); } void loop() { //Jeśli dane są dostępne wtedy //zwróć wpisane dane na wyświetlacz if(Serial.available()) { lcd.write(Serial.read()); } }
Biblioteka
[1] https://www.arduino.cc/en/Reference/LiquidCrystal