[006] Wyświetlacz alfanumeryczny - pierwszy napis

[006] Wyświetlacz alfanumeryczny - pierwszy napis

Skoro już wiemy czym jest wyświetlacz alfanumeryczny, czas wyświetlić jakiś napis. Przypomnę, że w poprzednim artykule podłączyliśmy go do naszego Arduino według następującego schematu:


  • RS <> PIN 2

  • EN <> PIN 3

  • D4 <> PIN 4

  • D5 <> PIN 5

  • D6 <> PIN 6

  • D7 <> PIN 7

  • GN <> GDN (masa)

  • 5V <> 5V (zasilanie)

Nie ma znaczenia, czy wybierzemy moduł Arduino Uno, Nano czy podobny. Następnie podłączamy płytkę Arduino do złącza USB. Nic się nie stanie, poza tym że tło wyświetlacza powinno się zaświecić, a na samym wyświetlaczu powinna się ujawnić struktura pikseli. Chyba już czas najwyższy zająć się programowaniem.

Odpalamy znane już nam środowisko Arduino IDE i kasujmy wszystko, co zobaczymy w oknie edytora. Na razie nasz projekt będzie zupełnie pusty i warto od razu nadać mu imię. W tym celu trzeba kliknąć w „Plik/Zapisz jako…” i zapisać go pod jakąś wybraną przez nas nazwą.

Arduino może wykonywać pewne rozkazy czy też użyjmy słowa: procedury. Będę je przedstawiał w kolejnych artykułach, a niektóre poznamy za chwilę. Jednak ich ilość jest skończona i jeśli będziemy chcieli zająć się czymś bardziej złożonym – a tym jest tutaj wyświetlacz – będziemy musieli dołożyć dodatkowe, zwane bibliotekami. Zacznijmy zatem od dołożenia niezbędnej biblioteki, pisząc:

#include <LiquidCrystal.h>

Co to znaczy? #include to taki rozkaz, który każe programowi pobrać bibliotekę. Jej nazwa jest umieszczona w nawiasie trójkątnym. Bardzo ważną rzeczą jest przestrzeganie tych wszystkich reguł. Jeśli nawias jest trójkątny, to nie może być okrągły. Ktoś kiedyś wymyślił sobie akurat taki nawias i niestety tak już musi zostać.

LiquidCrystal.h to biblioteka, którą dostaliśmy od razu przy okazji ściągania całego środowiska, a służy do operowania wyświetlaczem. Czasem trzeba takie biblioteki ściągać osobno z internetu, ale nie tym razem. Czas na kolejną linię.

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

Program już będzie wiedział co znaczy LiquidCrystal, więc możemy teraz powiedzieć mu jak nasz wyświetlacz jest podłączony do Arduino. Bo wspominałem, że można go podłączyć w dowolny sposób.

Rozkaz LiquidCrystal lcd umożliwia to. W nawiasie podaje się numery pinów dla kolejnych wejść wyświetlacza, czyli RS, EN i D4, D5, D6 oraz D7. Ponieważ podłączyliśmy je do pinów od drugiego do siódmego, wpisujemy kolejno te liczby. Równie dobrze możemy odwrócić wtyczkę i wpisać liczby od tyłu – też będzie dobrze. Jeśli się pomylimy, niczego nie zepsujemy, tylko program nie zadziała.

Odejdźmy na chwilę od naszego problemu. Każdy program na Arduino musi zawierać dwa bloki. Pierwszy zaczyna się od słów void setup, a drugi - void loop:

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {}
void loop() {}

O co w tym chodzi? Wszystkie instrukcje, które znajdą się w nawiasie klamrowym po wyrażeniu void setup() wykonają się raz, po czym program przejdzie do tego, co znajdzie się w nawiasie klamrowym po wyrażeniu void loop() i będzie pracować już w kółko, bez końca. Prawdę powiedziawszy sensu to nie ma, ale tak musi być i koniec. Nie czas tu na dyskusje, dlaczego tak.

Mamy jeszcze trzeci blok, nie oznaczony jakoś specjalnie, a znajdujący się na początku szkicu, który już wypełniliśmy dwoma wierszami. Ale to tak naprawdę nie są rozkazy dla procesora, a dla kompilatora, który nasze bazgroły przetłumaczy na język zrozumiały przez mikroprocesor. On stąd pobierze wiedzę na przykład jak podłączony jest wyświetlacz.

Wpiszmy zatem coś, co już naprawdę będzie rozkazem:

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
  lcd.begin(16, 2);
}
void loop() {}

Komenda lcd.begin(16, 2) jest krótka, ale robi dużo. Inicjuje wyświetlacz, przygotowując go do przyjmowania tekstów i wyświetlania ich. W rzeczywistości jest to sporo pracy, ale nie dla nas, bo my wpisujemy tylko tę linię.

Przeanalizujmy ten wiersz dokładniej, bo jakby nie było, to nasz pierwszy rozkaz w życiu. lcd – znaczy, że rozkaz pochodzi z puli, którą dostarczyła biblioteka LiquidCrystal.h Po kropce jest dokładne określenie, o jaki rozkaz z tej puli chodzi. Wszystkie one są opisane w dokumentacji biblioteki. W nawiasach znajdują się tak zwane argumenty. Będą to liczby lub teksty, które mają jakieś znaczenie dla rozkazu. W tym wypadku rozkaz ten wymaga podania ilości kolumn i wierszy wyświetlacza. Zatem jeśli ktoś ma wyświetlacz o innych wymiarach, wpisuje sobie tu własne dane. Argumenty oddzielamy przecinkami, a rozkaz zawsze kończy się średnikiem. Odstępy mogą tu być, ale nie muszą.

Czas na finał. Oto już ostatnia linia. Tym razem skorzystamy z rozkazu dotyczącego wyświetlacza o nazwie lcd.print. Służy ona do pisania tekstów. Argumentem tym razem jest tekst, a teksty bierze się w cudzysłów. Reszta wygląda podobnie jak w rozkazie wyżej.

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup() {
  lcd.begin(16, 2);
  lcd.print("Dzien dobry!");
}
void loop() {}

Koniec, program został napisany. Klikamy w drugą ikonkę na górze, dzięki czemu skompiluje się i po chwili wyląduje w Arduino. A oto już nagroda.

Podsumujmy nasze działania: Najpierw dołączyliśmy bibliotekę, ponieważ język Arduino nie posiada jej wśród rozkazów. Potem powiadomiliśmy kompilator w jaki sposób wyświetlacz został podłączony. Kolejno wywołaliśmy rozkaz inicjacji wyświetlacza, od razu przy okazji informując program ile jest kolumn, a ile wierszy no i na końcu, gdy był już gotowy do współpracy, wysłaliśmy tekst do wyświetlenia.

Piękne, ale mało praktyczne. Takie niezmieniające się teksty to możemy sobie wydrukować na tekturce i wyjdzie na to samo. Na kolejne ćwiczenia, już bardziej użyteczne, zapraszam do kolejnego artykułu.

Płytka edukacyjna TME-EDU-ARD-2Płytka edukacyjna TME-EDU-ARD-2Sprawdź tutaj

Przeczytaj również

Nasi partnerzy

TMETech Master EventTME EducationPoweredby
Copyright © 2024 arduino.pl