Obsługa wyświetlacza LCD 2x16 przy pomocy Arduino poprzez interfejs I2C.

 

Arduino - LCD - I2C - Moduł LM1602, oparty na układzie PCF8574 umożliwia podłączenie popularnego wyświetlacza LCD 2x16, 4x20 lub 2x8 do dowolnego mikrokontrolera poprzez magistralę I2C. Dzięki takiemu połączeniu zamiast 6 linii (D4, D5, D6, D7, E, RS), użyjemy tylko dwóch. Pozwoli na to zaoszczędzić cenne wyprowadzenia Arduino Uno. Nie musimy także podłączać potencjometru regulacji kontrastu, gdyż znajduje się on już na płytce. LM1602 daje nam kontrolę nad podświetleniem wyświetlacza - możemy je w dowolnym momencie włączać i wyłączać korzystając z odpowiedniej funkcji bibliotecznej (LiquidCrystal I2C).

Do tego projektu będą potrzebne:

 

Wspomnianą wcześniej bibliotekę możemy pobrać z serwisu: https://bitbucket.org/fmalpartida. Ściągnięty plik należy rozpakować, a następnie cały folder LiquidCrystal umieścić w katalogu bibliotek Arduino (libraries), który znajduje się w domyślnie w folderze Dokumenty (domyślna ścieżka w Windows 7 to: C:/Users/nazwa_uzytkownika/Documents/Arduino/libraries).

 

Pobrana biblioteka ma taką samą nazwę jak standardowa, wbudowana w Arduino. Dlatego też po jej instalacji w środowisku Arduino widoczna będzie tylko ta nowa. W celu powrotu do domyślnej wersji, należy nową folder LiquidCrystal  z katalogu Documents/Arduino/libraries.

 

Po instalacji biblioteki, za pomocą przewodów, łączymy moduł z Arduino w następujący sposób:

 

 

LCM1602 Arduino Uno
 VCC 5 V
GND GND
SDA A4
SCL A5

 

 

Wklejamy w środowisko poniższy kod:

 

/*
* LCM1602 & Arduino Uno
* VCC - > 5 V
* GND - GND
* SCL -> A5
* SDA -> A4
*/

#include // standardowa biblioteka Arduino
#include // dolaczenie pobranej biblioteki I2C dla LCD

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Ustawienie adresu ukladu na 0x27


void setup()
{
lcd.begin(16,2); // Inicjalizacja LCD 2x16

lcd.backlight(); // zalaczenie podwietlenia
lcd.setCursor(0,0); // Ustawienie kursora w pozycji 0,0 (pierwszy wiersz, pierwsza kolumna)
lcd.print("Hello, world!");
delay(500);
lcd.setCursor(0,1); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna)
lcd.print("BOTLAND.com.pl");

}

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

 

Następnie wgrywamy kod na płytkę, a na naszym wyświetlaczu pojawi się napis:

z przełączającym się co 5 sekund podświetleniem.

 

Bibliteki używamy w sposób podobny do tej wbudowanej w środowisko Arduino

  • lcd.setCursor(x,x) - ustawia kursor na określoną w nawiasie pozycję
  • lcd.print("xxxxx") - wyświetla na ekranie tekst xxxxx
  • lcd.clear(); - czyści ekran
  • Dodatkowo
    • lcd.backlight() - załącza podświetlenie
    • lcd.noBacklight() - wyłącza podświetlenie

 

W ten prostu sposób tworzysz połączenie Arduino - Wyświetlacz - I2C.

zapraszamy do współpracy!