Lekce 5 – LCD displej

    V dnešní lekci si k Arduinu připojíme LCD displej k zobrazení analogové hodnoty z minulého dílu. K tomu budeme potřebovat nějaký LCD displej s řadičem HD44780. Na trhu je jich spousta a pro naše pokusy jsem vybral typ WH2004A od firmy Winstar. Jedná se o displej se 20 znaky na 4 řádcích. Zapojení pinů těchto displejů se v celku moc neliší. Je však dobré se nejdříve podívat do datasheetu od výrobce. V mém případě je datasheet ke stažení zde

Zapojení displeje

1 Vss (GND)
2 Vdd (+5V)
3 Kontrast (0-5V)
4 RS
5 RW
6 E
7-14   DATA (v našem případě bude LCD pracovat v 4bit módu, takže zapojeny budou pouze D4-D7
15  Podsvícení (5V +) 
16 Podsvícení (GND)

Takže zapojíme displej podle následujícího obrázku:

K řízení LCD dipleje pomocí Arduina máme k dispozici knihovnu, která je již integrována v Editor programu Arduina. Stačí pouze napsat direktivu #include <LiquidCrystal.h>  a LCD v programu nastavit, aby vše fungovalo. Vše se potom ovládá jednoduše pomocí funkcí. K vysvětleníé nejpoužívanějších a nejzákladnějších:

  • LiquidCrystal objektLCD(RS, E, D4, D5, D6, D7); – vytvoří a inicializuje objekt displeje v tomto případě nazván “objektLCD” ( s tímto vytvořeným objektem se dále v programu pracuje) a nastaví kam jsou jednotlivé piny LCD připojeny k Arduinu. Tento objekt se deklaruje jako proměná, tedy na začátku programu, nikoliv do setup() a ani loop().
  • objektLCD.begin(počet znaků, počet řádků); – zapne displej a nastaví počet řádků. V případě displeje s 16 znaky a 2 řádky to bude objectLCD.begin(16,2);. Tato funkce se obyčejně napíše do loop()
  • objectLCD.setCursor(index řádku, index znaku); – posune kurzor na daný řádek a slouipec LCD dipleje. Pro první řádek a  3. znak to bude objectLCD.setCursor(0,2);
  • objectLCD.print(text); – zobrazí na LCD v místě kurzoru daný text. Přiklad objectLCD.print(“Ahoj svete”);
  • další funkce a jejich popis, případně použití, k LCD naleznete na arduino.cc

 

A nyní k našemu programu:


 

    Ještě k zapojení, v mém případě je, dle datasheetu výrobce, napájecí napětí podsvětlení dipleje 4,2V, proto jsem ho připojil přes odpor 100 Ohmu. Kontrast dipleje se řídí napětím přivedeným na LCD k pinu 3. Já jsem tento vývod připojil k zemi a kontrast je maximální. Někdy je kontrast maximální při připojení na 5V. Nutno vyzkoušet nebo napětí řídít pomocí trimru nebo potenciometru. Nutno se opravdu řídit výrobcem, aby Vám vše řádně fungovalo.

Samostatný úkol

     Zkuste se k Arduinu připojit ještě jeden displej, jak to můžete vidět ve videu na konci tohoto článku. 

 

 

6 Komentářů

  1. Honza

    Zdravím, chtěl bych se prosím zeptat, jestli výše uvedená knihovna je vhodná i pro displej 8×2? Díky.

    1. Administrátor (Autor)

      Záleží na řadiči displeje. Nutno vyzkoušet.

  2. Pavel Pelc

    Dobrý den,
    v příkladu 5 – LCD displej se Vám připletl
    jiný obrázek, na druhou stranu chybí schema zapojení
    zdraví
    Pavel Pelc

  3. Rostislav

    Zdravím, prosím Vás jdou nějak zneviditelnit ty obdelníčky na displeji které značí počet znaků a počet řádků ? Jde mi totiž špatně vidět text.

    1. Administrátor (Autor)

      Pokud je to připojeno přes I2C tak na řadiči je trimr, kterým se nastavuje kontrast. Jinak při přímém přípojení přivedením napětí přes trimr, kterým se to nastavuje.

  4. mrfrolik

    Dobrý den,
    přidal bych se k p. Pelclovi, jestli by bylo možné opravit schéma zapojení (tato tabulka s grafem z Excelu to určitě není). Děkuji Pavel Fröhlich

Napsat komentář

Translate »