c - 使用 Arduino Uno r3 查找 int 值的倒数

标签 c arduino

我正在尝试从 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/

相关文章:

c - 使用 UDRE 和 ATmega328P 的中断驱动 USART

c - for 循环中 pow 函数的值错误

arduino - 倒计时延迟

c - Arduino (AVR ATMega328) Timer1 似乎没有在正确的时间触发

c - 二维矩阵旋转与双线性插值

c - 读取大型二进制文件每 30 个字节的最快方法?

c - 在理解从 C 代码生成的基本汇编代码方面需要帮助

c++ - offsetof 是否需要指针取消引用?

c - nrf51 定时器驱动程序代码错误

android - 从 arduino 到 android 的直接串行端口连接用于数据通信