Arduino menu LCD

Masz problem z Arduino? Tutaj możesz szukać pomocy.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 13:56

Witam serdecznie.
Potrzebuje pomocy przy zrobieniu menu do wyświetlacza LCD.
Sam napisałem trochę kodu ale natknelem się na problem ale mianowicie dane które chce zmienić za pomocą kontrolera(joystick 2 osiowy z przyciskiem) nie odświeżają sie na wyświetlaczu lcd, dopiero po przełączeniu na kolejny ekran i powrocie te dane się odświeżają. Prosił bym o pomoc przy stworzeniu następującego menu:
ekran wejściowy: KONTROLA DOMU- *-KOLEJNE POZIOMY
KONTROLA DOMU
*ODCZYT
**TEMPERATURA
***TEMP.1
***TEMP.2
**WILGOTNOSC
**SWIATLO
**POZIOM
*ZMIANA
**TEMPERATURA
***MAKSYMALNA- mozliwosc ustawienia wielkosci zmiennej
***MINIMALNA- mozliwosc ustawienia wielkosci zmiennej
**SWIATLO
***MINIMALNE- mozliwosc ustawienia wielkosci zmiennej
**POZIOM
***MINIMALNY- mozliwosc ustawienia wielkosci zmiennej
***MAKSYMALNY- mozliwosc ustawienia wielkosci zmiennej
**WILGOTNOSC
***MINIMALNA- mozliwosc ustawienia wielkosci zmiennej
Ostatnio zmieniony 27 lis 2013, 20:28 przez kubaaa1992, łącznie zmieniany 1 raz.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 27 lis 2013, 14:07

cześć... hmmm zobacz piętro wyżej na forum - PROJEKTY... właśnie wczoraj napisałem nową wersje biblioteki, która chyba Ci podpasuje :-)
Pozdrawiam
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 14:31

tak próbowałem coś pobawić sie z ta biblioteka ale cos mi nie idzie.
mam problem zeby zmienic kontroler
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 14:35

i potrzebuje jezeli wejde w zmiane temperatura minimalna i tu jest zmienna x która za pomoca klawiatury moge zwwiekszac i zmiejszac
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 27 lis 2013, 14:39

podaj specyfikację joysticka:
- wychylenie lewo -prawo -> jakie piny (analogowe czy cyfrowe) i numery pinów
- wychylenie góra -dół -> jakie piny (analogowe czy cyfrowe) i numery pinów
przycisk Select (OK) jaki pin
bez tych danych nie jestem jasnowidzem :-)
do poprawki jest ciało funkcji bibliotecznej (w pliku ProsteMenu.cpp gidze masz odczyt wejścia A0....
pobaw się sam... może coś Ci się urodzi... jak nie wyjdzie pisz ..narka
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 14:44

oj edycja bibliotek to nie moj poziom.
moje menu działa calkiem dobrze tylko nie wiem czemu mi nie odswierza danych.
mogl bys pomoc?
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 27 lis 2013, 14:45

co do temp. to robisz już po identyfikacji i zatwierdzeniu opcji ZMIANA (czyli de facto w instrukcji iswitch. Tam zapuszczasz while lub jeszcze lepiej do while i zmieniasz "klawiszami" temperaturę, wciskasz OK i wychodzisz z while.
dane powinieneś zapisywać najlepiej w EEPROM. W bibliotece ProsteMenu wszystkie funkcje są publiczne więc do tej co czyta stan wejścia A0 (po Twojej modyfikacji) możesz się bezproblemowo ponownie dostać kiedy będziesz obsługiwał to while. Dośc zawiłe prawda :-) dobrze że to nie assembler :-)Pozdro
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 27 lis 2013, 14:51

jasne że mógłbym.. daj załącznik... postaram się wieczorkiem zajrzeć :-)
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 14:52

o masakra.
Widac ze Pan doswiadczony w programowaniu.
Ja zaczynam swoje prace z arduino i programowaniem.
duzo nauki jeszcze przede mna.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 14:55

O to moje menu.
sterowanie za pomoca klawiatury i pilota.
Joystick musze dodac dopiero.
Chodzi mi dlaczego tego mojego "n" nie odswieza chociaz jak przejde do nastepnego ekranu i wroce to ono sie zmienia.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 18:58

i napotkalem kolejny problem.
jezeli bede chcial sterowac analogiem to jezeli bede poruszal sie po menu to automatycznie zwiekszala badz zmiejszala mi sie bedzie wartosc n.
jak to rozwiazac?
chce zeby n zmienialo mi sie tylko kiedy wejde w zmiany
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 27 lis 2013, 20:27

