RoboterSindCool
18.12.2016, 14:05
Guten 4 Advent!
Ich bin gerade dabei eine Steuerung für einen Roboter zu Programmieren (Steuerung ist damit man dem Roboter Sagen kann was er tun soll). Diese Steuerung besteht aus 2 Displays und zu jedem Display gehören 5 knöpfe (wie ein Steuerkreuz angeordnet). Ich will, dass auf dem Display 1 verschiedene Funktionen angezeigt werden, die er Roboter ausführen kann. Dann soll man per Knopfdruck die gewünschte Funktion auswählen und dann mit der Mitteltaste diese bestätigen. Die Funktionen (die der Roboter können soll) stehen in dem "funktionen" Array (siehe im code). Das Problem:
Wenn ich das LCD direkt anspreche also wie im ersten Beispiel, dann funktioniert das. Wenn ich aber probiere mit einer Schleife die jeweilige funktion aus dem Array auszulesen und diese dann immer in die nächste Zeile zu schreiben funktionert es nicht und der Display zeigt sogar nur noch "qqqqqqqqqqqqqqqqq" oder so ein ähnliches Zeichen an. Der ganze Display ist dann mit diesen Zeichen gefüllt.
Beispiel 1 (so funktioniert es) :
LCD_Mod1.setCursor(0,0);
LCD_Mod1.print(funktionen[0]);
LCD_Mod1.setCursor(0,1);
LCD_Mod1.print(funktionen[1]);
LCD_Mod1.setCursor(0,2);
LCD_Mod1.print(funktionen[2]);
Beispiel 2 (so funktioniert es nicht):
void BIB_Roboterbedienung :: LCD_Aktualisieren(){
LCD_Mod1.clear();
for(int z = 0; z <= (sizeof(funktionen) - 1); z++){ //funktionen ist der Array mit den Funktionen
if(z == LCD_counter){ //Das ist, damit die gerade ausgewählte funktion erkennbar ist
LCD_Mod1.setCursor(0, z);
LCD_Mod1.print(" * ");
LCD_Mod1.setCursor(3, z);
LCD_Mod1.print(funktionen[z]);
}
else{
LCD_Mod1.setCursor(0, z);
LCD_Mod1.print(funktionen[z]);
}
}
}
Ich bin gerade dabei eine Steuerung für einen Roboter zu Programmieren (Steuerung ist damit man dem Roboter Sagen kann was er tun soll). Diese Steuerung besteht aus 2 Displays und zu jedem Display gehören 5 knöpfe (wie ein Steuerkreuz angeordnet). Ich will, dass auf dem Display 1 verschiedene Funktionen angezeigt werden, die er Roboter ausführen kann. Dann soll man per Knopfdruck die gewünschte Funktion auswählen und dann mit der Mitteltaste diese bestätigen. Die Funktionen (die der Roboter können soll) stehen in dem "funktionen" Array (siehe im code). Das Problem:
Wenn ich das LCD direkt anspreche also wie im ersten Beispiel, dann funktioniert das. Wenn ich aber probiere mit einer Schleife die jeweilige funktion aus dem Array auszulesen und diese dann immer in die nächste Zeile zu schreiben funktionert es nicht und der Display zeigt sogar nur noch "qqqqqqqqqqqqqqqqq" oder so ein ähnliches Zeichen an. Der ganze Display ist dann mit diesen Zeichen gefüllt.
Beispiel 1 (so funktioniert es) :
LCD_Mod1.setCursor(0,0);
LCD_Mod1.print(funktionen[0]);
LCD_Mod1.setCursor(0,1);
LCD_Mod1.print(funktionen[1]);
LCD_Mod1.setCursor(0,2);
LCD_Mod1.print(funktionen[2]);
Beispiel 2 (so funktioniert es nicht):
void BIB_Roboterbedienung :: LCD_Aktualisieren(){
LCD_Mod1.clear();
for(int z = 0; z <= (sizeof(funktionen) - 1); z++){ //funktionen ist der Array mit den Funktionen
if(z == LCD_counter){ //Das ist, damit die gerade ausgewählte funktion erkennbar ist
LCD_Mod1.setCursor(0, z);
LCD_Mod1.print(" * ");
LCD_Mod1.setCursor(3, z);
LCD_Mod1.print(funktionen[z]);
}
else{
LCD_Mod1.setCursor(0, z);
LCD_Mod1.print(funktionen[z]);
}
}
}