Berechnung von längeren Formeln

Guten Abend, ich habe zur Zeit ein Problem mit einem Sketch.

Ich möchte die Helligkeit von zwei LED-Strips (WarmWeiß und KaltWeiß) steuern.

Festgelegt:

int Helligkeit = 128; // 0 - 255
int Verhaeltnis = 128; // 0 - 255
float KW = 128;
float WW = 128;

Berechnung:

KW = (((255 - Verhaeltnis) * 2) * (Helligkeit / 255));

Als Ergebnis bekomme ich 0.00.
Korrekt wäre aber:
(((255 - 128) * 2) * (128 / 255))
(127 * 2) * 0.5
--> 127

Was läuft da schief?

Besten Dank schonmal!

Helligkeit / 255 ist eine Integer-Division. Wenn du eine Gleitkomma-Division willst musst du schon 255.0 schreiben

Funktioniert - vielen Dank! :slight_smile:

Schön, dass Gleitkomma funktioniert.

Mit der für kleine Controller viel einfacheren Festkomma-Berechnung wäre es aber auch gegangen
Eine Division durch ZweierPotenzen ist übrigens erstens einfacher und zweitens meist "richtiger"

KW = (255 - Verhaeltnis) * 2 * Helligkeit / 256;

oder noch einfacher:

KW = (255 - Verhaeltnis) * Helligkeit / 128;