Danke für den Link.
Es ist anscheind nicht ganz so simple so etwas umzusetzen.
Ich kann ja mal kurz von vorne anfangen was ich vor habe.
Und zwar habe ich 2 Servos die eine Platte in x und y Richtung bewegen. Ich denke um ins Detail zu gehen, dauert es zu lange. Diese Servus steuere ich mit 2 Potis. Ich möchte eine Menüführung über das Display machen. Die soll ungefähr so aussehen.
- Bootlogo
2.Menü
- Spiel starten
- Bestenliste
- Musterlösung
- Einstellungen
Die 4 Punkte sollen auf jeweils einer Zeile ausgegeben werden. Sprich ich muss mit einem Poti oder einer Anordnung von Tastern (Steuerkreuz) durch das Menü scrollen können.
Da ich schon 2 Potis habe, würden mir auch die 4 Taster ausreichen. (Vorerst, da ich zumindest diese Hardware zu hause habe)
Wenn ich das Spiel starten wähl, soll ein Signalton erklingen und eine Zeitmessung soll gestartet werden. Bis das Spiel über einen Sensor o.ä beendet wird. Diese Zeit soll dann gespeichert werden. Es können maximal 10 Zeiten gespeichert werden. Diese sich dann in Aufsteigender Reihenfolge in dem Menüpunkt Bestenliste wieder finden. Die Bestenliste soll wie folgt aussehen:
- 02:22:333 (2Minuten, 22Sekunden,333ms)
- Name (von dem jenigen)
So in etwa stelle ich mir das vor. Allerdings habe ich auch noch ein paar Probleme wie ichfit Arrays Strings Char umgehe...
Ich kann gerne mal meinen Code für mein Bootlogo anhängen. Da habe ich es auch versucht elegant zu lösen, allerdings geht das bestimmt einfacher. Ich habe mich auch in der Variante char*[] probiert. Wenn ich in die [] eine 2 rein schreibe, nimmt sich dieser den 2 string raus. Das hat auch alles geklappt. Allerdings wollte ich die Länge von diesem Array auslesen bzw. von dem string. Das hat nur in dieser Form geklappt wie ich es im Code habe. Daher musste ich leider 4 char anlegen, welche dann da unterschiedlich eingestellt werden können. Besser hätte mir ein Array * gefallen, wo ich dann die länge jeder einzelnen Position auslesen kann. Aber egal jetzt.
Als nächstes möchte ich, die Menüstruktur darstellen. Das ist soweit auch kein Problem.
Jetzt möchte ich erst einmal versuchen einen Namen Einzugeben. Das hätte ich dann gerne als eigenständige Funktion. Damit ich nach einer Bestzeit immer die Funktion aufrufen kann.
So jetzt habt ihr einen ungefähren Plan davon, was mir so vorschwebt 
include <LiquidCrystal.h>
// initialize library with the numbers of the interface pins:
// (RS, Enable, DB4, DB5, DB6, DB7)
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
//Andere Initalisierungen die für das Programm erforderlich sind
int Zeilen[2];
char Spalten[2];
char ersteller[] = "xxxxxx";
char spielname[] = "....rinth....";
char versionsnummer[] = "V1.0";
char start[] = "let's go";
int mitte_display = 8;
const int sensorMin = 0; // sensor minimum, discovered through experiment
const int sensorMax = 1023; // sensor maximum, discovered through experiment
int poti;
int seite;
void startbildschirm()
{
//Hier steht der Startbildschirm des Menüs. Wird immer einmal angezeigt, wenn der Arduino
//gestartet wird(booten)
//Texte werden Mittig ins Display gesetzt
lcd.setCursor(mitte_display-((sizeof(ersteller)-1)/2),0);
lcd.print(ersteller);
lcd.setCursor(mitte_display-((sizeof(spielname)-1)/2),1);
lcd.print(spielname);
delay(900);
lcd.clear();
lcd.setCursor(mitte_display-((sizeof(versionsnummer)-1)/2),0);
lcd.print(versionsnummer);
lcd.setCursor(mitte_display-((sizeof(start)-1)/2),1);
lcd.print(start);
delay(300);
}
void setup() {
//Initialisierung des Displays
//16 Spalten
//2 Zeilen
lcd.begin (16,2);
Serial.begin(9600);
//Funktion für das in die Mitte setzen der Texte beim Booten
startbildschirm();
//}
}
void loop() {
// map the sensor range to a range of four options:
seite = map(poti, sensorMin, sensorMax, 0,5 );
}
Im Loop steht bisher noch nichts drin. Außer das kurze mapen...War ursprünglich mal für 5 Seiten scrollen mit einem Poti vorgesehen...Also kann es erst mal ignoriert werden