ma ktos jakis pomysł?
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 29 lis 2013, 10:19

pomoze ktos?
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 29 lis 2013, 14:21

Czesć... masz tu kuba w załączniku gotowca...
Sciśle mówiąc są tam odpowiednio przeładowane funkcje i dzięki Tobie udało się zwiększyć funkcjonalność biblioteki o współpracę z joystickiem :-)
Niestety musisz podmienić bibliotekę, na nowszą, bo ta nowa ma już wbudowaną współpracę także z joystickiem Twojej konstrukcji :-)
Jak to zrobić ?
1) Usuń w katalogu libraries folder ProsteMenu (USUŃ, bo zmiana nazwy nic nie da, Arduino to kontroluje)
2) Pobierz mój załącznik ProsteMenu.zip
3) Odpal IDE i wybierz: Szkic->Importuj Biblioteke ->Add Library ... i wskaż miejsce gdzie pobrałeś plik ProsteMenu.zip
4) zamknij i ponowne otwórz IDE Arduino
5) poszukaj w Plik->Przyklady->ProsteMenu->testPM i odpal to
Powinno być OK... jeśli joystick działa odwrotnie to znaczy że musisz pogłówkować, głownie w wywołaniu funkcji
moje.stan_keyboard(wejscie analogowe 1, wejscie analogowe 2, pin Digital)
UWAGA!... nie uzywaj pinu nr 13 jako wejścia, bo na nim wisi oryginalna dioda LED w Arduino. Zamiast tego wrzuciłem Ci do przykładu wolny pin 2. Po kodzie się zorientujesz.
Pozdrawiam
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 29 lis 2013, 17:55 przez wojtekizk, łącznie zmieniany 1 raz.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 29 lis 2013, 15:48

o super.
Dzieki bardzo.
mam pytanie jak dodac do menu trzeci poziom?
maglo18
Majsterkowicz
Posty: 119
Rejestracja: 25 wrz 2013, 12:06

Re: Arduino menu LCD

Post autor: maglo18 » 29 lis 2013, 15:50

kubaaa1992 proszę daj znać czy kod kompiluje się bez błędów?
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 29 lis 2013, 17:52

kuba.. ja także chciałbym wiedzieć co z kompilacją kodu?
Niestety nie przewidziałem tu wielopoziomowego menu. Jest tylko menu i submenu. W sumie bez wodotrysków bo potem i tak w kodzie będzie dużo pracy aby wszystkie te opcje obsłużyć. Nigdy też wcześniej nie było mi takie potrzebne, bo z założenia mikroprocek ma wykonywać swoje dość proste zadanie. Więcej, jakoś nie przypominam sobie żadnego urządzenia, zbudowanego na mikroprocku, które potrzebowało by aż tylu opcji. Ale rzuciłeś temat, więc kto wie. Z drugiej strony i tak już wyważam niepotrzebnie już dawno otwarte drzwi, bo można znaleźć w necie parę ciekawych rozwiązań wielopoziomowego menu, chociażby tego z którego pierwotnie korzystałeś kuba. Inna sprawa, że trzeba wtedy bardzo uważnie sledzić co autor miał na myśli :-) Darmowe nie jest synonimem Najlepsze :-)
Pozdrawiam
Ostatnio zmieniony 29 lis 2013, 21:21 przez wojtekizk, łącznie zmieniany 1 raz.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 29 lis 2013, 18:48

menu mi smiga.
tylko potrzebne jest te wiecej poziomow.
własnie te moje menu ktorego uzywam robi mi psikusa.
i nie wiem jak sie w tym odnalesc...
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 29 lis 2013, 18:50

menuBackend ktos probowal na nim tworzyc?
prosze o pomoc!!!
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 1 gru 2013, 15:22

Cze... kurcze kuba w tym tempie to zmarnujesz całą plantację konopii :-)
Zrobiłem Ci gotowca... na MenuBackend, zobacz czy Ci pasuje -> załącznik !!!
Pozdrawiam
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 1 gru 2013, 17:21

super.
Dzieki bardzo jest super i smiga.
kubaaa1992
Młodszy majsterkowicz
Posty: 46
Rejestracja: 27 lis 2013, 13:47

Re: Arduino menu LCD

Post autor: kubaaa1992 » 1 gru 2013, 17:25

