if in Setup teil

Hey leute, ich habe da mal so eine grundlegende Frage an euch. Und zwar, ist es ratsam eine If Abfrage in den Setupteil einzubinden? Denn ich habe bei einem Projekt mit einem lcd display gerade das Problem, dass wenn ich Text in den Loop schreibe der Text am display immer so flimmert

Danke für eure Hilfe schonmal im Vorraus :) :D

Es spricht nichts dagegen, eine if-Anweisung in der setup-Routine zu verwenden. Dein Flimmerproblem kommt aber höchswahrscheinlich daher, dass du permanent den Bildschirminhalt neu schreibst.

nicht neu schreibst, sondern lcd.clearst

Kann man das im loop unterbinden?

xxxmicroxxx: Kann man das im loop unterbinden?

Z,B. mit einer if-Abfrage, und einen neuen Text auf dem Display immer nur dann ausgeben, wenn sich der Text geändert hat, der ausgegeben werden soll.

Einfach nicht machen.

  • Wenn du immer Text konstanter Länge schreibst, schreib einfach drüber
  • Wenn die Text-Länge variiert, schreibe erst entweder Leerzeichen über die maximale Länge (das löscht den Text, aber eben nicht das ganze Display und ist damit schneller) ...
  • ... oder schreibe erst deinen Text und fülle die Differenz zwischen tatsächlicher Länge und maximaler Länge mit Leerzeichen auf um die Zeichen des vorherigen Strings zu löschen. strlen() gibt dir da die Länge eines C-Strings zurück

Generell solltest du das Display nicht in jedem loop() Durchlauf neu beschreiben, sondern nur wenn nötig. Du kannst z.B. überprüfen ob sich der Wert geändert hat (wenn du z.B. eine Temperatur anzeigst) und nur dann neu schreiben.

Also kann ich mein komplettes Programm in dem Setup Bereich schreiben?

Wenn du das Programm nur einmal ausführen willst, ja.

Wenn du das Display nur alle paar Sekunden updatest flimmert es auch weniger. Das Schreiben dauert halt etwas und die Displays sind träge. Das kann man z.B. mit millis() machen: http://arduino.cc/en/Tutorial/BlinkWithoutDelay

ok Danke