Wyświetlacz LCD – Sterowanie Arduino

Jest wiele metod przekazywania informacji w kierunku mikrokontroler – użytkownik. Świetlne, dźwiękowe, drganiowe i mechaniczne (np. zegary). Do świetlnych zaliczamy wszelkie diody, lampy oraz wyświetlacze. Tym razem zajmiemy się właśnie wyświetlaczem, a konkretnie wyświetlaczem LCD. Będzie to słynny w świecie Arduino ekran HD44780.

To jest ten wyświetlacz:

Nie będziemy wnikać w to jak on działa. Od razu weźmy się za podłączanie. Mamy tu bardzo dużo styków, aż 16.

Pierwszy, piąty i szesnasty podłączamy do GND. Drugi i piętnasty (z rezystorem 100Ohm) do 5V. Do trzeciego podłączamy środkową nóżkę potencjometru (do regulacji jasności), a 2 pozostałe nóżki potencjometru do GND i 5V. Czwarty i szósty łączymy z np. pinem 13 i 12. Od siódmego do dziesiątego w tym sposobie zostawiamy puste. Od jedenastego do czternastego łączymy do kolejnych pinów, czyli np. 11, 10, 9 i 8.

Wyświetlimy na ekranie napis „Witamy!”. Oto nasz program:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
 
void setup() {
  // ustaw liczbe kolumn I wierszy ekranu
  lcd.begin(16, 2);
  // wyswietl wiadomosc
 
  lcd.print("Witamy!");
}
 
void loop() {
  //wylacz ekran
  lcd.noDisplay();
  delay(500);
  // wlacz ekran
  lcd.display();
  delay(500);
}

Nasz tekst mieści się w ekranie, ale gdy wpiszemy tekst dłuższy niż 16 znaków będzie problem. Rozwiązaniem jest dodanie przesuwania tekstu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
 
void setup() {
  // ustaw liczbe kolumn I wierszy ekranu
  lcd.begin(16, 2);
  // wyswietl wiadomosc
  lcd.print("Przez twe oczy, twe oczy zielone :D”);
  delay(1000);
}
 
void loop() {
  // przesun o 35 pozycji (dlugosc tekstu) w lewo
  for (int positionCounter = 0; positionCounter < 35; positionCounter++) {
    // przesun jedna pozycje w lewo:
    lcd.scrollDisplayLeft();
    // poczekaj chwile:
    delay(150);
  }
 
  // przesun 51 pozycji (dlugosc tekstu + 16) w prawo
  for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
    // przesun jedna pozycje w prawo:
    lcd.scrollDisplayRight();
    // poczekaj chwile:
    delay(150);
  }
 
  // przesun 16 pozycji (16) w lewo
  for (int positionCounter = 0; positionCounter <span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>< 16; positionCounter++) {
    // przesun jedna pozycje w lewo:
    lcd.scrollDisplayLeft();
    // poczekaj chwile:
    delay(150);
  }
 
  delay(1000);
 
}

Źródło : http://blog.mageek.com.pl/elektronika/wyswietlacz-lcd-sterowanie-arduino/