LCD displej s radičom HD44780: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
|||
Riadok 22: | Riadok 22: | ||
<source lang="arduino"> | <source lang="arduino"> | ||
#include <LiquidCrystal.h> | #include <LiquidCrystal.h> | ||
LiquidCrystal lcd (2,3,4,9,10,11,12) | // connection RS R/W E D4 D5 D6 D7 | ||
LiquidCrystal lcd ( 2, 3,4, 9,10,11,12); | |||
// define some user characters | |||
byte smiley[8] = { | byte smiley[8] = { | ||
0b00000, | 0b00000, | ||
Riadok 44: | Riadok 34: | ||
0b10001, | 0b10001, | ||
0b01110, | 0b01110, | ||
0b00000 | 0b00000 }; | ||
}; | |||
byte | byte step1[8] = { | ||
0b01100, | |||
0b01100, | |||
0b00000, | 0b00000, | ||
0b01110, | 0b01110, | ||
0b11100, | |||
}; | 0b01100, | ||
0b11010, | |||
0b10011}; | |||
byte | byte step2[8] = { | ||
0b01100, | |||
0b01100, | |||
0b00000, | |||
0b01100, | |||
0b01100, | |||
0b01100, | |||
0b1100, | |||
0b01110}; | |||
void setup() { | void setup() { | ||
// | lcd.begin(16, 2); // init LCD + set number of columns and rows | ||
lcd.createChar(1, smiley); // create a new characters | |||
lcd.createChar(3, step1); | |||
lcd.createChar(4, step2); | |||
lcd.createChar(1, smiley); | |||
lcd.createChar(3, | |||
lcd.createChar(4, | |||
lcd.setCursor(0, 0); // set the cursor to the top left | |||
lcd.setCursor(0, 0); | |||
lcd.write(byte(1)); // smiley | |||
lcd.print(" UAMT FEI STU "); // normal text | |||
lcd.write((byte)1); // smiley | |||
} | } | ||
void loop() { | void loop() { | ||
lcd.setCursor(2, 1); // set curspr to line 2 col 3 | |||
lcd.print("time: "); // print the number of seconds since reset: | |||
lcd.print("time: "); | |||
lcd.print(millis() / 1000); | lcd.print(millis() / 1000); | ||
lcd.setCursor(12, 1); | |||
lcd.write(3); // draw the little man | |||
delay(delayTime); | |||
lcd.setCursor(12, 1); | |||
lcd.write(4); | |||
delay(delayTime); | |||
} | |||
</source></tab> | |||
<tab name="AVR C"><source lang="cpp"> | <tab name="AVR C"><source lang="cpp"> | ||
Verzia z 13:46, 29. január 2021
Pripojenie
Schéma zapojenia
Pokúste sa najprv pripojiť displej len podľa schémy zapojenia. Ak sa vám to nepodarí, alebo si chcete byť naistom, skontrolujte si zapojenie aj podľa zapojovacej schémy.
To, či máte displej pripojený správne si môžete vyskúšať týmto demo programom, ktorý preložíte a nahráte z prostredia Arduino.
#include <LiquidCrystal.h>
// connection RS R/W E D4 D5 D6 D7
LiquidCrystal lcd ( 2, 3,4, 9,10,11,12);
// define some user characters
byte smiley[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b10001,
0b01110,
0b00000 };
byte step1[8] = {
0b01100,
0b01100,
0b00000,
0b01110,
0b11100,
0b01100,
0b11010,
0b10011};
byte step2[8] = {
0b01100,
0b01100,
0b00000,
0b01100,
0b01100,
0b01100,
0b1100,
0b01110};
void setup() {
lcd.begin(16, 2); // init LCD + set number of columns and rows
lcd.createChar(1, smiley); // create a new characters
lcd.createChar(3, step1);
lcd.createChar(4, step2);
lcd.setCursor(0, 0); // set the cursor to the top left
lcd.write(byte(1)); // smiley
lcd.print(" UAMT FEI STU "); // normal text
lcd.write((byte)1); // smiley
}
void loop() {
lcd.setCursor(2, 1); // set curspr to line 2 col 3
lcd.print("time: "); // print the number of seconds since reset:
lcd.print(millis() / 1000);
lcd.setCursor(12, 1);
lcd.write(3); // draw the little man
delay(delayTime);
lcd.setCursor(12, 1);
lcd.write(4);
delay(delayTime);
}
ToDo
Na displeji by sa vám mal zobraziť text, počítadlo a jednoduchá animácia ako na obrázku
Q: Čo s nepoužitými vstupmi?
A1: pripojiť na definovanú úroveň, najlepšie cez pull-up/pull-down rezistor.
A2: Keďže podľa datasheetu[REF 1] má riadiaci obvod Hitachi HD44780 zapojené pull-upy interne, tak nie sú potrebné.
A3: Keďže však nevieme, aký riadiaci čip je v skutočnosti použitý, pre istotu ich môžeme zapojiť.
Vysvetlivky, prečo sú nezapojené vstupy nebezpečné:
Nezapojené (plávajúce) vstupy sú oveľa citlivejšie na ESD (elektrostatický výboj) a taktiež zvyšujú zbytočne spotrebu obvodu. Odporúča sa pripojenie cez tzv. pull-up odpor priamo na zem, prípadne aj bez odporu. Druhá možnosť, pripojenie na kladné napájacie napätie je tiež možná, ale v tomto prípade sa vynechanie pull-up rezistora neodporúča.
Toto je jeden z príkladov mnohých takýchto odporúčaní[REF 2] priamo od firmy NxP:
5.3 Line Termination and Pullup/Pulldown Resistors
|
Literatúra
- ↑ Hitachi HD44780U Dot Matrix Liquid Crystal Display Controller/Driver. ADE-207-272(Z), Japan, 1999.
- ↑ Murray Stewart: AN3393: MC9RS08KA Application Hints. NxP/Freescale Semiconductor Application Note, 2007.