嘿那里,我有以下代码:
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。
答案 0 :(得分:5)
您的代码表明对min,max和constrain函数缺乏了解。我建议你仔细阅读文档。
与此同时,这是我认为你所追求的:
sVal = analogRead(potPin);
sVal = sVal / 8 + 1; //scale value [0.. 1023] to [1.. 128]
itoa(sVal, res, 10);
println(res);
println(" ");
delay(150);
clearScreen();
答案 1 :(得分:3)
API中已经有一个范围映射函数,例如:
res = map(analogRead(potPin), 0,1023, 1,128);