Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Arduino keypad->LCD numbrite saatmine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
Terror
HV veteran
Terror

liitunud: 08.11.2001



Autoriseeritud ID-kaardiga

sõnum 30.12.2022 12:33 Arduino keypad->LCD numbrite saatmine vasta tsitaadiga

Maadlen siin ühe probleemiga. Arduino taga on 4x4 maatriks keypad ning Nextion LCD display.
LCD töötab üle serial ühenduse. Ütleme, et tahan LCD'd ühe teksti väärtust muuta, siis saadaksin käskluse:
myNextion.setComponentText("t15", String(key));
key on antud juhul keypadist tulev nupuvajutus.

Kui tahan kirjutada näiteks 123.5, siis vajutades keypadil "1" kuvataks LCD'l mõistagi "1" ning vajutades keypadil "2", siis kirjutatakse LCD'l 12 asemel nüüd lihtsalt "2".

Pean vist tegema midagi sellist, et kui tahan LCD'le kuvatavat väärtust sisestada peavad eelnevad numbrid kuhugi puhvrisse jooksma koodil ning iga saatmisega saadetakse puhver + viimane nr keypadilt? Keypadil del nuppu vajutades kustutatakse puhvri viimane osa ära.
Oskab keegi mingile sellisele näidiskoodile viidet anda? Ei oska õiget otsingusõna kasutada.

-e-

Keypadist tulevad väärtused char'na.
char key = kpd.getKey();

Järelikult oleks vaja mul teha siis char array kuhu liidetakse kogu aeg lõppu uusi chare keypadist.

Proovisin nii:

Deklareerimine:
char msg [20];
int x =0;

Loopist väljas olev muutujate reset:
int x =0;
memset (msg,20,0);

Keypadi lugemine:

          case '0': case '1': case '2': case '3': case '4':
          case '5': case '6': case '7': case '8': case '9':
         
          msg[x] = key;
          msg[x+1]='\0';   
          x++;

          Serial.println (msg);  // display current message
          myNextion.setComponentText("t15", String(msg));

        case 'D':                                   //Clear data entry   
         
        msg [strlen (msg) - 1] = '\0';  // move null-terminator in. To shorten a string a simple method is to move the "string terminator" inwards by overwriting the last byte of the message with zero, like this:
        Serial.println (msg);  // display current message
        myNextion.setComponentText("t15", String(msg));
        x--;


Justkui toimetab esmapilgul. Mingi hea tava vastu ei ole eksinud?

_________________
Väiksemagabariidilised trei, frees ning keevitustööd. PS.
Kommentaarid: 100 loe/lisa Kasutajad arvavad:  :: 1 :: 2 :: 91
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Arduino keypad->LCD numbrite saatmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.