hallo ich habe da eine frage und suche nach Denkansätzen bzw Lösungsvorschlägen
ich möchte auf meinem 20 char 4 zeilen lcd display ein dropdownmenü verwirklichen .
in der ersten zeile soll die rubrik (überschrift) stehen
und darunter soll man mit einem cursor (oder ähnlichem ) einen punkt aus einer liste auswählen können mit den tasten auf, ab, ok, zurück
wie ich das display ansteuere und verwende weiß ich bereits aber mir fehlt der ansatz fürs menü.
das ganze ist für ein schulprojekt wo ich eine cocktailmaschiene mit 2 ardus steuere einer macht display und rezepte der andere (über softserial gesteuerte) steuert diverse stepper, servos und magnetventile.
ich frage mich, was Du von der Leserschaft hier möchtest. Den Ansatz hast Du ja selbst schon genannt (ein Menü, das aus Überschrift und bis zu drei Menüpunkten besteht).
Oder hoffst Du, dass Du ein fertiges Programm präsentiert bekommst?
danke erstmal für die flotten antworten
programierkenntnisse habe ich ,sonst konnt ich wohlkaum stepper,servos,magnetventile steuern und ardus über softserial kommunizieren lassen ^^
und nein ich erwarte mir kein fertiges program ich dachte nur villeicht hat jemand schon ähnliches gemacht und sagt mir seinen lösunsansatz.
meine einzige idee ist das ich vor einem der auszuwählenden worte ein * oder ähnliches als cursor schreibe und auf tasteneingabe warten lasse
bei auf * 1 zeile rauf bei ab 1 ab bei ok auswählen-> nächstes untermenü.
aber an der ausführung scheitere ich noch . ich dachte ich mache es mit if else schleifen aber es muss doch einfacher gehen
madmiky:
danke erstmal für die flotten antworten
programierkenntnisse habe ich ,sonst konnt ich wohlkaum stepper,servos,magnetventile steuern und ardus über softserial kommunizieren lassen ^^
und nein ich erwarte mir kein fertiges program ich dachte nur villeicht hat jemand schon ähnliches gemacht und sagt mir seinen lösunsansatz.
meine einzige idee ist das ich vor einem der auszuwählenden worte ein * oder ähnliches als cursor schreibe und auf tasteneingabe warten lasse
bei auf * 1 zeile rauf bei ab 1 ab bei ok auswählen-> nächstes untermenü.
aber an der ausführung scheitere ich noch . ich dachte ich mache es mit if else schleifen aber es muss doch einfacher gehen
Sieh dir den obigen Link an.
Da hast du etwas "fast" fertiges, auf jeden Fall ist es besser als nur ein Lösungsansatz.
madmiky:
... und nein ich erwarte mir kein fertiges program ich dachte nur villeicht hat jemand schon ähnliches gemacht und sagt mir seinen lösunsansatz. ...
Eigentlich hast Du das grundsätzliche Vorgehen ja schon genannt. Meiner Erfahrung nach ist der schwierige Teil das „Entwerfen“ der Menüstruktur. Der Rest ist dann im Großen und Ganzen nur Fleißarbeit (Tipperei). Ob Du das mit if/then, switch/case oder sonstwas machst, ist eigentlich egal.
Wichtig ist, dass das Menü auch von Leuten verstanden wird, die „den Rest dahinter“ nicht kennen. Als Programmierer ist man da nicht selten etwas „betriebsblind“.
HotSystems:
Sieh dir den obigen Link an.
Da hast du etwas "fast" fertiges, auf jeden Fall ist es besser als nur ein Lösungsansatz.
Fertiger als fertig gibt es nicht
Es gibt da noch einige andere Menü Libraries, die von Jurs ist simple aufgebaut (ist eigentlich keine Lib).
Mit den if else then case ist es nicht getan, da musste schon paar Zeilen mehr tippen.
Nimm die Lib von Jomelo (der Link von HotSystems) und sei Glücklich damit.
Wenn man das per Hand läuft es im Prinzip darauf hinaus dass man erst mal die aktuelle Cursor-Position speichert. Beim Umschalten überschreibt man dann den aktuellen Cursor mit einem Leerzeichen und setzt den neuen (da gibt es auch Pfeile im Zeichensatz).
Wenn man über mehrere Seiten scrollt muss man dann allerdings die Cursor Position auf dem Display und die Position in der Menüliste unterscheiden. Das ist aber nicht viel mehr als eine Modulo-Division
Bei sowas hilft es immer sich das auf Papier aufzuzeichnen und zu jedem Punkt den entsprechenden Index zu schreiben. Dann sieht man in etwas was man rechnen muss.
Aber wenn du überhaupt keinen Plan hast, nimmt was fertiges Da werden auch weit mehr Funktionen als nur hoch/runter scrollen unterstützt.