Lekce 5 - LCD displej

17.01.2013 18:05

    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:

 

#include  <LiquidCrystal.h>    //importuje knihovnu LiquidCrystal
 
// inicializuje lcd s definicí připojení na piny.
// MojeLCD1(RS,Enable, D4, D5, D6, D7)
 
LiquidCrystal MojeLCD1(2,3,4,5,6,7); 
 
 
const int analogPin = A0;  // Analogový vstup je nastaven na pi A0
int hodnota = 0;           // Proměná pro hodnotu přečtenou z A0
 
 
void setup() {
  // nastaví typ displeje na 20 znaků a 4 řádky (upravte dle sebe)
  MojeLCD1.begin(20, 4);
  
  MojeLCD1.print("arduino8.webnode.cz"); // napíše text "arduino8.we...
}
 
void loop() {
  
  hodnota = analogRead(analogPin);  // přečte hodnotu z A0
  MojeLCD1.setCursor(0,2);          // nastaví kurzor na první řádek a třetí znak
  MojeLCD1.print("A0 = ");          // napíše text A0 = 
  MojeLCD1.print(hodnota);          // napíše hodnotu z A0
  MojeLCD1.print(" ");              // napíše mezeru za text
  
  delay(100);                       // čekej 300ms                    
}
 
 
 
 
 
    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 diplej jak to můžete vidět ve videu na konci tohoto článku. 

 

Zpět

Diskusní téma: Lekce 5 - LCD displej

Datum
Vložil
Titulek

Lcd

Dobrý den, dostal se mi do rukou 4 řádkový LCD HB 10502-B chtěl bych ho připojit k Arduinu uno, ale nevím jak má totiž 21vývodů místo 16-ti. Děkuji za radu.

Datum
Vložil
Titulek

Re: Lcd

no najdi si datasheet k danemu modelu a zbytek je jednoduchý využiješ jen potřebné vývody použij bud propojky a nebo druhou stranu nepájivého pole jsou od sebe odděleny takže pokud máš dostatečně velké pole můžeš relaizovat i dva projekty najednou ;-)

Datum
Vložil
Titulek

LCD

Prosím o pomoc. Mám LCD: PC2004LRS-ASO-B. Ako ho mám pripojiť?

Datum
Vložil
Titulek

Re: LCD

Datasheet je na adrese:
https://pdf1.alldatasheet.com/datasheet-pdf/view/89750/POWERTIP/PC2004LRS-BSO-B.html

zapojení bude podobné nebo stejné. Koukni na datasheet.

Datum
Vložil
Titulek

Koment

Pekné, páčia sa mi vaše príspevky a témy. Dostanete sa aj na čosi také ako vypisovanie hodnôt na ethernet prípadne ako riadiť relé cez web po prihlásení? Ďakujem

Datum
Vložil
Titulek

Odpověď

Samozřejmě, dostane. Ale pěkně postupně. :-)

<< 1 | 2

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.