我正在尝试从 0-1 之间的电位器映射 analogRead
的值。所以我这样做:
float inverse_value = 1.0f / (float)analogRead( pot_pin )
但是当电位器的analogRead为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
,可能是您想要得到的值。
关于c - 使用 Arduino Uno r3 查找 int 值的倒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12870688/