Hallo Leute =),
bin neu hier im Forum, und habe folgendes Problem.
An meinem Arduino ist ein 16x2 LCD Display angeschlossen, und ich habe eine Funktion, mit der ich die Ausgabe realisiert hab (zeige_an).
Das Arduino soll aus 3 Blöcken zu je 16 verschiedenen Texten einen raussuchen und Anzeigen.
Dabei wird jeweils 1 Block hochgezählt, und dann einer von 16 Texten zufällig ausgewählt - das funktioniert auch alles soweit:
void loop() {
// Einen Block weiter
k++;
if(k>2) { k = 0; }
// Dann ein Zufälliger Text
zaehler = random(16);
// Jetzt kommt die auswahl
if(k == 0) {
switch(zaehler) {
case 0: anzeigestring = "Text 1";break;
...
case 15:anzeigestring = "Text 16";break;
};
}
if(k == 1) {
switch(zaehler) {
case 0:anzeigestring = "Text 17";break;
...
case 15:anzeigestring = "Text 32";break;
};
} /*
if(k == 2) {
switch(zaehler) {
case 0:anzeigestring = "Text 33";break;
...
case 15:anzeigestring = "Text 48";break;
};
}*/
zeige_an();
delay(2000);
}
So nun das eigentliche Problem,
Sobald ich den "dritten Block" ( also if(k==2) { ...} ) mit rein nehme, passiert entweder gar nichts mehr (Display bleibt blau), Oder es kommt nur ein Random Text, danach schreibt er sinnlos Buchstaben.
Wenn ich aber nur die ersten beiden Blöcke abfrage (also k dann nur bis 1 gehen lasse, und den dritten abfrage-Block auskommentiere) funktioniert alles so wie es soll, und er zeigt abwechselnd einen zufälligen Text vom ersten oder zweiten Block an.
Der Sketch ist lediglich 10.000 Bytes groß (von 32.000), also kann es doch eigentlich nicht an der Länge des Codes liegen?
Hängt das irgendwie mit dem begrenzten Speicher des Mikrocontrollers zusammen?
Ich bitte um Hilfe =( Danke =)