2 Stimmen

Hilfe bei Arduino und Analog Min Max Einstellungen

Hallo, ich habe den folgenden Code:

  sVal = analogRead(potPin);    // read the value from the sensor
  valMin = min(sVal, 1);
  valMax = max(sVal, 128);
  constrain(sVal,valMin,valMax);

  itoa(sVal, res, 10);
  println(res);
  println(" ");
  delay(150);
  clearScreen();

Aus irgendeinem Grund ist die Ausgabe auf dem gLCD-Bildschirm jetzt fast ständig 1023. Ich möchte, dass das Minimum für das Potentiometer 1 und das Maximum 128 ist.

5voto

Artelius Punkte 46771

Ihr Code deutet auf ein mangelndes Verständnis der Funktionen min, max und constrain hin. Ich schlage vor, Sie lesen die Dokumentation sorgfältiger.

In der Zwischenzeit, hier ist, was ich denken die Sie suchen:

sVal = analogRead(potPin);
sVal = sVal / 8 + 1; //scale value [0.. 1023] to [1.. 128]

itoa(sVal, res, 10);
println(res);
println(" ");
delay(150);
clearScreen();

3voto

Joakim Rosqvist Punkte 407

Es gibt auch bereits eine Bereichszuordnungsfunktion in der API, z.B.:

 res = map(analogRead(potPin), 0,1023, 1,128);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X