Skocz do zawartości

Dodatkowe ćwiczenia z wyświetlaczem 2x16 znaków


Pomocna odpowiedź

(edytowany)

@rafal220 adla pewności wyświetl jeszcze taka wartość jak poniżej (przepisz tylko 0x85) 

void loop() { 
 
    tm.displaySS(0,0xED); 
  delay(1000);   
}

Edit...źle nie będzie działać 

Edytowano przez farmaceuta
27 minut temu, rafal220 napisał:

Na razie mam drobne problemy w odróżnianiu nazw zmiennych userów z tymi standardowymi Arduino. 

😂😂😂🫣

Gość
Przed chwilą, ethanak napisał:

millis to funkcja

No ok. Ale jak ktoś wprowadzi swoje nazwy zmiennych odnoszących się do millis, intów itp. to zaczyna to w pewnym momencie mylić, bo za każdym razem szukam w necie funkcji które nie istnieją. Bo są to jakieś tam wymyślone nazwy odnoszące się do czegoś tam. W efekcie Idzie to strasznie opornie.  

4 minuty temu, rafal220 napisał:

No ok. Ale jak ktoś wprowadzi swoje nazwy zmiennych odnoszących się do millis, intów itp. to zaczyna to w pewnym momencie mylić, bo za każdym razem szukam w necie funkcji które nie istnieją. Bo są to jakieś tam wymyślone nazwy odnoszące się do czegoś tam. W efekcie Idzie to strasznie opornie.  

Nie zmusisz całego świata do tego żeby tak samo nazywał zmienne i funkcję...przecież każdy robi cos innego...nie da się tego tak ładnie poukładać 

Gość
(edytowany)
18 minut temu, farmaceuta napisał:

adla pewności wyświetl jeszcze taka wartość jak poniżej

To masz 5. (piątkę z kropką) Ta funkcja działa prawidłowo. Rozchodzi się o to, aby zrobić coś podobnego co zrobił @ethanak ze znakami ASCII. Wrzucasz dowolny znak oraz masz możliwość deklaracji kropki poprzez true albo false. To jest dobre, tylko żeby przerobić w taki sposób aby także śmigało ze zmiennymi np. pozycja, zmienna x, oraz true wyświetl kropkę, false nie wyświetlaj. 

Edytowano przez rafal220
Gość
Przed chwilą, farmaceuta napisał:

Nie zmusisz całego świata do tego żeby tak samo nazywał zmienne i funkcję...przecież każdy robi cos innego...nie da się tego tak ładnie poukładać 

Wiem o tym, dlatego jak uda mi się to trochę ogarnąć, to przynajmniej przerobię biblioteki z których korzystam normalizując w kwestii łatwiejszej deklaracji zmiennych wyjściowych. Bo co biblioteka to inne nazwy zmiennych do tych samych funkcji. XD  Sęk w tym, że taki kod będzie już mało użyteczny, jeżeli zmienię nazwy zmiennych w bibliotekach. I tak źle i tak źle. Najlepiej zrobić sobie jakieś krótkie notatki do bibliotek odnośnie nazw zmiennych, aby za każdym razem nie wertować całej biblioteki której nie używałeś x czasu.   

10 minut temu, rafal220 napisał:

To masz 5. (piątkę z kropką) Ta funkcja działa prawidłowo. Rozchodzi się o to, aby zrobić coś podobnego co zrobić @ethanak ze znakami ASCII. Wrzucasz dowolny znak oraz masz możliwość deklaracji kropki poprzez true albo false. To jest dobre, tylko żeby przerobić w taki sposób aby także śmigało ze zmiennymi np. pozycja, zmienna x, oraz true wyświetl kropkę, false nie wyświetlaj. 

To nie rozumiem czemu kod wcześniejszy Ci nie działał...po wpisaniu 5 z true dla kropki powinieneś otrzymać właśnie "5."...🙄

Gość
2 minuty temu, farmaceuta napisał:

To nie rozumiem czemu kod wcześniejszy Ci nie działał...po wpisaniu 5 z true dla kropki powinieneś otrzymać właśnie "5.".

