2

ねえ、私は次のコードを持っています:

  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();

なんらかの理由で、gLCD画面の出力はほぼ常に1023です。ポテンショメータの最小値を1、最大値を128にします。

4

2 に答える 2

5

あなたのコードは、min、max、constraint 関数の理解が不足していることを示しています。ドキュメントをもっと注意深く読むことをお勧めします。

それまでの間、ここにあなたが求めていると私が思うものがあります:

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

itoa(sVal, res, 10);
println(res);
println(" ");
delay(150);
clearScreen();
于 2010-06-18T13:26:24.330 に答える
3

APIにはすでに範囲マッピング関数もあります。例:

 res = map(analogRead(potPin), 0,1023, 1,128);
于 2010-06-20T09:22:44.863 に答える