skonczylem swoj projekt.
dzieki tobie mam najwazniejsza czesc swojego projektu.
nie wiem jak mam dziekowac.
ojdas
Młodszy majsterkowicz
Posty: 5
Rejestracja: 17 lut 2014, 18:20

Re: Arduino menu LCD

Post autor: ojdas » 17 lut 2014, 18:35

Witam,

Mam pytanie do autora skryptu menu LCD.
Zrobiłem sobie coś takiego:

Kod: Zaznacz cały

MenuBackend menu = MenuBackend(menuUseEvent,menuChangeEvent); // konstruktor 
//                        ("                ")

MenuItem P1 = MenuItem("TestAAA",1);
MenuItem P11 = MenuItem(" Test1",2);
MenuItem P12 = MenuItem(" Test2",2);

MenuItem P2 = MenuItem(" TestBBB",1);
MenuItem P21 = MenuItem(" Test1",2);
MenuItem P22 = MenuItem(" Test2",2);

/* --- Teraz pozycjonujemy  menu ( zgodnie z ustawieniem podanym powyżej) ------------
 add - dodaje w pionie, addRight - dodaje w poziomie z prawej , addLeft dodaje z lewej
 */
void menuSetup()                       // funkcja klasy MenuBackend 
{
  menu.getRoot().add(P1);          // ustawiamy korzeń Menu, czyli pierwszą opcję
  P1.add(P11);
  P11.add(P12);
  P11.addLeft(P1);
  P12.addLeft(P1);
  P12.add(P11);
  P1.addRight(P2);
  
  P2.add(P21);
  P21.add(P22);
  P21.addLeft(P2);
  P22.addLeft(P2);
  P22.add(P21);
  P2.addRight(P1);

}
Jednakże w przypadku skompilowania skryptu, a następnie wciśnięcie buttona UP znika wszystko.
Testowałem oryginalny skrypt z forum i jest to samo?
Czy to jakiś bug? I jak można zrobić aby tak nie było gdyż strasznie mnie to denerwuje i może zmylić usera, że coś nie działa :-)

Reszta wszystko fajnie śmiga i jestem pod wrażeniem wykonanej pracy!

Mam też pytanie do tej części:

Kod: Zaznacz cały

void menuUseEvent(MenuUseEvent used)
Z tego co widzę kod nie jest ładowany do LOOP'a
Czy wystarczy zrobić jakaś pętlę aby otrzymać to samo co w LOOPie powinno czasem się znaleźć?
Ewentualnie może jest jakaś sprytna metoda ładowania do LOOP'a?

Pozdrawiam,
P.
Awatar użytkownika
wojtekizk
Starszy majsterkowicz
Posty: 309
Rejestracja: 19 lis 2013, 10:54
Lokalizacja: Bydgoszcz

Re: Arduino menu LCD

Post autor: wojtekizk » 17 lut 2014, 21:49

Witam... kurcze nie wiem:
- po pierwsze o który skrypt konkretnie Tobie chodzi, bo w poście były co najmniej 3 wersje :-)
- po drugie brakuje mi tzw. mapy menu, bo nie kumam czy to jest pionowe względem TestAAA i TestBBB czy poziome
( narysuj to za pomocą wcięć jak w kodach które analizowałeś)
- po trzecie dobrze by było wkleić cały kod do ew. analizy BUGA :-)
Odsyłam kolegę do działu Tutoriale i postu "MenuBackend - jak się w nim odnaleźć?" tam być może znajdziesz odpowiedź na Twoje problemy
Pozdrawiam
ojdas
Młodszy majsterkowicz
Posty: 5
Rejestracja: 17 lut 2014, 18:20

Re: Arduino menu LCD

Post autor: ojdas » 18 lut 2014, 00:29

Jeśli chodzi o skrypt pisałem o "MenuBackend_kuba.zip" z tego też pochodzi moja modyfikacja i w tym skrypcie można znaleźć buga.
Jeśli chodzi o samo menu i jego konstrukcję to u mnie wygląda to tak:

MenuAAA MenuBBB
|--Test1 |--Test1
|--Test2 |--Test2

Czyli MenuAAA i MenuBBB są w poziomie, w dół odchodzą menu podrzędne.


I teraz przy użyciu UP będąc na MenuAAA pojawia się pusty ekran jak użyjemy DOWN na MenuAAA wszystko się znów pokazuje. Co dziwne ten stan nie występuje już na kolejnych elementach ManuBBB, itd. będących w tej same hierarchii.
ODPOWIEDZ

Strony partnerskie: