我正试图将电位计的analogRead值映射到0-1之间所以我要:

float inverse_value = 1.0f / (float)analogRead( pot_pin )

但当电位器的模拟读数为0时,逆读数为0(这是正确的),但当analogRead为1023时,逆读数变为0.0009775170
我做的除法是正确的还是什么?
所有电路连接正确Arduino运行正常(上传时没有错误)。

最佳答案

你想做的可能是:

float inverse_value = (float)analogRead(pot_pin) / 1023.0f;

假设最大位置是1023。
这样,0到1023将映射为0到1。
例如,当电位计处于中间位置(512)时,它变为:
float inverse_value = 512.0f / 1023.0f;

这是关于0.5,可能也是你想要得到的。

10-08 06:29