как получить по Цельсию как вывод из LM335Z с Arduino? - PullRequest
2 голосов
/ 01 января 2011

первый датчик - мой вывод lm335z.

int firstSensor = 0; 
int secondSensor = 0;
int thirdSensor = 0;
int inByte = 0;   

void setup()
{
  Serial.begin(9600);
  establishContact();  // send a byte to establish contact until receiver responds 
}


void loop()
{
  if (Serial.available() > 0) {
    inByte = Serial.read();
    firstSensor = analogRead(0);
    delay(10);
    secondSensor = analogRead(1);
    thirdSensor = analogRead(2);
    Serial.print(firstSensor, DEC);
    Serial.print(",");
    Serial.print(secondSensor, DEC); 
    Serial.print(",");
    Serial.println(thirdSensor, DEC); 
  }
}

void establishContact() {

}

1 Ответ

6 голосов
/ 01 января 2011

Исходя из таблицы , температура на выходе будет изменяться при 10 мВ / К. Но если вы нашли опорное напряжение при известной температуре эталонной, вы можете использовать это полезное уравнение из таблицы:

V_out = V_ref * T_out/T_ref, что эквивалентно T_out = T_ref * (V_out/V_ref)

Скажем, ваше напряжение составляет 2,982 В при 25 градусах С или 298,15 градусах Кельвина (это предлагается в таблице данных), тогда вы можете установить уравнение на:

T_out = (298.15 Kelvin)(V_out/2.982V)-273.15

Таким образом, предполагая, что вы уже можете преобразовать аналоговые показания в напряжение *, просто подключите измеренное напряжение, и это должно дать вам температуру в градусах Цельсия.

* Arduino имеет встроенный 10-разрядный АЦП, и максимальное напряжение, которое он может прочитать, составляет 5 В. Следовательно, вы можете учесть шаги АЦП 5 В / 1024 = 0,00488 В на шаг АЦП. (т.е. V_out = firstSensor*0.00488). Таким образом, подключив V_out, уравнение становится:

T_out = (298.15)(firstSensor*0.001637)-273.15, где 0,001637 = 0,00488 / 2,982.

...