Drogą dedukcji też tak myślałem, że tak będzie. Ale segment jest ciemny. Do tego nurtuje jeszcze mnie opcja sterowania jasnością. W innych bibliotekach to jest, ale one tak po... chrzanione w obsłudze, że nawet głębiej się nie wgryzałem. Ta jest najlepsza tylko skąpiutka trochę. @ethanak zrobił poprawkę pod ASCII w 5min. Myślę, że aktualizację do tej biblioteki może zrobić w godzinę. Byłby ogólny pożytek gdyby to się pojawiło na oficjalnej stronie. Czyli to co na początku po setup władować do biblioteki, a w trzeciej zmiennej domyślnie ustawić 0. Jak ktoś po drugim przecinku da 1, to mu się pokaże niezależna kropka. 0 to zniknie. 

@rafal220 a spróbuj jeszcze tak... 

#include <TM1638lite.h> // https://github.com/danja/TM1638lite
TM1638lite tm(6, 7, 8);

void setup(){}

void displayZnakZKropkomAlboBez(int pozycja, uint8_t znak, bool kropka=false)
{
    uint8_t z=ss[znak];
    if(kropka) z |= 0x80;
    tm.displaySS(pozycja,z);
}

void loop()
{
    displayZnakZKropkomAlboBez(1,'5',false);
    delay(1000);
    displayZnakZKropkomAlboBez(1,'5',true);
    delay(1000);
}

 

Gość
Przed chwilą, farmaceuta napisał:

a spróbuj jeszcze tak... 

Pisałem wcześniej, że ten wariant kolegi @ethanak działa super dla ASCI. Teraz chciałbym zrobić opcję aby kropka wyświetlała się przy zmieniającej cyfrze na stoperze, czy tez zegarku. Próbowałem zamiast tm.displaySS wstawić tm.displayHex + zmienną zewnętrzną, ale to nie działa. Czyli jak zrobić, aby zamiast liczby 5 wstawić np. zmienną i z licznika?

2 minuty temu, rafal220 napisał:

Pisałem wcześniej, że ten wariant kolegi @ethanak działa super dla ASCI. Teraz chciałbym zrobić opcję aby kropka wyświetlała się przy zmieniającej cyfrze na stoperze, czy tez zegarku. Próbowałem zamiast tm.displaySS wstawić tm.displayHex + zmienną zewnętrzną, ale to nie działa. Czyli jak zrobić, aby zamiast liczby 5 wstawić np. zmienną i z licznika?

Dobra...teraz rozumiem 🙃 jakie mają być największe wartości liczbowe?? A tak w ogóle to najlepiej zmienić bibliotekę niż kombinować z ascii

Gość
10 minut temu, farmaceuta napisał:

a spróbuj jeszcze tak... 

Chodzi o to, że jeżeli zrobię tak;

#include <TM1638lite.h> // https://github.com/danja/TM1638lite
TM1638lite tm(6, 7, 8);

void setup(){}

void displayZnakZKropkomAlboBez(int pozycja, uint8_t znak, bool kropka=false)
{
    uint8_t z=ss[znak];
    if(kropka) z |= 0x80;
    tm.displaySS(pozycja,z);
}

void loop()
{
  int a = 5;
  
    displayZnakZKropkomAlboBez(1,a,false);
    delay(1000);
    displayZnakZKropkomAlboBez(1,'5',true);
    delay(1000);
}

To miga co 1s cała cyfra zamiast kropki.

11 minut temu, rafal220 napisał:

aktualizację do tej biblioteki może zrobić w godzinę

Ale to nie jest zmiana w bibliotece tylko przykład (przeze mnie zrobiony) użycia biblioteki w aplikacji. Autor biblioteki jak widać zadbał o to, aby można było różne różności robić... a biblioteka ma w swojej nazwie "tiny" jak wspomniałem. Niech ta biblioteka zostanie jak jest, zawsze można jej użyć do napisania następnej.

 

42 minuty temu, rafal220 napisał:

Bo są to jakieś tam wymyślone nazwy odnoszące się do czegoś tam

A jakie mają być nazwy w wymyślonym programie? Podaj przykład jak by się miały nazywać.

 

Gość
1 minutę temu, ethanak napisał:

zawsze można jej użyć do napisania następnej.

Czekam z niecierpliwością.

 

2 minuty temu, ethanak napisał:

A jakie mają być nazwy w wymyślonym programie? Podaj przykład jak by się miały nazywać.

Przynajmniej na początku wole jakieś krótkie nazwy

T - micros,

TT - millis,

Di - digital inputs,

Do digital outputs,

Ai -  analog inputs

a - zmienna analogowa, d - zmienna cyfrowa 0/1,  t - zmienna czasu, txt - zmienna char/ string itp. Tak mi jest łatwiej przynajmniej na chwile obecną. 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...