python - 将风向传感器的ADC值转换为度数

标签 python

我正在使用树莓派构建一个气象站,并尝试添加风向传感器(通过我正在等待接收的 12 位 ADS1015 模数转换器)。我已经查看了一段时间如何在 python 中执行此操作,但只能让一段代码在 arduino 上运行,以将原始值转换为以度为单位的实际风向。

我现在希望在树莓派上用 python 做同样的事情。

假设我在树莓派上使用连接到 3.3 伏电压的 12 位 ADC,我如何转换来自 ADC 的原始信号(使用 adc_value = adc.read_adc(1, gain = 1) 使用 ADC 的 Adafruit 库)转换为以度为单位的实际风向?传感器的模拟电压范围从输入电压的5%(表示0度)到输入电压的95%(表示360度)。我不确定如何映射它们。

最佳答案

我在电子表格中做了一些建模,这是我过去为此类设备导出线性映射的方式。假设在范围内呈线性:

enter image description here

根据数据表,图表和表格展示了从潜在 ADC 值的 5% 到 95% 变化的线性范围。记录高点和低点后,我计算了每 20 度的增量 ADC。然后我绘制了它们并将线性趋势线与生成的 y=mx+b 公式一起包含在内。这是您需要使用的原始 ADC 值(基于 3.3V)的转换公式。

现在,至于如何在 Pi 上的 python 中执行此操作,那是另一回事。您使用的设备是 I2C 设备。有很多关于这个主题的教程。

  1. 首先,您必须在 Pi 上的 Linux 上启用 I2C,for example .
  2. 查阅有关配置和连接 I2C 设备的在线教程。 Digikey 上适用于您设备的数据表是一个很好的起点。
  3. 使用您通过引脚选择的地址,使用广泛在线提供的 python 库读取设备,for example .

关于python - 将风向传感器的ADC值转换为度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513721/

相关文章:

Python请求创建Cookie失败

python - PySerial App 在 shell 中运行,而不是 py 脚本

python - 为什么这个简单 bool 逻辑的 pytest 失败了?

Python:有条件地从列表中删除元素

python - 形状 "wobble"转动时 - Pygame

python - 如何在 Django 中使用 first_name、last_name 修改创建 UserProfile 表单?

python - 如何在 Python 中根据其参数之一绘制定义的函数

python - np.unravel_index 的直观解释是什么?

python - 尝试在 Python 中匹配 Excel PERCENTRANK 公式

Python logging.DEBUG 级别不记录