0

嗨,我是 matlab GUI 的新手

我正在尝试创建一个轴绘制从 LM35 到 arduino uno 到 matlab 的温度

我使用以下代码读取模拟电压,readVoltage(a,0) 我得到一个大约 0.28 - 0.30 的值,但我不知道这个值到底意味着什么,它是真实的temperature/100还是什么?我知道当我analogRead()在 arduino 端使用时,arduino 内部有一个 ADC 将输入电压转换为另一个范围(0-1023)。它在这里也有效吗?当我应该假设它是 0-1023 或直接获取读数时,我对这件事感到困惑。

4

1 回答 1

2

arduino ADC读取电压并根据

  1. 参考电压
  2. ADC的位宽

在这种情况下,我假设您使用的是 5V 参考和 10 位模式,所以

Vmeasured = NumberFromADC * 5V / 1024

现在,根据 LM35 数据表,输出电压为

Vout = 10mV/°C * T

反转方程:

T = Vout / (10mV/°C) = NumberFromADC * 5V / 1024 / (10mV/°C) = NumberFromADC * 500 / 1024

(当然以°C表示)

顺便说一句,我建议您将电压参考更改为内部电压参考,因为 5V 不稳定且不够精确,无法拥有良好的测量系统。更多信息在这里

当然,如果您更改参考电压,您将需要更改等式,因为参考电压本身不再是 5V。

于 2015-05-19T15:24:49.173 回答