Rechnen mit Variablen klappt nicht.

Hallo,

leider habe ich immer noch kein korrektes Ergebnis hinbekommen.

Ich habe eure Vorschläge umgesetzt

unsigned long MyMilliSec
const unsigned int AusDim = 255;
const unsigned int AnDim = 0;

aber es scheint nicht das Problem der Declaration zu sein.

Als “Ergebnis” kommt immer
Aktuelle Systemzeit 12:1:57
12:1:57 Stelle Beleuchtung auf Port: 3 der Leiste: 0 auf den Wert: 11
10588

Im Anhang nochmals das nun aktuelle Skript. Mit der Bitte um eure Hilfe. Ich bin langsam aber sicher am verzweifeln :slightly_frowning_face:

Ich schrieb ja schion, dass das Skript in der Schleife “hängen” bleibt also diese immer wieder von vorne startet.

Kann es sein, dass es etwas mit dem Wert AusDim zu tun hat?

void dimmRunterMittags() {
for (Dimmung = AnDim; Dimmung <= AusDim; Dimmung ++)

Das Skript müsste die Schleife doch verlassen wenn Dimmung kleiner/gleich 255 ist :confused:

Cheers

Matze

sketch_mar20a.ino (15.3 KB)

byte Dimmung;

… ist immer <= 255, deshalb wird deine Schelife nie verlassen.

Probiers aus:

byte dimmung = 255;
dimmung++;
if ( dimmung < 255 ) Serial.println( "Pech gehabt");

AHHHH bin ich doof Klar!

Byte kann nur bis max. 255 sodass es nie überschritten werden kann. Ich Hornochse!

Also doch wieder als int deklarieren.

Danke michael_x

Aber warum bekomme ich bei der Rechenaufgabe immer ein falsches Ergebnis?

Danke an alle für eure Hilfe. Das Skript rechnete doch richtig! Ich hatte in der DimmMittagsRunter Sektion eine falsche Variable gesetzt, sodass er mit einem anderen Wert als ich dachte rechnete. Deshalb war das Ergebnis falsch.

Vielen Dank für eure Geduld.

Matze