Hallo,
ich habe ein Programm, wo ich mehrere Sachen einstellbar machen will.
Vorhanden sind:
- 1 Taster
- 1 LED
- ein Poti, welches am ADC hängt
Nun dachte ich an so eine Art Menü:
- Taster lange drücken (z.B. 5s, also ein Wert, der für den normalen
Programmablauf unüblich ist)--> Menü1 wird aufgerufen, nicht das normale
Programm
- LED kann durch Blinken anzeigen, aha, wir sind im Menü1
- Taster kurz drücken --> Menü wird durchgeblättert (Menü 1 - 1x
drücken, LED blinkt 1x; Menü2 - noch 1x drücken, LED blintk 2x; Menü 3 -
noch 1x drücken, LED blinkt 3x; usw.).
- Das richtige Menü gewählt, durch Poti am ADC die gewünschte
Einstellung ändern und danach mit Taster lang drücken bestätigen -->
Werte im EEPROM speichern, sodass sie beim nächsten Start daraus gelesen
werden können
Gibt es andere Ideen, Lösungen oder Hinweise?
Ich habe noch nie ein "Menü" programmiert…
Danke.
So etwas Ähnliches nur etwas umfangreicher hab ich die letzten Tage auch
zusammengezimmert, du brauchst Grundlegend drei Dinge:
1. Etwas Erfahrung im Umgang mit µC
2. Eine Routine zur Tastenentprellung
3. Einen Plan wie du dir das Menü vorstellst (ein Zettel und ein Stift
sind hier gefordert)
Welche Programmiersprache verwendest du denn und welche Architektur?
Atmel?
Punkt 2: http://www.mikrocontroller.net/articles/Entprellung, verwende
am Besten die Komfortroutine (die macht genau das was du willst).
Bezüglich der Umsetzung deines Menüs kannst du dir mal diesen Artikel
durchlesen: Beitrag "LCD Menü"
Wenn du das verstanden hast solltest du es hinbekommen :)
Wieso willst du die Daten eigentlich mit einem Poti eingeben? Ein
Inkrementalgeber wäre da sicher einfacher...
Aber ja, mit einem Poti und ADC ist es natürlich auch möglich. Hast du
schon mal einen ADC verwendet?
Gruß
Hi,
Borsty Bürste schrieb:> So etwas Ähnliches nur etwas umfangreicher hab ich die letzten Tage auch
...
> Wieso willst du die Daten eigentlich mit einem Poti eingeben? Ein> Inkrementalgeber wäre da sicher einfacher...> Aber ja, mit einem Poti und ADC ist es natürlich auch möglich. Hast du> schon mal einen ADC verwendet?
mit Poti geht das aber erst mal nur für Absolutwerte. Und selbst dann
kommt es noch darauf an in welcher Stellung das Poti gerade steht. Wenn
das Poti z.B. gerade auf 10% steht und Du einen Wert einstellen möchtest
der aktuell auf 80% steht. Wird der Wert erst mal auf 10% "springen".
Dann kannst Du ihn erst z.B. auf 85% stellen.
Besser geht das inkrementell. Entweder mit zwei Tasten oder eben mit
Inkrementalgeber. Ich mache so etwas sehr gerne mit Inkrementalgeber. Da
hat man dann auch üblicherweise gleich die Taste mit drin und muss mit
der Hand nicht zwischen zwei Kontrollknöpfen hin und her "springen" ...
Beispielvideo hier http://youtu.be/b0xpp5pa_18 .
Halte Dir am besten die Ohren zu. Das ist ein Test für die
Sound-Ansteuerung eines Atari TIA-Chips. Das Teil macht zum Teil einen
erheblichen Lärm ;-)
Ich hasse es, wenn eine Taste mehrfach belegt wird. Der MP3 Player
meines Sohne macht mich wegen sowas total kirre.
Noch schlimmer finde ich allerdings, wenn der aktuelle Zustand nicht
klar auf einem Display oder einfach belegten LED's angezeigt wird.
Die Kombination aus mehrfach belegtem taster und mehrfach belegter LED
finde ich extrem fragwürdig. Mich kannst Du damit nicht begeistern.
Wenn es geht, würde ich ein LC-Display zur Anzeige verwenden. Darunter
Tasten für "Menü" "Enter" "+" und "-" oder stattdessen ein Dreh-Encoder.
Wenn ein Display nicht in Frage kommt, dann verwende ganz viele
ordentlich beschriftete LED's, wobei jede LED nur eine Bedeutung hat.
Es geht konkret um einen AVR Atmega8.
Tasten einlesen, ADC-Werte verarbeiten, alles kein Problem. Wird in C
programmiert.
Ich stimme allen beteiligten zu in:
- Inkrementalgeber besser als "Absolutwertgeber-Poti)
- mehrere LEDs oder Display ebenfalls besser
Die Randbedingungen sind aber so gegeben, da dieses Menü mehr als
"Gimmik" für Experten ist, also mehr überflüssig, als notwendig. Aber
Software kostet nichts, nur ein bisschen Grips und Zeit.
Daher würde ich das gerne mit den vorhanden "Mitteln" realisieren und
mir Ideen holen, bezüglich Anzeige und Einstellung mit diesen Mitteln,
ob es noch ein paar weitere/bessere Ideen als meine obige grob
skizzierte gibt.
Hi Stefan,
Stefan schrieb:> Ich hasse es, wenn eine Taste mehrfach belegt wird. Der MP3 Player> meines Sohne macht mich wegen sowas total kirre.
es gibt leider sehr viele Geräte bei denen die Menüs grausam aufgebaut
sind, da stimme ich die uneingeschränkt zu. Gerade MP3-Player, aber auch
Auto-Radios, sind oft ein Horror.
> Noch schlimmer finde ich allerdings, wenn der aktuelle Zustand nicht> klar auf einem Display oder einfach belegten LED's angezeigt wird.
In meinem Beispielvideo siehst Du es. Der Cursor ändert sich von "_" auf
Block, wenn die Eingabe umgeschaltet wird.
> Die Kombination aus mehrfach belegtem taster und mehrfach belegter LED> finde ich extrem fragwürdig. Mich kannst Du damit nicht begeistern.
ok, Ansichtssache. Ich finde es so super.
> Wenn es geht, würde ich ein LC-Display zur Anzeige verwenden. Darunter> Tasten für "Menü" "Enter" "+" und "-" oder stattdessen ein Dreh-Encoder.>> Wenn ein Display nicht in Frage kommt, dann verwende ganz viele> ordentlich beschriftete LED's, wobei jede LED nur eine Bedeutung hat.
Kann man machen, aber man kann auch zu viel beleuchten.
David,
die Inkrementalfunktion könntest Du in gewissen Grenzen emulieren in dem
Du die Potiänderungen aus wertest und dann rauf oder runter zählst. Es
gibt aber immernoch das Problem das Du nichts Ändern kannst wenn das
Poti zufällig an einem Anschlag hängt. Auch das könnte man ausgleichen,
aber irgendwann versteht niemand mehr wie das Menü bedient werden muss
...