我正试图将电位计的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
,可能也是你想要得到的。