Kurs Arduino #8: Obsługa LCD 16×2 20×4 HD44780

KURS ARDUINO#8Cześć,
do tej pory z naszym Arduino komunikowaliśmy się tylko po przez UART, było ono w stanie zapalać i gasić diody po spełnieniu jakiegoś warunku. Nie mniej jednak żyjemy już w czasach, gdzie prawie każde urządzenie elektroniczne posiada wyświetlacz, przez co widzimy co nasze urządzenie do nas mówi. W dzisiejszej części kursu pokaże Wam jak obsługiwać ekran LCD na sterowniku HD44780 (wyświetlacze 16×2, 20×4 itp.). Zapraszam.

 

 

 

Spis treści:

  1. Jak podłączyć LCD do Arduino ?
  2. Potrzebne funkcje do obsługi LCD
  3. Hello World!
  4. Dodatkowe funkcje dla wyświetlacza LCD

Co będziemy potrzebować do tej części kursu:

  • Arduino
  • Wyświetlacz LCD HD44780
  • potencjometr 10k ohm x2
  • rezystor 220 ohm x2
  • diody LED
  • zestaw przewodów połączeniowych

1. Jak podłączyć LCD do Arduino ?

Na ten temat pisałem już kiedyś. Warto się zapoznać z tym poradnikiem, w którym dowiesz się jak poprawnie podłączyć ekran i mieć pewność, że go nie uszkodzisz ;)

2. Potrzebne funkcje do obsługi LCD

W pierwszej kolejności, aby móc obsługiwać nasz ekran to potrzebujemy wstawić/zaimportować do naszego programu bibliotekę LiquidCrystal.h, w której znajdują się wszystkie funkcje obsługi ekranu.

Gdy już to mamy to musimy zdefiniować w jakim trybie chcemy obsługiwać nasz ekran. Mamy do dyspozycji cztery tryby:

1.  4-bitowy z pinami RS i E


2. 4-bitowy z piami RS, RW i E


3. 8-bitowy z pinami RS i E


4. 8-bitowy z pinami RS, RW i E

Zatem który wybrać ? Tak właściwie to możemy każdy, bo efekt końcowy będzie taki sam i nie ma to większego znaczenia. Wiadomo jak skorzystamy z wariantu 1. to wykorzystamy tylko 6 pinów Arduino, a jak z 4. wariantu to 11 pinów, także właściwie to tutaj może decydować nasz projekt, ile wykorzystamy w nim peryferiów i ile pinów tak na prawdę potrzebujemy. Możemy również skorzystać z ekspandera I2C, wtedy zużyjemy tylko 2 piny, ale o tym to za niedługo napiszę ;)

Gdy już wybraliśmy sposób komunikacji z LCD to teraz musimy ustalić jego rozdzielczość. Z pomocą przychodzi nam funkcja lcd.begin():

Aby nasz ekran był dobrze zaincjalizowany to musimy go wyczyścić, czyli usunąć wszelkie informacje z jego buforu. Pytanie dlaczego ? Ano dlatego, żeby podczas uruchamiania naszego urządzenia na ekranie wszystko się wyświetlało w odpowiedni sposób, bez żadnych „krzaczków”, przesunięć itp.