![]() |
|
dane char i wysietlanie na LCD - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: dane char i wysietlanie na LCD (/watek-dane-char-i-wysietlanie-na-lcd) |
dane char i wysietlanie na LCD - mateuszmilke97@gmail.com - 20-03-2022 Cześć. Potrzebuje wyświetlać na lcd I2C rożne randomowe teksty z tablicy danych "char". Całość śmiga dobrze lecz chodzi o to że jeżeli tekst jest dłuższy niż szerokość LCD'ka nie wyświetla się reszta i stąd zwracam się o kolejną pomoc. Czy ktoś podpowie jak to napisać aby tekst kontynuował swoje wyświetlanie w kolejnej linijce jeśli jest dłuższy niż np 16 znaków? Poniżej kawałek kodu odpowiedzialny za losowanie i wyświetlanie z tablicy. lcd.clear(); lcd.home(); int textStartIndex = random(8); lcd.print(textStart[textStartIndex]); RE: dane char i wysietlanie na LCD - Robson Kerman - 20-03-2022 Kod: lcd.print(tekstStart.substring(0,16));RE: dane char i wysietlanie na LCD - mateuszmilke97@gmail.com - 22-03-2022 niestety wyskakuje błąd troche zmodyfikowałem wartosci jesli chodzi o wyświetlacz (kolumy i szerokości) ale to nie ten problem poniżej komunikat kompilatora lcd.print(textStart.substring(0,16)); ^~~~~~~~~ Gra_syzbkosci_klikniec_v1_0:74:16: error: request for member 'length' in 'textStart', which is of non-class type 'char* [8]' if(textStart.length() > 16){ ^~~~~~ Gra_syzbkosci_klikniec_v1_0:76:25: error: request for member 'substring' in 'textStart', which is of non-class type 'char* [8]' lcd.print(textStart.substring(0,16)); ^~~~~~~~~ Gra_syzbkosci_klikniec_v1_0:77:16: error: request for member 'length' in 'textStart', which is of non-class type 'char* [8]' if(textStart.length() > 32){ ^~~~~~ Gra_syzbkosci_klikniec_v1_0:79:25: error: request for member 'substring' in 'textStart', which is of non-class type 'char* [8]' lcd.print(textStart.substring(16,32)); ^~~~~~~~~ exit status 1 request for member 'substring' in 'textStart', which is of non-class type 'char* [8]' RE: dane char i wysietlanie na LCD - Robson Kerman - 23-03-2022 Bo masz tablicę char[], a ja podałem przykład dla string. Albo przekonwertuj zmienną, albo musisz napisać program wyliczający kolejne elementy tablicy i wrzucający je do odpowiedniej linii LCD. RE: dane char i wysietlanie na LCD - mateuszmilke97@gmail.com - 30-03-2022 Udało mi się osiągnąć zamierzony cel lecz musiałem trochę zmodyfikować kod lecz dzięki Tobie zrozumiałem jak to działa dzięki !!! poniżej działający kod lcd.clear(); lcd.home(); byte textStartIndex = random(11); if (textStart[textStartIndex].length() > 0) { lcd.setCursor(0, 0); lcd.print(textStart[textStartIndex].substring(0, 16)); if (textStart[textStartIndex].length() >= 17) { lcd.setCursor(0, 1); lcd.print(textStart[textStartIndex].substring(16, 32)); } } |