Ich stehe gerade total auf dem Schlauch. Mit meinem Arduino lese ich einen Poti aus, dies klappt auch ohne Probleme. Der maximaler Wert liegt bei 1023. Nun (versuche) rechne ich mir den ausgelesenen Wert in Prozent um:
int poti_pause = analogRead(A1); // Poti-Wert auslesen, max. Wert 1023
int pause_calc = (poti_pause * 100)/1023; // Potiwert in Prozent umrechnen, Klammer zuerst
Im Serialmonitor wird mir jedoch bei Potianschlag -28 angezeigt. Ist meine Rechnung falsch?
Wenn ich z.B. auf "50%" regle, dann wäre die Rechnung doch (512(halber Poti_maxwert)* 100)/1023 = 50.
Eine Variable vom Typ int kann Werte zwischen -32,768 und 32,767 speichern (16 Bit).
1023 mal 100 ergibt 102300. Davon werden nur die letzten 16 bit gespeichert und bit 16 als Vorzeichen interpretiert.