3

Znakový LCD displej (16×2, 20×4 a další)

V tomto návodu si ukážeme, jak zprovoznit znakový displej (16×2, 20×4…, běžně také označované 1602, 2004…). Tyto displeje jsou nejčastěji založené na řadiči HD44780, případně na některém z jeho ekvivalentů – například KS0066, SPLC780. Arduino IDE v sobě již má zabudovanou knihovnu pro provoz těchto displejů (LiquidCrystal), není tedy potřeba žádnou knihovnu stahovat.

Tyto displeje mají oproti verzi s připájeným převodníkem na I2C větší počet vodičů, ale i vyšší rychlost (poslání dat do LCD je rychlejší než u I2C verze). Displej jde připojit ve 4b či 8b režimu, zde budeme používat (o něco pomalejší) 4b režim, který vyžaduje šest datových vodičů (RS, E, D4-D7), 8b režim jich vyžaduje 10 (RS, E, D0-D7. Pin R/W je zde připojený k zemi (GND), protože data z displeje nepotřebujeme zpětně číst).

Na neinicializovaném displeji by se měla objevit jedna řada či dvě řady (v případě 4 řádkových displejů) černých čtverečků. Pokud se místo námi zadaných dat zobrazují tyto černé čtverečky, je displej špatně zapojený či je chyba v kódu. Pokud se na displeji neukazuje nic, samé černé čtverečky či špatně čitelný text, je potřeba nastavit jeho kontrast trimrem (viz. níže). Trimr (případně potenciometr) můžeme použít prakticky jakýkoliv s odporem 1-20 kOhm.

Spotřeba 16×2 displeje se pohybuje typicky někde okolo 20 mA, většinu spotřeby tvoří LED podsvícení. Spotřeba 20×4 displeje je samozřejmě o něco větší. Spotřeba samotného 16×2 displeje bez podsvícení je typicky pouze cca 2 mA. Displeje se vyrábí běžně ve verzích s černým textem na zeleném pozadí či s bílým textem na modrém pozadí. Vyrábí se i v jiných barvách, ale ty nejsou tak běžné.

Také je dobré si dát pozor na to, že tyto displeje neumí zobrazovat diakritiku, text na nich zobrazujte tedy bez hacku a carek. Pokud se s tím chcete patlat, tak jdou definovat i vlastní znaky a diakritika jde dodělat tímto způsobem. Displej má paměť na 8 vlastních znaků.

V případě, že nechcete používat již hotovou knihovnu či vás řadič v těchto LCD zajímá více, můžete se podívat na datasheet řadiče HD44780.

Budeme potřebovat:

  • Propojovací dráty, kontaktní pole (pokud to budeme stavět na kontaktním poli)
  • Znakový LCD displej
  • 10 kOhm trimr či potenciometru (lze použít 1-25 kOhm)
  • Rezistor o hodnotě cca 150 ohm (většinou není potřeba)
  • Arduino
  • Všechny potřebné součástky a další věci k Arduinu můžete koupit zde – v e-shopu postavrobota.cz.

Zapojení displeje: 

  • (1) VSS: GND na Arduinu, jeden krajní pin 10k trimru
  • (2) VDD: +5V na Arduinu, druhý krajní pin 10k trimru
  • (3) VO: střed (běžec) 10k trimru
  • (4) RS: digitální pin 12 na Arduinu
  • (5) RW: GND
  • (6) E: digitální pin 11 na Arduinu
  • (7) D0: můžeme nechat nezapojený, případně připojit na zem (GND)
  • (8) D1: to samé
  • (9) D2: to samé
  • (10) D3: to samé
  • (11) D4: digitální pin 5 na Arduinu
  • (12) D5: pin 4
  • (13) D6: pin 3
  • (14) D7: pin 2
  • (15) A: +5V, pokud nemá displej zabudovaný rezistor před podsvícením (zatím jsem ovšem neměl v ruce modul, který by ho tam neměl), můžete předřadit rezistor 150 ohm. Pokud ho tam dáte i když ho už displej má zabudovaný, sníží se jeho jas.
  • (16) K: GND

Ilustrace a schéma zapojení z programu Fritzing:

Arduino uno hd44780

Arduino uno hd44780 sch

 

Testovací kód:

/*
 The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

// vlozeni knihovny:
#include <LiquidCrystal.h>

// inicializace knihovny, vytvoření objektu - čísla udávají čísla pinů, ke kterým je připojen LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
 // start LCD, čísla udávají velikost displeje (16x2)
 lcd.begin(16, 2);
 // výpis textu na displej
 lcd.print("Ahoj svete!");
}

void loop() {
 // nastavení kurzoru na 1. řádek a 0. sloupec (počítají se od nuly)
 lcd.setCursor(0, 1);
 // výpis sekund od zapnutí Arduina
 lcd.print(millis() / 1000);
}

Foto displeje v provozu:

IMG_20170817_150613

Arduino Uno, Mega, Senzory, Moduly za

VÝHODNOU CENU

Saksun

  1. This message is posted here using XRumer + XEvil 4.0
    XEvil 4.0 is a revolutionary application that can bypass almost any anti-botnet protection.
    Captcha Recognition Google (ReCaptcha-1, ReCaptcha-2), Facebook, Yandex, VKontakte, Captcha Com and over 8.4 million other types!
    You read this – it means it works! 😉
    Details on the official website of XEvil.Net, there is a free demo version.

  2. Rattling nice pattern and good subject matter, hardly anything else we need D. fbbcbekgfeke

  3. This message is posted here using XRumer + XEvil 4.0
    XEvil 4.0 is a revolutionary application that can bypass almost any anti-botnet protection.
    Captcha Recognition Google (ReCaptcha-1, ReCaptcha-2), Facebook, Yandex, VKontakte, Captcha Com and over 8.4 million other types!
    You read this – it means it works! 😉
    Details on the official website of XEvil.Net, there is a free demo version.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *