2015-05-19 60 views
0

您好我在MATLAB GUI是新LM35温度sesnor方程的Arduino UNO其连接到matlab的GUI

我想创建一个轴绘制穿过的Arduino UNO来自LM35温度Matlab的

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

回答

1

Arduino的ADC读取电压并输出一数据

  1. 参考电压
  2. 在这种情况下,ADC

的比特宽度我想你正在使用的5V参考和10位模式,所以

Vmeasured = NumberFromADC * 5V/1024 

现在,根据LM35 datashee t时的输出电压是

Vout = 10mV/°C * T 

反转方程式:

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

(当然以℃表示)

顺便说一句,我建议你到参考电压改变为一个内部,由于5V不稳定并且不够精确以具有良好的测量系统。更多信息here

而且,当然,如果你改变参考电压,你将需要改变方程,因为参考本身不再是5V。

+0

谢谢 但我的问题是关于ADC和readVoltage()命令在matlab方面我认为这是直接给我输入电压还是什么? –

+0

哦,对不起。当我读Matlab时,我以为你只是用来显示而不是编程Arduino。我的错。无论如何...在matlab中,你只需要'readVoltage',它给你转换的电压。在arduino IDE中,另一方面,你有'analogRead',它给你ADC读数(即0-1023)。 [Here](http://it.mathworks.com/help/supportpkg/arduinoio/ref/readvoltage.html),你可以找到一些关于'readVoltage'函数的文档。 – frarugi87