LCD[0] - LCD[3]


HD44780 vagy kompatibilis chippel szerelt LCD kijelző(k) használatát teszi lehetővé a parancs. Direktbe kötve illetve I2C interfésszel is használható. Setup/Peripheral menüben ki kell választani a Paralell / I2C módot, I2C esetén az SCL, SDA lábat beállítani, meg kell adni az interfész címét, ami a panelen levő A0, A1, A2 forrszemek átkötésével módosítható, default: 27. Bootoláskor soros terminálban látszanak a buszon levő eszközök címei.
Paralell bekötés:
LCDWeMos
GNDGND
Vcc5V
VeeContrast
RSD3
R/WGND
ESetup E
D4D0
D5D5
D6D6
D7D7

Kontraszt a Vee lábbal változtatható. GND pontra kötve általában jó. Ha nem, egy potméterrel, vagy a Setup menüben beállított Contrast GPIO használatával állítható. Háttérvilágításhoz soros ellenállás, ~56Ω ajánlott. Több kijelzőnek az E lábán kívül a többit párhuzamosan kell kötni. A 40x4 kijelző két független 40x2 kijelzőnek minősül, két E lába van. A legtöbb kijelző Vcc 3.3V feszültséggel nem működik.

LCD[0](CLR)
Törli a kijelzőt

LCD[0](L,0)Left
Balra igazítva ír az első sorba.
LCD[0](L3,0)Left3
Balra igazítva ír az első sorba 3 karakter margóval.
LCD[0](&L9,0)rewrite
Balra igazítva ráír az első sorra.
LCD[0](R,0)Right
Jobbra igazítva ír az első sorba.
LCD[0](C,0)Center
Középre ír az első sorba.
LCD[0](C,1)Line 2
Középre ír a második sorba.
LCD[0](CLR,C,0)Clean screen
Törli a kijelzőt, középre ír az első sorba.

LCD[0](CLR,L,0)Á É Í Ó Ö Ő Ú Ü
LCD[0](CLR,L,0)Ű á é í ú ü ó ö
LCD[0](CLR,L,0)ő ű Æ à â å Ç ç
LCD[0](CLR,L,0)Ë è ê ë î Ø Ò Õ
LCD[0](CLR,L,0)ò õ ø û ù æ ß Â
LCD[0](CLR,L,0)Ä Å Î č Č Ğ ğ Đ
LCD[0](CLR,L,0)đ İ ı Š š Ş ş Ž
LCD[0](CLR,L,0)ž Ș ș Ț ț °
Ékezetes betűk.
Max 8 különböző ékezetes/egyedi karakter használható egyszerre! 8 különböző után más, az előző nyolctól eltétő speciális karakter használatához törölni kell a kijelzőt megjelenítés előtt.

LCD[0](CLR,L,0)%0 %1 %2 %3 %4 %5 %6 %7
LCD[0](CLR,L,0)%8 %9 %A %B %C %D %E %F
LCD[0](CLR,L,0)%G %H %I %J %K %L %M %N
LCD[0](CLR,L,0)%O %P %Q %R %S %T %U %V
LCD[0](CLR,L,0)%W%X|
LCD[0](L,1)%Y%Z

Egyedi karakterek.
A tárhelyre feltöltött LCD.txt fájlban lehet egyedi karaktereket tárolni.
A https://maxpromer.github.io/LCD-Character-Creator weblapon készíthető el a kívánt karakter, vagy négyzetrácsos papíron.
5 oszlop, 7 vagy 8 sor, ez a kijelző típusától függ.

LCD.txt példa:
0: B00000 B00100 B01110 B11111 B01110 B00100 B00000 B00000 # 1: B00100, B00010, B00100, B01000, B00100, B00010, B00100, B00000 # LCD[0](ON)
Bekapcsolja a háttérvilágítást. Csak I2C panellal működik.
LCD[0](OFF)
Kikapcsolja a háttérvilágítást. Csak I2C panellal működik.

LCD[0](RST)
Reseteli a kijelzőt.

LCD[0]@
STDOUT-ra küldi a kijelző paramétereit.


Példák

Digitális óra.
CMD[10]:STR[0]=%MS %D. %WL;STR[1]=%0h:%0m:%0s|
CMD[11]:LCD[0](C,0)STR[1];LCD[0](C,1)STR[0]|
TIMES:CMD[10];CMD[11]


Megváltoztat egy értéket úgy, hogy nem törlődik az egész sor.
LCD[0](&L,0)VALUE:|
LCD[0](&R,0)Text|
NUM[0]CC:STR[0](A,3, );LCD[0](&L7,0)STR[0]

NUM[0]=1
NUM[0]=23
NUM[0]=456

Online LCD.
<html> <body> <H1>LCD</H1> <textarea id="line0" style="resize:none;display:none;" placeholder="Line0" rows="1"></textarea><br> <textarea id="line1" style="resize:none;display:none;" placeholder="Line1" rows="1"></textarea><br> <textarea id="line2" style="resize:none;display:none;" placeholder="Line2" rows="1"></textarea><br> <textarea id="line3" style="resize:none;display:none;" placeholder="Line3" rows="1"></textarea><br> <select id="lcd" onchange="onOpen();"> <option value="LCD[0]">LCD[0]</option> <option value="LCD[1]">LCD[1]</option> <option value="LCD[2]">LCD[2]</option> <option value="LCD[3]">LCD[3]</option> </select> <button type="button" onclick="sendWS(lcd.value + '(CLR)');">CLR</button> <button type="button" onclick="send();">PRINT</button> <script type="text/javascript" src="tools.js"></script> <script> startWS(3); var cols; var rows; var lcd = document.getElementById('lcd'); function onOpen() { for (var i = 0; i < 4; i++) {document.getElementById("line" + i).style.display = "none";} sendWS(lcd.value + "@"); } function onMessage(msg) { msg = msg.split(","); if (msg[3] != "LCD") {return;} cols = msg[0]; rows = msg[1]; for (var i = 0; i < rows; i++) { document.getElementById("line" + i).cols = cols; document.getElementById("line" + i).maxLength = cols; document.getElementById("line" + i).style.display = "inline"; } } function send() { for (var i = 0; i < rows; i++) { sendWS(lcd.value + "(L," + i + ")" + document.getElementById("line" + i).value); } } </script> </body> </html>