Vložení textu a proměnné

Odpovědět
Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

Vložení textu a proměnné

Příspěvek od Axamith » 28 pro 2019, 19:35

Ahoj, dávám dohromady ovládání termostatu a časovače (spínání relé) s nastavením přes LCD a tlačítka. prošel jsem spoustu příkladů LCD menu a došel k přesvědčení, že bude nejlepší, když si to napíši sám od nuly.
Řeším problematiku vkládání textu a proměnné do jednoho řádku. Zajímalo by mě, jestli existuje způsob, jak vložit jedním příkazem text a proměnnou, nebo dvě proměnné.

Toto je běžný způsob:

Kód: Vybrat vše

int paste [6] = {12, 24, 36, 48, 60, 72}; //definuji proměnnou

lcd.clear();
lcd.setCursor(0,0);
lcd.print("CAS: ");  //vložím text

lcd.setCursor(4,0);
lcd.print(paste[0]);  //vložím proměnnou
lcd.print(" HOD."); //a další text
Teď napíši asi blbost, IDE mi to sice nevyhodnotí jako nesmyslnou deklaraci, ale zobrazí se mi pouze první vkládaná proměnná, tedy text_1, zbytek už ne. Zkoušel jsem pracovat se závorkami, ale nedosáhl jsem požadovaného výsledku. Jde toto nějak ošetřit?

Kód: Vybrat vše

int paste [6] = {12, 24, 36, 48, 60, 72}; //definuji proměnnou
String text_1 = "CAS: "; //definuji text 1
String text_2 = "hod."; //definuji text 2

lcd.clear();
lcd.setCursor(0,0);
lcd.print(text_1),(paste[2]),(text_2);

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Vložení textu a proměnné

Příspěvek od AstroMiK » 28 pro 2019, 20:04

Sice netuším, co je podle tebe tak špatného na tom prvním způsobu, ale když trváš na printu pomocí jednoho příkazu, tak se dají ty proměnné jednoduše sloučit do samostatného Stringu:

Kód: Vybrat vše

    String radka = text_1 + paste[2] + text_2;
    lcd.print(radka);
    

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Vložení textu a proměnné

Příspěvek od pavel1tu » 28 pro 2019, 20:10

Pokud zde projdeš forum,
je zde k dispozici pěkné a jednoduché menu, myslím že je to projekt "budíku" ?

PS: Já si podle toho vytvořil knihovnu, ale zatím tam mám chyby, pak to dám k dispozici.
PS2: pro "tisk" jednoho řádku si udělej funkci, do které pošleš text, nebo proměnnou a číslo řádku - pak ji stačí jen volat a nemusíš ten výstup na displej pořád psát dokola .... popřípadě pro celou položku menu.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Vložení textu a proměnné

Příspěvek od jankop » 28 pro 2019, 21:57

AstroMiK píše:
28 pro 2019, 20:04

Kód: Vybrat vše

    String radka = text_1 + paste[2] + text_2;
    lcd.print(radka);
 
No já bych to zjednodušil na:

Kód: Vybrat vše

 lcd.print(text_1 + paste[2] + text_2);
a ještě lépe na:

Kód: Vybrat vše

 lcd.print(text_1 + String(paste[2]) + text_2);

Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

Re: Vložení textu a proměnné

Příspěvek od Axamith » 29 pro 2019, 17:55

Díky všem za konzultaci a připomínky. Snažil jsem se jen zjednodušit kód, nic víc, nic míň :-) A pochopit a naučit se další vychytávky.
To menu, které zmiňuje Pavel1tu je tady https://www.arduino-forum.cz/viewtopic. ... bud%C3%ADk
Další hezké jsem našel zde https://github.com/DJDevon3/Arduino a do třetice https://www.arduinotech.cz/inpage/ardui ... nu-na-lcd/
Nevím jak kdo, ale já se nejvíce naučím, když si program napíšu sám, byť odkoukám princip z jiného projektu. Vyhovuje mi to více, než stroze okopírovat hotovou věc. Ale stojí to více času a úsilí.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů