Obsługa LCD za pośrednictwem magistrali I2C


Tomasz Bartuś



2016-09-22
Obsługa LCD za pośrednictwem magistrali I2C

Wstęp

W najprostszym przypadku współpraca Arduino z modułem LCD (8 × 2, 16 × 2, 20 × 2) odbywa się za pośrednictwem 16 pinów, które należy odpowiednio ze sobą połączyć (zob.: Termometr z wykorzystaniem czujnika DS18B20 i wyświetlacza 16 × 2). W celu ograniczenia dużej liczby połączeń można wykorzystać komunikację za pośrednictwem magistrali I2C. Powoduje to ograniczenie liczby niezbędnych połączeń do 4: SCL (serial clock), SDA (serial data), VCC i GND (Fig. 1). Podłączenie wymaga użycia dodatkowego urządzenia - konwertera I2C (Fig. 2). Płytka prototypowa Arduino posiada dedykowane piny służące do komunikacji z magistralą I2C (SCL i SDA), które należy połączyć z odpowiednimi pinami konwertera. Z kolei konwerter należy podłączyć na płytce prototypowej z wyświetlaczem LCD. Poza zaletą wynikającą z ograniczenia używanych pinów Arduino, dodatkowym atut takiego rozwiązania wiąże się z brakiem potrzeby montażu potencjometru regulującego kontrast wyświetlacza, w który standardowo jest wyposażony konwerter LCM1602.

Współpraca LCD z Arduino za pośrednictwem magistrali I2C
Fig. 1. Współpraca LCD z Arduino za pośrednictwem magistrali I2C

Lista części

  1. platforma prototypowa Arduino (tu Leonardo),
  2. wyświetlacz LCD 16 × 2,
  3. konwerter I2C LCM1602 (Fig. 2),
  4. płytka prototypowa,
  5. przewody

Termometr z zapisem pomiarów na kartę SD
Fig. 2. Układ konwertera I2C LCM1602

Montujemy układ wg. Tab. 1.

Arduino LeonardoLCM1602
5 VVCC
GNDGND
SDASDA
SCLSCL

Po podłączeniu zasialania, wyświetlacz ulega podświetleniu. Możemy teraz za pomocą potencjometra znajdującego się na konwerterze I2C zmienić jego kontrast. Aby skomunikować wyświetlacz LCD z Arduino za pośrednictwem konwertera I2C należy:

  1. Pobrać bibliotekę New LiquidCrystal odpowiedzialną za obsługę LCD za pomocą I2C. Bibliotekę należy rozpakować do folderu. Uwaga!: Nowa wersja pobranej biblioteki ma inną nazwę od standardowej biblioteki LiquidCrystal wbudowanej w Arduino IDE i nie istnieje potrzeba zmiany jej nazwy, jednak należy zachowac ostrożność.
  2. Teraz można bezpiecznie zaimportować nową bibliotekę do środowiska Arduino IDE. Robimy to z poziomu aplikacji Arduino IDE. Wchodzimy do menu głównego

    > Szkic > Importuj bibliotekę > Add Library
  3. Należy poznać adres ekranu LCD (standardowo: 0x27)

Teraz można już przejść do wgrania szkicu do Aruino.

Szkic:

#include <Wire.h>   
#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Ustawienie adresu ukladu na 0x27

void setup()  
{
  lcd.begin(16,2);   
  lcd.backlight(); // zalaczenie podwietlenia 
  lcd.setCursor(0,0); 
  lcd.print("LCD & I2C");
  delay(500);
  lcd.setCursor(0,1); 
  lcd.print("**********");
}

void loop() 
{
   lcd.backlight(); // zalaczenie podswietlenia
   delay(5000);
   lcd.noBacklight(); // wylaczenie podswietlenia
   delay(5000);
}

 
 

Doktorat

Spis treści
Rozdzialy
Abstrakt [pl]
Abstract [eng]